Bagikan melalui


Pengantar .NET

.NET adalah platform pengembang sumber terbuka gratis, lintas platform, untuk membangun berbagai jenis aplikasi. Ini dapat menjalankan program yang ditulis dalam beberapa bahasa, dengan C# menjadi yang paling populer. Ini bergantung pada runtime berkinerja tinggi yang digunakan dalam produksi oleh banyak aplikasi skala tinggi.

Untuk mempelajari cara mengunduh .NET dan mulai menulis aplikasi pertama Anda, lihat Memulai.

Platform .NET telah dirancang untuk memberikan produktivitas, performa, keamanan, dan keandalan. Ini menyediakan manajemen memori otomatis melalui pengelola sampah (GC). Ini aman tipe dan aman memori, karena menggunakan GC dan compiler bahasa yang ketat. Ini menawarkan keterkaitan melalui async/await dan Task primitif. Ini termasuk sekumpulan besar pustaka yang memiliki fungsionalitas luas dan telah dioptimalkan untuk performa pada beberapa sistem operasi dan arsitektur chip.

.NET memiliki titik desain berikut:

  • Produktivitas adalah sepenuhnya terintegrasi dengan runtime, pustaka, bahasa, dan alat yang semuanya berkontribusi pada pengalaman pengembang.
  • Kode aman adalah model komputasi utama, sementara kode tidak aman memungkinkan pengoptimalan manual tambahan.
  • Kode statis dan dinamis keduanya didukung, memungkinkan serangkaian skenario yang berbeda.
  • Interoperabilitas kode asli dan instrinsik perangkat keras berbiaya rendah dan kehandalan tinggi (akses langsung ke API dan instruksi).
  • Kode dapat dibawa lintas platform (OS dan arsitektur chip), sementara penargetan platform memungkinkan spesialisasi dan pengoptimalan.
  • Adaptabilitas di seluruh domain pemrograman (cloud, klien, game) diaktifkan dengan implementasi khusus dari model pemrograman tujuan umum.
  • Standar industri seperti OpenTelemetry dan gRPC lebih disukai daripada solusi yang dipesan lebih dulu.

.NET dipertahankan secara kolaboratif oleh Microsoft dan komunitas global. Pembaruan rutin memastikan pengguna menyebarkan aplikasi yang aman dan andal ke lingkungan produksi.

Komponen

.NET mencakup komponen berikut:

  • Runtime -- menjalankan kode aplikasi.
  • Pustaka -- menyediakan fungsionalitas utilitas seperti penguraian JSON .
  • Compiler -- mengkompilasi kode sumber C# (dan bahasa lain) ke dalam kode yang dapat dieksekusi (runtime).
  • SDK dan alat lainnya -- mengaktifkan membangun dan memantau aplikasi dengan alur kerja modern.
  • Tumpukan aplikasi -- seperti ASP.NET Core dan Windows Forms, yang memungkinkan penulisan aplikasi.

Runtime, pustaka, dan bahasa adalah pilar dari ekosistem .NET. Komponen tingkat yang lebih tinggi, seperti alat .NET, dan tumpukan aplikasi, seperti ASP.NET Core, dibangun di atas pilar ini. C# adalah bahasa pemrograman utama untuk .NET dan banyak .NET ditulis dalam C#.

C# berorientasi objek dan runtime mendukung orientasi objek. C# membutuhkan pengumpulan sampah dan runtime menyediakan pengumpul sampah pelacakan. Pustaka (dan juga tumpukan aplikasi) membentuk kemampuan tersebut menjadi konsep dan model objek yang memungkinkan pengembang menulis algoritma secara produktif dalam alur kerja intuitif.

Pustaka inti mengekspos ribuan jenis, banyak di antaranya terintegrasi dengan dan mendukung bahasa C#. Misalnya, pernyataan foreach C#memungkinkan Anda menghitung koleksi arbitrer. Pengoptimalan berbasis pola memungkinkan koleksi seperti List<T> diproses secara sederhana dan efisien. Anda dapat menyerahkan manajemen sumber daya kepada pengumpulan sampah, tetapi pembersihan yang lebih cepat dimungkinkan melalui IDisposable dan dukungan bahasa langsung dalam pernyataan using.

Dukungan untuk melakukan beberapa hal pada saat yang sama sangat mendasar untuk hampir semua beban kerja. Itu bisa jadi aplikasi klien yang melakukan pemrosesan latar belakang sambil menjaga UI tetap responsif, layanan yang menangani ribuan permintaan simultan, perangkat yang menanggapi banyak rangsangan simultan, atau mesin bertenaga tinggi yang menyejajarkan pemrosesan operasi intensif komputasi. Dukungan pemrograman asinkron adalah fitur kelas satu dari bahasa pemrograman C#, yang menyediakan kata kunci async dan await yang memudahkan untuk menulis dan menyusun operasi asinkron sambil tetap menikmati manfaat penuh dari semua alur kontrol yang ditawarkan bahasa.

