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

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

Derleyiciler ve araçlar ortak dil çalışma zamanının işlevselliğini ortaya çıkarır ve bu yönetilen yürütme ortamından yararlanan kod yazmanız için olanak sağlar. Çalışma zamanının hedeflediği bir dil derleyicisi ile geliştirdiğiniz koda yönetilen kod denir. 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, hata ayıklama ve profil oluşturma hizmetleri gibi özelliklerden faydalanabilir.

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ığı için ortak dil çalışma zamanının tükettiği çı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 sağlamalarını sağlamak için dil derleyicilerinin kodundaki türleri, üyeleri ve başvuruları açıklayan meta verileri yaymaları 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, bellekteki örnekleri ayarlamak, 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 yönetir ve artık kullanılmadan nesneleri serbest bırakarak nesnelere yapılan başvuruları yönetir. Yaşam süresi bu şekilde yönetilen nesnelere yönetilen veriler denir. Atık toplama, bellek sızıntılarını ve diğer bazı yaygın programlama hatalarını ortadan kaldırıyor. Kodunuz yönetiliyorsa, .NET uygulamanıza yönetilen verileri, yönetilemeyen verileri veya hem yönetilen hem de yönetilemeyen verileri kullanabilirsiniz. Dil derleyicileri ilkel türler gibi kendi türlerini sağlar, çünkü verilerinizin yönetiliyor olup olmadığını her zaman bilmiyor (veya bilmek zorunda olmayabilirsiniz).

Ortak dil çalışma zamanı, nesneleri farklı dillerde etkileşime geçen bileşenleri ve uygulamaları tasarlamayı kolaylaştırır. Farklı dillerde yazılan nesneler birbirleriyle iletişim kurabilir ve davranışları sıkı bir şekilde tümleştirilmiş olabilir. Örneğin, bir sınıf tanımlayabilir ve ardından özgün sınıfınıza bir sınıf türetmek veya özgün sınıfta bir yöntem çağırarak farklı bir dil kullanabilirsiniz. Ayrıca bir sınıfın örneğini farklı bir dilde yazılmış bir sınıfın yöntemine de geçebilirsiniz. Bu diller arası tümleştirme mümkündür çünkü çalışma zamanlarını hedef alan dil derleyicileri ve araçları çalışma zamanı tarafından tanımlanan ortak bir tür sistemi kullanır ve yeni türleri tanımlamak ve türleri oluşturmak, kullanmak, kalıcı yapmak ve türleri bağlamak için çalışma zamanının kurallarına uygun olur.

Tüm yönetilen bileşenler, meta verilerinin bir parçası olarak, karşılarında yerleşik olarak bulunan bileşenler ve kaynaklar hakkında bilgi taşır. Çalışma zamanı, bileşeninizin veya uygulamanın ihtiyacı olan her şeyin belirtilen sürümlerine sahip olduğundan emin olmak için bu bilgileri kullanır ve bu da bazı karşılanmamış bağımlılık nedeniyle kodunuzun kesme olasılığı düşük olur. Kayıt bilgileri ve durum verileri artık kayıt defterinde depolanıyor ve kayıt defterinin kurulması ve bakımının zor olması sağlanıyor. Bunun yerine, tanımladığınız türler (ve bağımlılıkları) hakkında bilgiler kodda meta veri olarak depolanır ve bu da bileşen çoğaltma ve kaldırma görevlerini çok daha az karmaşık hale getiriyor.

Dil derleyicileri ve araçları, çalışma zamanının işlevselliğini geliştiriciler için kullanışlı ve sezgisel olacak şekilde ortaya çıkarır. Bu, çalışma zamanının bazı özelliklerinin bir ortamda diğer ortamdan daha fark edilebilir olabileceği anlamına gelir. Çalışma zamanı deneyiminiz, hangi dil derleyicilerini veya araçları kullandığınıza bağlıdır. Örneğin, bir Visual Basic geliştiriciyseniz, 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 kullanma olanağı.

  • Bir 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ı, ölçeklenebilir uygulamaların oluşturulmasına olanak sağlayan açık ücretsiz iş parçacığı oluşturma desteği.

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

  • Özel öznitelik desteği.

  • Atık toplama.

  • Artan tür 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ümler tek bir ürün sürümüne sahip, yani ayrı bir CLR sürümü yoktur. .NET Core sürümlerinin listesi için bkz. Download .NET Core.

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

Başlık Açıklama
Yönetilen Yürütme Süreci Ortak dil çalışma zamanından yararlanmak için gereken adımları açıklar.
Otomatik Bellek Yönetimi Atık toplayıcının belleği nasıl ayırıyor ve serbest bırakıyor.
.NET Framework’e Genel Bakış Ortak tür .NET Framework, diller arası birlikte çalışabilirlik, yönetilen yürütme, uygulama etki alanları ve derlemeler gibi temel kavramlar açıklanır.
Ortak Tür Sistemi Diller arası tümleştirmeyi desteklemek için türlerin çalışma zamanında nasıl bildiril, kullanılır ve yönetil olduğunu açıklar.