"Yönetilen kod" nedir?
.NET ile çalışırken genellikle "yönetilen kod" terimiyle karşılaşırsınız. Bu makale, yönetilen kodun ne anlama geldiğini açıklar ve bununla ilgili ek bilgiler sağlar.
Basitçe ifade etmek gerekirse, yönetilen kod yalnızca şöyledir: yürütmesi çalışma zamanı tarafından yönetilen kod. Bu durumda söz konusu çalışma zamanı, uygulamadan bağımsız olarak
Bu, "yönetilmeyen kod" olarak da adlandırılan bir C/C++ programını çalıştırma yönteminize karşılık gelir. Yönetilmeyen dünyada, programcı hemen hemen her şeyden sorumlu. Asıl program, temelde işletim sisteminin (OS) belleğe yükleyip başlattığı bir ikili dosyadır. Bellek yönetiminden güvenlikle ilgili dikkat edilmesi gerekenlere kadar diğer her şey programcının yükünü oluşturur.
Yönetilen kod C#, Visual Basic, F# ve diğerleri gibi .NET'in üzerinde çalıştırılabilen üst düzey dillerden birinde yazılır. İlgili derleyicileriyle bu dillerde yazılmış kodu derlediğinizde, makine kodunu alamazsınız. Çalışma zamanının daha sonra derleyip yürüttüğü Ara Düzey Dil kodunu alırsınız. C++, Windows üzerinde çalışan yerel, yönetilmeyen ikili dosyalar da üretebildiği için bu kuralın tek özel durumudur.
Ara Düzey Dil & yürütme
"Ara Dil" (veya kısaca IL) nedir? Üst düzey .NET dillerinde yazılmış kod derlemesinin bir ürünüdür. Kodunuzu bu dillerden birinde derledikten sonra IL'de oluşturulan bir ikili dosya alırsınız. IL'nin herhangi bir özel dili çalışma zamanı üzerinde çalıştırmadan bağımsız olduğunu belirtmek önemlidir; hatta, ilginizi çekerse okuyabileceğiniz ayrı bir teknik şartname bile bulunmaktadır.
Üst düzey kodunuzdan IL'yi ürettikten sonra büyük olasılıkla çalıştırmak istersiniz. Burada CLR devreye girer ve kodunuzu IL'den bir CPU üzerinde çalıştırılabilecek makine koduna dönüştürmek için Just-In-Time derleme veya JIT (tam zamanında derleme) işlemini başlatır. Bu şekilde CLR, kodunuzun tam olarak ne yaptığını bilir ve etkili bir şekilde
Ara Dil bazen Ortak Ara Dil (CIL) olarak da adlandırılır.
Yönetilmeyen kod birlikte çalışabilirliği
Elbette CLR, yönetilen ve yönetilmeyen dünya arasındaki sınırların aşılmasına izin verir ve .NET sınıf kütüphanelerinde bile bunu yapan çok sayıda kod vardır. Buna
Buna benzer şekilde C#, clr tarafından yönetilmeyen bir kod parçası belirten güvenli olmayan bağlamkullanarak doğrudan kodda işaretçiler gibi yönetilmeyen yapıları kullanmanıza olanak tanıyan bir dildir.
Diğer kaynaklar
- .NET Framework Genel Bakış
- Güvenli Olmayan Kod ve İşaretçiler
- Yerel birlikte çalışabilirlik