.NET Core - Eksekusi Kode
Dalam bab ini, kita akan memahami proses eksekusi .NET Core dan membandingkannya dengan .NET Framework. Proses eksekusi terkelola mencakup langkah-langkah berikut.
- Memilih kompiler
- Mengompilasi kode Anda ke MSIL
- Mengompilasi MSIL ke kode asli
- Menjalankan kode
Memilih Compiler
Ini adalah lingkungan eksekusi multi-bahasa, runtime mendukung berbagai tipe data dan fitur bahasa.
Untuk mendapatkan manfaat yang diberikan oleh runtime bahasa umum, Anda harus menggunakan satu atau beberapa kompiler bahasa yang menargetkan waktu proses.
Mengompilasi kode Anda ke MSIL
Kompilasi menerjemahkan kode sumber Anda ke dalam Microsoft Intermediate Language (MSIL) dan menghasilkan metadata yang diperlukan.
Metadata mendeskripsikan tipe dalam kode Anda, termasuk definisi tiap tipe, tanda tangan tiap anggota tipe, anggota yang direferensikan kode Anda, dan data lain yang digunakan runtime pada waktu eksekusi.
Runtime mencari dan mengekstrak metadata dari file serta dari framework class library (FCL) sesuai kebutuhan selama eksekusi.
Mengompilasi MSIL ke Kode Asli
Pada waktu eksekusi, kompilator just-in-time (JIT) menerjemahkan MSIL ke dalam kode native.
Selama kompilasi ini, kode harus melewati proses verifikasi yang memeriksa MSIL dan metadata untuk mengetahui apakah kode tersebut dapat ditentukan sebagai jenis aman.
Menjalankan Kode
Runtime bahasa umum menyediakan infrastruktur yang memungkinkan eksekusi berlangsung dan layanan yang dapat digunakan selama eksekusi.
Selama eksekusi, kode yang dikelola menerima layanan seperti pengumpulan sampah, keamanan, interoperabilitas dengan kode yang tidak dikelola, dukungan debugging lintas bahasa, serta dukungan penerapan dan versi yang ditingkatkan.
Proses Eksekusi Kode Inti .NET
Sekarang mari kita hubungkan bagaimana kode dijalankan dengan .NET Core dibandingkan dengan .NET Framework. Di .NET Core ada banyak penggantian komponen ini yang merupakan bagian dari .NETFramework.
Di .NET Core sekarang kami memiliki rangkaian kompiler baru, seperti kami memiliki Roslyn untuk C # dan VB.
Anda juga dapat menggunakan compiler F # 4.1 baru jika Anda ingin menggunakan F # dengan .NET Core.
Sebenarnya alat ini berbeda dan kita dapat menggunakan Roslyn dengan .NET Framework juga jika kita menggunakan C # 6 atau yang lebih baru, karena kompiler C # hanya dapat mendukung hingga C # 5.
Di .NET Core, kami tidak memiliki perpustakaan kelas kerangka kerja (FCL), jadi kumpulan perpustakaan yang berbeda digunakan dan kami sekarang memiliki CoreFx.
CoreFx adalah implementasi ulang pustaka kelas untuk .NET Core.
Kami juga memiliki waktu pengoperasian baru dengan .NET Core yang dikenal sebagai CoreCLR dan memanfaatkan JIT Compiler.
Sekarang pertanyaannya adalah mengapa kita memiliki implementasi ulang dari semua komponen ini yang sudah kita miliki dalam kerangka .NET.
Jadi jawabannya sama dengan mengapa Microsoft menerapkan .NET Core.