Pengenalan C#
Apa itu C#
C# adalah bahasa pemrograman yang dikembangkan dan dikelola oleh Microsoft. Ini adalah salah satu bahasa pemrograman yang paling banyak digunakan dalam pengembangan perangkat lunak modern. Itu cukup banyak dipengaruhi oleh Java ketika awalnya dirilis. Ini memiliki semua fitur dan karakteristik yang kaya dari bahasa pemrograman berorientasi objek yang sebenarnya.
Sejarah dan Evolusi C#
C# dibuat sebagai bagian dari rangkaian alat Microsoft.Net yang lebih merupakan rencana besar Microsoft untuk membuat kerangka kerja pengembangan satu atap untuk semua. Dengan meningkatnya popularitas Java, Microsoft ingin mengubah suite Visual Studio 6.0 mereka. Ternyata Microsoft telah memutuskan untuk membuat kerangka kerja yang sama sekali baru dari awal. Saya harus mengatakan - kelahiran kerangka .Net bersama dengan C# adalah sebagai revolusi bagi pengembang. Ini pertama kali dirilis pada tahun 2000.
C# dibuat oleh Anders Hejlsberg ( ) dan dia masih menjadi kepala arsitek C# di Microsoft. Semua rilis dan pemeliharaan C# sedang dilakukan di bawah pengawasannya saja.
Versi pertama C# dikirimkan sebagai C# 1.0. Jauh lebih cepat C# 1.1 dirilis yang lebih merupakan perbaikan kecil. Namun, C# 2.0 memiliki perubahan terobosan seperti generik, tipe parsial dan metode anonim. Ini sebenarnya membuat lebih banyak pengembang bergabung dengan kerangka C# dan.Net. Silakan lihat tabel berikut untuk mengetahui perubahan versi C# secara singkat:
versi C# | .Versi kerangka kerja bersih | Versi Visual Studio | Penambahan Fitur |
---|---|---|---|
1.0 | 1.0/1.1 | Visual Studio 2002 | Rilis awal C# |
2.0 | 2.0 | Visual Studio 2005 | Generik, Tipe parsial, Metode anonim, Tipe Nullable, Iterator, Kovarian, dan kontravarian |
3.0 | 3.0/3.5 | Visual Studio 2008 | Properti yang diimplementasikan secara otomatis, Jenis anonim, Ekspresi kueri, Ekspresi Lambda, Pohon ekspresi, Metode ekstensi |
4.0 | 4.0 | Visual Studio 2010 | Pengikatan dinamis, Argumen bernama/opsional, Kovarian dan kontravarian generik, Jenis interop tertanam |
5.0 | 4,5 | Visual Studio 2012/2013 | Anggota asinkron, Atribut info penelepon |
6.0 | 4.6 | Visual Studio 2013/2015 | Impor statis, Filter pengecualian, Inisialisasi properti, Anggota bertubuh ekspresi, Propagator Null, Interpolasi string, nama operator, Inisialisasi kamus |
7.0 | 4.7 dan Inti 1.0/2.0 | Visual Studio 2017 | Variabel sebaris, Buang, Pencocokan Pola, Fungsi lokal |
C# 8.0 adalah versi terbaru (yang akan dirilis) pada saat penulisan bab ini. Ini memperkenalkan beberapa fitur keren seperti pola dalam pernyataan sakelar, properti, tupel, dan posisi. Ini juga mencakup fungsi lokal statis, tipe referensi nullable, aliran asinkron, Indeks dan rentang (kurang lebih mirip dengan Python).
.Net Framework
.Net framework adalah lingkungan eksekusi terkelola untuk mengeksekusi dan mengelola aplikasi yang dibangun menggunakan teknologi .Net seperti C#, F#, ASP.Net dll. Framework bertanggung jawab untuk menyediakan fungsionalitas berikut:
- Manajemen memori : Tanpa harus secara eksplisit mengalokasikan dan membatalkan alokasi memori saat mengembangkan Aplikasi, runtime .Net menangani manajemen memori.
- Sistem tipe umum : Kerangka .Net mendukung bahasa berbeda yang memiliki tipe datanya sendiri. Untuk membuat tipe ini kompatibel untuk .Net framework, semua tipe ini diubah menjadi tipe umum oleh kompiler masing-masing bahasa pemrograman. Ini juga memberikan kompatibilitas lintas bahasa .Net.
- Pustaka kelas kerangka .Net : Seperangkat besar fungsionalitas yang sering digunakan disediakan oleh kerangka kerja .Net yang mencakup sebagian besar kasus penggunaan. Ini membuat pengembang menggunakan kelas dan metode secara instan tanpa harus mengkodekannya secara eksplisit.
- Eksekusi berdampingan : Ini berarti bahwa versi kerangka .Net yang berbeda dapat ada di mesin yang sama dan beberapa versi Aplikasi dapat dijalankan pada satu mesin tanpa konflik apa pun.
- Multi-targeting : Kode yang sama dapat ditargetkan ke beberapa versi .Net. Ini disediakan oleh .Net standar.
.Komponen Arsitektur Bersih
Pada inti .Net framework adalah implementasi dari spesifikasi .Net. Ada berbagai implementasi spesifikasi .Net dan itu termasuk .Net framework, .Net Core dan Mono.
.Standar Bersih
Ini adalah implementasi dari spesifikasi API yang umum untuk semua implementasi. Ini menyediakan serangkaian kontrak terpadu sehingga aplikasi dapat ditargetkan untuk implementasi apa pun. Jika kami menargetkan aplikasi kami ke standar .Net, kami dapat yakin bahwa aplikasi kami dapat berjalan pada implementasi apa pun yang disediakan oleh kerangka kerja .Net.

