it-swarm-id.com

Hubungan antara C #, .NET, ASP, ASP.NET dll

Saya benar-benar tidak jelas tentang perbedaan antara C #, C # .NET dan yang sama untuk ASP dan bahasa '.NET' lainnya.

Dari apa yang saya mengerti, .NET adalah pustaka/kerangka kerja ... hal-hal. Saya pikir mereka pada dasarnya mengakses data Windows seperti elemen formulir dll, tetapi itu tampaknya tidak berlaku untuk ASP.NET.

Selain itu, saya melihat orang menyebut diri mereka pengembang '.NET'. Apakah ini berarti mereka fasih berbahasa C #, ASP dan bahasa lainnya?

Akhirnya, saya tidak pernah melihat C # tanpa .NET terlampir. Apakah C # terkait erat dengan .NET sehingga tidak dapat digunakan tanpa itu?

Singkatnya: apa sebenarnya yang disediakan oleh .NET? Bagaimana kaitannya dengan C # dan ASP dll? Apa artinya 'pengembang .NET'? Dan akhirnya, mengapa Anda tidak pernah melihat C # tanpa .NET?

[Sebagai tambahan, saya menyadari ini adalah beberapa pertanyaan, tapi saya pikir mereka sangat saling terkait (atau setidaknya itu adalah kesan bahwa browsing Programmer/SO dll telah memberi saya)].

146
Megan Walker

Saya mengerti kebingungan Anda, percayalah, saya memiliki perspektif yang sama ketika datang ke dunia Java! Pokoknya saya akan mencoba memecah pertanyaan Anda dan menangani mereka satu per satu ... juga seperti menambahkan beberapa poin lain yang diharapkan akan membantu menjelaskan apa yang terjadi:

  1. C # dan C # .NET adalah hal yang sama ... C #
  2. .NET adalah, seperti yang Anda katakan, perpustakaan kode yang dapat diajak berbicara dengan bahasa .NET.
  3. Bahasa. NET hadir dalam berbagai rasa seperti: C # .NET, VB.NET, Managed C++, F #.
  4. Bahasa .NET mengkompilasi ke CIL ( Common Intermediate Language ) yang berarti mereka semua mulai "berbicara" dengan bahasa yang sama dan karenanya dapat beroperasi.
  5. ASP.NET adalah bagian dari perpustakaan .NET yang digunakan untuk membuat situs web. Ada subbagian lain dari ASP.NET seperti WebForms (cara lama membuat halaman web) atau pustaka MVC yang cepat matang yang juga layak untuk dilihat.
  6. Formulir (teknologi lama) atau WPF (Windows Presentation Foundation) baru adalah teknologi yang biasanya Anda gunakan di .NET untuk membuat apa yang Anda ketahui sebagai aplikasi desktop tradisional.

Satu hal terakhir yang ingin saya selesaikan adalah perbedaan antara perpustakaan dan kerangka kerja. Dalam beberapa tahun terakhir kedua istilah ini telah digunakan sebagai sinonim, namun bukan itu masalahnya. Cara termudah yang dapat saya pikirkan untuk membedakan keduanya adalah:

  • Pustaka berisi banyak fungsionalitas yang dapat Anda pilih dan pilih yaitu menggunakan satu teknologi tidak berarti Anda dikunci ke dalam sisanya. Ini berarti kebebasan, namun Anda akan memiliki lebih banyak pekerjaan yang cocok untuk Anda.
  • Kerangka kerja bagaimanapun sangat menentukan bagaimana Anda akan bekerja. Ini memberikan alur kerja yang lebih baik atau lebih buruk sulit untuk diubah. Ini berarti pengembangan/prototyping yang cepat, tetapi jika perubahan signifikan dibuat di masa depan mungkin tidak mungkin (atau sangat memakan waktu) untuk mengimplementasikannya.

Proyek yang sedang Anda kerjakan tergantung pada pilihan yang Anda buat.

172
PaulCarroll

.NET adalah kerangka pengembangan aplikasi -. Ini berisi banyak perpustakaan yang berisi berbagai fungsionalitas.

C # adalah bahasa yang dibuat untuk digunakan dengan .NET. Ini bukan satu-satunya bahasa yang kompatibel dengan NET -. Pilihan lain termasuk VB.NET, F #, Managed C++, IronRuby, dan IronPython. Anda menulis kode dalam bahasa pilihan Anda untuk menggunakan fungsionalitas dalam kerangka NET.

ASP.NET adalah ekstensi .NET yang membantu Anda menulis aplikasi dan situs web berbasis web. Sebagian besar kerangka keseluruhan tersedia (atau berguna, dalam kasus misalnya WinForms) dalam konteks ini.