Sistem jenis menawarkan cakupan yang luas dan signifikan, melayani secara hampir sama untuk keamanan, kejelasan, dinamisme, dan interop asli. Pertama dan teruntuk, sistem jenis memungkinkan model pemrograman berorientasi objek. Ini termasuk tipe, pewarisan (dengan kelas dasar tunggal), antarmuka (termasuk implementasi metode default), dan pengaturan pengiriman metode virtual untuk memberikan perilaku yang logis untuk semua lapisan tipe yang diizinkan dalam orientasi objek. Jenis generik biasa ditemui dan memungkinkan Anda mengkhususkan kelas menjadi satu atau beberapa tipe.

Runtime .NET menyediakan manajemen memori otomatis melalui pengumpul sampah. Untuk bahasa apa pun, model manajemen memorinya kemungkinan merupakan karakteristik yang paling menentukan. Ini berlaku untuk bahasa .NET. .NET memiliki penyetelan mandiri, melacak GC. Ini bertujuan untuk memberikan penggunaan "hands-off" dalam kasus umum sambil menawarkan opsi konfigurasi untuk beban kerja yang lebih ekstrem. GC saat ini adalah hasil dari investasi dan pembelajaran bertahun-tahun dari beragam beban kerja.

Jenis nilai dan blok memori yang dialokasikan di tumpukan menawarkan kontrol yang lebih langsung dan tingkat rendah atas data serta interoperabilitas dengan platform asli, berbeda dengan jenis yang dikelola GC di .NET. Sebagian besar jenis primitif di .NET, seperti jenis bilangan bulat, adalah jenis nilai, dan pengguna dapat menentukan jenis mereka sendiri dengan semantik serupa. Jenis nilai didukung penuh melalui sistem generik .NET, yang berarti bahwa jenis generik seperti List<T> dapat menyediakan representasi memori datar tanpa biaya tambahan dari koleksi jenis nilai.

Reflection adalah paradigma "program sebagai data", memungkinkan satu bagian dari program untuk secara dinamis meminta dan memanggil yang lain, dalam hal rakitan, jenis, dan anggota. Ini sangat berguna untuk model dan alat pemrograman yang terikat secara dinamis.

Pengecualian adalah model penanganan kesalahan utama di .NET. Pengecualian memberikan keuntungan bahwa informasi kesalahan tidak perlu dicantumkan dalam deklarasi metode atau ditangani oleh setiap metode. Penanganan pengecualian yang tepat sangat penting untuk keandalan aplikasi. Untuk mencegah aplikasi mengalami crash, Anda dapat dengan sengaja menangani pengecualian yang diharapkan dalam kode Anda. Aplikasi yang mengalami crash lebih andal dan dapat didiagnosis daripada aplikasi dengan perilaku yang tidak ditentukan.

Tumpukan aplikasi, seperti ASP.NET Core dan Windows Forms, dibangun di atas dan memanfaatkan pustaka tingkat rendah, bahasa pemrograman, dan runtime. Tumpukan aplikasi menentukan cara aplikasi dibangun dan siklus hidup eksekusinya.

SDK dan alat lainnya memungkinkan pengalaman pengembang modern, baik di desktop pengembang maupun untuk integrasi berkelanjutan (CI). Pengalaman pengembang modern mencakup mampu membangun, menganalisis, dan menguji kode. Proyek .NET sering kali dapat dibangun oleh satu perintah dotnet build, yang mengatur pemulihan paket NuGet dan membangun dependensi.

NuGet adalah manajer paket untuk .NET. Ini berisi ratusan ribu paket yang menerapkan fungsionalitas untuk banyak skenario. Sebagian besar aplikasi mengandalkan paket NuGet untuk beberapa fungsionalitas. Galeri NuGet dikelola oleh Microsoft.

Sumber gratis dan terbuka

.NET gratis, sumber terbuka, dan merupakan proyek .NET Foundation. .NET dikelola oleh Microsoft dan komunitas di GitHub di beberapa repositori.

Sumber dan biner .NET dilisensikan dengan lisensi MIT . Lisensi tambahan berlaku pada Windows.

Dukung

.NET didukung oleh beberapa organisasi yang berfungsi untuk memastikan bahwa .NET dapat berjalan pada beberapa sistem operasi dan tetap diperbarui. Ini dapat digunakan pada arsitektur Arm64, x64, dan x86.

Versi baru .NET dirilis setiap tahun pada bulan November, sesuai rilis dan kebijakan dukungan kami. Ini diperbarui setiap bulan pada Patch Selasa (Selasa kedua), biasanya pukul 10.00 waktu Pasifik.

Ekosistem .NET

Ada beberapa varian .NET, masing-masing mendukung jenis aplikasi yang berbeda. Alasan untuk beberapa varian adalah bagian historis, bagian teknis.

Implementasi .NET:

  • .NET Framework -- .NET yang asli. Ini menyediakan akses ke kemampuan luas Windows dan Windows Server. Ini didukung secara aktif, sedang dalam pemeliharaan.
  • Mono -- Komunitas asli dan sumber terbuka .NET. Implementasi lintas platform dari .NET Framework. Didukung secara aktif untuk Android, iOS, dan WebAssembly.
  • .NET (Core) -- Modern .NET. Implementasi lintas platform dan sumber terbuka dari .NET, yang dipikirkan ulang untuk era cloud sambil tetap sangat kompatibel dengan .NET Framework. Didukung secara aktif untuk Linux, macOS, dan Windows.

Langkah berikutnya