. Implementasi Bersih
Saat ini ada 4 implementasi spesifikasi .Net yang didukung oleh Microsoft.
- .Net Core : Ini adalah implementasi dari spesifikasi .Net yang menargetkan berbagai platform seperti Windows, MacOS, dan Linux. Aplikasi yang dikembangkan di .Net Core dapat dijalankan pada satu atau lebih platform ini.
- .Net Framework : Kerangka .Net sama dengan yang ada sejak awal. Ini akan terus menyediakan platform pengembangan untuk mengembangkan aplikasi berbasis windows. Ini berisi banyak alat dan perpustakaan yang tunduk pada platform windows seperti Windows Forms, WPF, komponen Microsoft Office dll.
- Mono : Ini adalah implementasi .Net yang digunakan untuk membangun program. Ini pada dasarnya mendukung platform pengembangan seluler asli Microsoft Xamarin.
- UWP (Universal Windows Platform) : Implementasi ini digunakan untuk mengembangkan aplikasi yang dibangun untuk IoT (Internet of Things) dan di berbagai perangkat.
CLR (Common Language Runtime)
Kerangka kerja .Net menyediakan penggunaan waktu proses untuk mengeksekusi dan memelihara siklus hidup aplikasi yang dibangun menggunakan kerangka kerja .Net dalam lingkungan eksekusi terkelola. Aplikasi yang dikembangkan dalam bahasa yang didukung berbeda.Net dikompilasi ke dalam MSIL (Microsoft Intermediate Language) oleh kompilernya masing-masing dan kemudian beberapa metadata tambahan diasosiasikan dengan MSIL ini untuk membentuk Majelis (Perakitan akan dibahas dalam bab selanjutnya secara rinci). Metadata ini memberi tahu CLR tentang jenis, anggota, dan referensi program. Dengan cara ini, CLR menggunakan informasi ini untuk mengeksekusi keseluruhan aplikasi terlepas dari bahasa apa pun yang dibangun.
CTS (Common Type System)
CTS dalam .Net framework menyediakan model untuk tipe berbeda yang diimplementasikan oleh berbagai bahasa yang disediakan oleh framework. Setiap jenis bahasa pemrograman .Net memiliki jenis yang setara dalam CTS. Jadi ketika kode dikompilasi ke dalam MSIL, jenis bahasa diubah menjadi jenis CTS dan dengan demikian membuat CLR memahami MSIL tanpa mengkhawatirkan bahasa di mana ia dikompilasi.
CLS (Common Language Specification)
CLS menyediakan cara untuk membuat aplikasi .Net build sepenuhnya dapat dioperasikan. Artinya, kode yang ditulis dalam satu bahasa dapat digunakan/dikonsumsi dalam bahasa lain.