[Klasik] ASP adalah kerangka kerja web yang lebih lama, juga dari Microsoft. Meskipun memiliki nama yang mirip, ASP dan ASP.NET sangat berbeda di bawah tenda. Satu Perbedaan utama adalah bahwa satu-satunya pilihan bahasa Anda untuk ASP adalah VBScript dan JScript. ASP adalah teknologi yang lebih tua dan ketinggalan zaman, jangan repot-repot dengan itu.

23
Grant Palin

Pertama, .Net adalah kerangka kerja bytecode, mirip dengan Java bytecode. Namun Net hanya BYTECODE. Tidak ada bahasa resmi ".Net". Dua bahasa utama menargetkan .Net. adalah C # dan VB.Net. ASP.Net adalah ekstensi ke perpustakaan .Net yang disediakan untuk mengaktifkan aplikasi yang ditulis dalam C # atau VB.Net (atau bahasa. Net lainnya yang ditargetkan) untuk berfungsi sebagai situs web.

Pengembang yang mengatakan mereka tahu. Net biasanya berarti mereka tahu C # atau VB.Net, atau keduanya, dan dapat dengan mudah mempelajari mana yang tidak mereka ketahui (C # dan VB.Net adalah bahasa yang sangat mirip selain dari sintaksis umum)

Terakhir, ASP IS TIDAK sama dengan ASP.Net. Mereka memiliki perbedaan besar

14
Earlz

Karena hanya satu jawaban yang menyebutkan Mono tanpa merinci:

Meskipun C # sebagai bahasa awalnya dikembangkan di Microsoft sebagai bagian dari .NET Framework, ini kemudian distandarisasi oleh ECMA , yang berarti bahwa implementasi independen standar-kepatuhan dari bahasa dapat dikembangkan, dan memang demikianlah adanya. Yang paling menonjol adalah Mono .

Mono adalah implementasi open source dari seperangkat alat yang kompatibel dengan standar ECMA yang kompatibel dengan .NET Framework, termasuk compiler C # dan implementasi CLI (Mono Runtime, setara dengan CLR Microsoft - mesin virtual .NET Framework). Tujuannya adalah untuk menjalankan lintas platform .NET aplikasi. Sampai hari ini, ia mendukung C # 4.0 dan bagian substansial dari fitur .NET Framework . Selain mencerminkan implementasi Microsoft, tim Mono juga membuat inovasi sendiri.

Jadi, ya, mungkin dan layak untuk bekerja di C # tanpa .NET. Namun tidak mungkin bahwa Mono akan dapat menyaingi pangsa pasar Microsoft dan posisi .NET Framework, tidak sekarang, dan tidak dalam waktu dekat.

8
scrwtp

Buku Jon Skeet, C # In Depth memecah .NET turun dengan agak ringkas. Ini sering digunakan sehubungan dengan

  1. Bahasa Pemrograman (C #, VB)
  2. Runtime (CLR) yang menjalankan bytecode bahasa-bahasa tersebut dikompilasi.
  3. Framework Framework (Windows Forms/ASP.NET)
7
mootinator

jawaban yang lain melakukan pekerjaan yang baik untuk menjelaskan apa teknologi masing-masing, tapi saya pikir mereka kehilangan salah satu alasan utama untuk kebingungan. C # dan C #. NET pada dasarnya sama, namun VB.NET dan VB berbeda dan ASP dan ASP.NET juga berbeda. VB umumnya mengacu pada VB6 dan yang lebih tua, dan ASP mengacu pada ASP klasik. Teknologi ini secara radikal dirancang ulang dengan dirilisnya .NET framework dan bukannya muncul dengan nama baru untuk produk yang ditambahkan Microsoft. NET untuk hampir semua, tetapi C # juga baru sehingga kedua nama benar-benar merujuk pada hal yang sama.

2
Ryathal

Anda harus membedakan antara Bahasa, Kerangka Kerja, CLR, Pola dan metode Pemrograman.

ASP.Net menggunakan pola pemrograman yang sama sekali berbeda untuk pengembangan Winforms meskipun mereka berbagi fondasi yang sama. Anda dapat memprogram aplikasi ASP.net dan .Net dalam berbagai bahasa.

Lalu ada bahasa Mono dan bahasa C # yang digunakan dalam konteks Mono - mungkin perlu penelitian.

Baca tautan-tautan ini:
http://en.wikipedia.org/wiki/Common_Language_Runtime
http://en.wikipedia.org/wiki/.NET_Framework#Alternative_implementations
http://en.wikipedia.org/wiki/File:Overview_of_the_Common_Language_Infrastructure.svg

0
Jeremy