Ortak Dil Çalışma Zamanına (CLR) genel bakış

.NET, kodu çalıştıran ortak dil çalışma zamanı olarak adlandırılan bir çalışma zamanı ortamı sağlar ve geliştirme sürecini kolaylaştıran hizmetler sağlar.

Derleyiciler ve araçlar ortak dil çalışma zamanının işlevselliğini kullanıma sunar ve yönetilen yürütme ortamından yararlanan kodlar yazmanızı sağlar. Çalışma zamanını hedefleyen bir dil derleyicisi ile geliştirdiğiniz kod yönetilen kod olarak adlandırılır. Yönetilen kod, diller arası tümleştirme, diller arası özel durum işleme, gelişmiş güvenlik, sürüm oluşturma ve dağıtım desteği, bileşen etkileşimi için basitleştirilmiş bir model ve hata ayıklama ve profil oluşturma hizmetleri gibi özelliklerden yararlanır.

Not

Derleyiciler ve araçlar, tür sistemi, meta veri biçimi ve çalışma zamanı ortamı (sanal yürütme sistemi) genel bir standart olan ECMA Ortak Dil Altyapısı belirtimi tarafından tanımlandığından ortak dil çalışma zamanının kullanabileceği bir çıkış üretebilir. Daha fazla bilgi için bkz . ECMA C# ve Ortak Dil Altyapısı Belirtimleri.

Çalışma zamanının yönetilen koda hizmet sunmasını sağlamak için dil derleyicilerinin kodunuzdaki türleri, üyeleri ve başvuruları açıklayan meta verileri yayması gerekir. Meta veriler kodla birlikte depolanır; her yüklenebilir ortak dil çalışma zamanı taşınabilir yürütülebilir (PE) dosyası meta veriler içerir. Çalışma zamanı sınıfları bulup yüklemek, örnekleri bellekte düzenlemek, yöntem çağrılarını çözümlemek, yerel kod oluşturmak, güvenliği zorlamak ve çalışma zamanı bağlam sınırlarını ayarlamak için meta verileri kullanır.

Çalışma zamanı nesne düzenini otomatik olarak işler ve nesnelere yapılan başvuruları yönetir ve artık kullanılmadığında serbest bırakılır. Yaşam süreleri bu şekilde yönetilen nesnelere yönetilen veri adı verilir. Atık toplama, bellek sızıntılarını ve diğer bazı yaygın programlama hatalarını ortadan kaldırır. Kodunuz yönetiliyorsa, .NET uygulamanızda yönetilen, yönetilmeyen veya hem yönetilen hem de yönetilmeyen verileri kullanabilirsiniz. Dil derleyicileri ilkel türler gibi kendi türlerini sağladığından, verilerinizin yönetilip yönetilmediğini her zaman bilmeyebilir veya bilmeniz gerekmeyebilir.

Ortak dil çalışma zamanı, nesneleri diller arasında etkileşim kuran bileşenler ve uygulamalar tasarlamayı kolaylaştırır. Farklı dillerde yazılmış nesneler birbirleriyle iletişim kurabilir ve davranışları sıkı bir şekilde tümleştirilebilir. Örneğin, bir sınıf tanımlayabilir ve ardından özgün sınıfınızdan bir sınıf türetmek için farklı bir dil kullanabilir veya özgün sınıfta bir yöntem çağırabilirsiniz. Bir sınıfın örneğini, farklı bir dilde yazılmış bir sınıfın yöntemine de geçirebilirsiniz. Bu diller arası tümleştirme, çalışma zamanını hedefleyen dil derleyicileri ve araçları çalışma zamanı tarafından tanımlanan ortak bir tür sistemi kullandığından mümkündür. Yeni türleri tanımlamak ve türleri oluşturmak, kullanmak, kalıcı hale getirmek ve türlere bağlamak için çalışma zamanının kurallarına uyar.

Meta verilerinin bir parçası olarak, tüm yönetilen bileşenler, oluşturuldukları bileşenler ve kaynaklar hakkında bilgi taşır. Çalışma zamanı, bileşeninizin veya uygulamanızın ihtiyaç duyduğu her şeyin belirtilen sürümlerine sahip olduğundan emin olmak için bu bilgileri kullanır ve bu da kodunuzun karşılanmayan bağımlılık nedeniyle bozulma olasılığını düşürür. Kayıt bilgileri ve durum verileri artık kayıt defterinde depolanmaz ve bunların oluşturulması ve korunması zor olabilir. Bunun yerine, tanımladığınız türler ve bağımlılıkları hakkındaki bilgiler kodda meta veri olarak depolanır. Bu şekilde, bileşen çoğaltma ve kaldırma görevi daha az karmaşıktır.

Dil derleyicileri ve araçları, çalışma zamanının işlevselliğini geliştiriciler için yararlı ve sezgisel olacak şekilde kullanıma sunar. Çalışma zamanının bazı özellikleri bir ortamda diğerinden daha belirgin olabilir. Çalışma zamanını nasıl deneyimlediğiniz, hangi dil derleyicilerini veya araçlarını kullandığınıza bağlıdır. Örneğin, bir Visual Basic geliştiricisiyseniz, ortak dil çalışma zamanıyla Visual Basic dilinin nesne odaklı özelliklere sahip olduğunu fark edebilirsiniz. Çalışma zamanı aşağıdaki avantajları sağlar:

  • Performans geliştirmeleri.

  • Diğer dillerde geliştirilen bileşenleri kolayca kullanabilme.

  • Sınıf kitaplığı tarafından sağlanan genişletilebilir türler.

  • Nesne odaklı programlama için devralma, arabirimler ve aşırı yükleme gibi dil özellikleri.

  • Çok iş parçacıklı ve ölçeklenebilir uygulamalar oluşturmaya olanak tanıyan açık ücretsiz iş parçacığı oluşturma desteği.

  • Yapılandırılmış özel durum işleme desteği.

  • Özel öznitelikler için destek.

  • Çöp toplama.

  • Daha fazla tür güvenliği ve güvenliği için işlev işaretçileri yerine temsilci kullanımı. Temsilciler hakkında daha fazla bilgi için bkz . Ortak Tür Sistemi.

CLR sürümleri

.NET Core ve .NET 5+ sürümleri tek bir ürün sürümüne sahiptir, yani ayrı bir CLR sürümü yoktur. .NET Core sürümlerinin listesi için bkz . .NET Core'ı indirme.

Ancak, .NET Framework sürüm numarası, içerdiği CLR'nin sürüm numarasına karşılık gelmez. .NET Framework sürümlerinin ve buna karşılık gelen CLR sürümlerinin listesi için bkz . .NET Framework sürümleri ve bağımlılıkları.

Ünvan Açıklama
Yönetilen Yürütme İşlemi Ortak dil çalışma zamanından yararlanmak için gereken adımları açıklar.
Otomatik Bellek Yönetimi Çöp toplayıcının belleği nasıl ayırıp serbest bıraktığı açıklanır.
.NET Framework'e genel bakış Ortak tür sistemi, diller arası birlikte çalışabilirlik, yönetilen yürütme, uygulama etki alanları ve derlemeler gibi temel .NET Framework kavramlarını açıklar.
Ortak Tür Sistemi Diller arası tümleştirmeyi desteklemek için türlerin çalışma zamanında nasıl bildirildiğini, kullanıldığını ve yönetildiğini açıklar.