.NET Core - Kod Yürütme
Bu bölümde, .NET Core'un yürütme sürecini anlayacağız ve bunu .NET Framework ile karşılaştıracağız. Yönetilen yürütme süreci aşağıdaki adımları içerir.
- Bir derleyici seçmek
- Kodunuzu MSIL'de derleme
- MSIL'i yerel koda derleme
- Koşu kodu
Derleyici Seçmek
Çok dilli bir yürütme ortamıdır, çalışma zamanı çok çeşitli veri türlerini ve dil özelliklerini destekler.
Ortak dil çalışma zamanı tarafından sağlanan faydaları elde etmek için, çalışma zamanını hedefleyen bir veya daha fazla dil derleyicisi kullanmanız gerekir.
Kodunuzu MSIL'de derleme
Derleme, kaynak kodunuzu Microsoft Ara Diline (MSIL) çevirir ve gerekli meta verileri oluşturur.
Meta veriler, her türün tanımı, her türün üyelerinin imzaları, kodunuzun başvurduğu üyeler ve çalışma zamanının yürütme sırasında kullandığı diğer veriler dahil olmak üzere kodunuzdaki türleri açıklar.
Çalışma zamanı, yürütme sırasında ihtiyaç duyulduğu şekilde dosyanın yanı sıra çerçeve sınıfı kitaplıklarından (FCL) meta verileri bulur ve çıkarır.
MSIL'i Yerel Koda Derleme
Yürütme zamanında, bir tam zamanında (JIT) derleyici MSIL'i yerel koda çevirir.
Bu derleme sırasında kod, kodun tür açısından güvenli olup olmadığının belirlenip belirlenemeyeceğini öğrenmek için MSIL ve meta verileri inceleyen bir doğrulama sürecinden geçmelidir.
Koşu Kodu
Ortak dil çalışma zamanı, yürütmenin gerçekleşmesini sağlayan altyapıyı ve yürütme sırasında kullanılabilecek hizmetleri sağlar.
Yürütme sırasında, yönetilen kod çöp toplama, güvenlik, yönetilmeyen kodla birlikte çalışabilirlik, diller arası hata ayıklama desteği ve gelişmiş dağıtım ve sürüm oluşturma desteği gibi hizmetleri alır.
.NET Çekirdek Kod Yürütme Süreci
Şimdi kodun .NET Core ile nasıl yürütüldüğünü .NET Framework ile karşılaştıralım. .NET Core'da, .NET Framework'ün bir parçası olan bu bileşenlerin pek çok değişimi vardır.
.NET Core'da artık Roslyn for C # ve VB gibi yeni bir derleyici serimiz var.
NET Core ile F # kullanmak istiyorsanız, yeni F # 4.1 derleyicisini de kullanabilirsiniz.
Aslında bu araçlar farklıdır ve C # 6 veya sonraki bir sürümünü kullanıyorsak Roslyn'i .NET Framework ile de kullanabiliriz çünkü C # derleyicisi yalnızca C # 5'e kadar destekleyebilir.
.NET Core'da, bir çerçeve sınıf kitaplığımız (FCL) yok, bu nedenle farklı bir kitaplık seti kullanılıyor ve şimdi CoreFx'e sahibiz.
CoreFx, .NET Core için sınıf kitaplıklarının yeniden uygulanmasıdır.
Ayrıca CoreCLR olarak bilinen .NET Core ile yeni bir çalışma zamanımız var ve bir JIT Derleyicisinden yararlanıyoruz.
Şimdi soru, zaten .NET çerçevesinde sahip olduğumuz tüm bu bileşenlerin yeniden uygulanmasına neden sahip olduğumuzdur.
Dolayısıyla cevap, Microsoft'un .NET Core'u neden uyguladığıyla aynı.