Common Language Infrastructure

Common Language Infrastructure veya kısaca CLI, programlama dili ve platformdan bağımsız bir şekilde uygulama geliştirme ve yürütmeyi mümkün kılan sistemleri belirleyen uluslararası bir teknik normdur. Standart, Uluslararası Standardizasyon Örgütü tarafından ISO/IEC 23271 numarası altında ve Ecma International tarafından ECMA-335 adı altında sürdürülmektedir. Mevcut versiyon, Haziran 2012'den itibaren 6 numaralı versiyondur.

CLI bir uygulama değil, bir şartnamedir. CLI standartlarının en yaygın yürütüldüğü uygulama, Microsoft'un Windows sistemleri için geliştirdiği .NET Framework'tür. Ancak Unix/Linux sistemleri, Mac OS X ve BSD işletim sistemleri için de CLI standartlarının uygulandığı sistemler mevcuttur.

Geliştirme büyük ölçüde Microsoft tarafından yapılır.

Gelişim tarihçesi
Ağustos 2000 – Microsoft, Hewlett-Packard ve Intel, CLI şartnamesini standardizasyon için ECMA'ya sundu.
Aralık 2001 – Standart ECMA-335 olarak kabul edildi. Geliştirmeye IBM, Fujitsu Software, Plum Hall, Monash Üniversitesi ve ISE katkıda bulundu.
Aralık 2001 - CLI spesifikasyonu standardizasyon için ISO/IEC'ye sunuldu.
Aralık 2002 – ECMA-335 2. versiyon standardının ilk revizyonu kabul edildi.
Nisan 2003 - ECMA-335 2. versiyonunun içeriği ISO/IEC tarafından ISO/IEC 23271 (CLI) ve ISO/IEC 23272 (CLI TR) olarak onaylandı.
Haziran 2005 – ECMA-335 3. versiyon ECMA tarafından standartlaştırıldı. Genel iyileştirmelere ek olarak, bu standart öncelikle genel veri yapıları için destek ve hata ayıklama bilgileri için standartlaştırılmış bir format sağlar.
Haziran 2006 – ECMA-335 4. versiyon ECMA tarafından standartlaştırıldı.
Aralık 2006 – ECMA-335 5. versiyon ECMA tarafından standartlaştırıldı
Haziran 2012 – ECMA-335 6. versiyon ECMA tarafından standartlaştırıldı.

Temel yapısı
Standart, aşağıdaki temel kısımları içermektedir:

Common Type System (CTS)
Virtual Execution System (VES)
Common Language Spesification (CLS)
Common Intermediate Language (CIL)
Metadata

CLI'yı oluşturan bölümler
CLI standardı ECMA-335 3. baskı, bölümler olarak adlandırılan altı bölüme ayrılmıştır. Bunlar ayrıntılı olarak:

Bölüm I: Konsept ve Mimari - CLI'nin genel mimarisini açıklar.
Bölüm II: Metadata Tanımı ve Semantiği - Metadatalar hakkında bilgi içerir: Bunların içinde dosyaların arayüz düzeni, içerikleri ve yapıları bulunur.
Bölüm III: CIL – CIL'nin talimatlarını açıklar
Bölüm IV: Kütüphaneler – CLI'nin bir parçası olarak standartlaştırılmış sınıfların ve bu sınıfların kütüphanelerinin özelliklerini içerir.
Bölüm V: Bileşik hata ayıklama biçimini açıklar.
Bölüm VI: Ekler.

CLI standartlarının uygulamaları
CLI'nin aşağıdaki uygulamaları mevcuttur:

.NET Framework (standart, ek olarak pek çok sayıda kütüphaneyi içerecek şekilde genişletilmiştir)
MSSCLI (ayrıca: Rotor) (BSD için)
Mono (çeşitli Unix/Linux sistemleri, Mac OS X ve Windows içindir; açık kaynak olarak tasarlanmıştır)
.NET Compact Framework (x86, MIPS, SH4 veya ARM işlemcilerini temel alan Windows CE uygulaması)
.NET Micro Framework
Silverlight
DotGNU
.NET Core

Bu CLI uygulamalarının her birinin ayrıca bir VES (Virtual Execution System) uygulaması vardır. Bu VES uygulamalarının bilinen adları şunlardır:

Common Language Runtime (CLR), .NET Framework için
TinyCLR, .NET Micro Framework için
Portable.NET, DotGNU için
CoreCLR, .NET Core için

Ayrıca bakınız
Global Assembly Cache

Kaynakça
James S. Miller, Susan Ragsdale: Ortak Dil Altyapısı Açıklamalı Standardı, Addison-Wesley 2003, ISBN 0321154932

Dış bağlantılar
Ecma International'ın resmi sitesi
ISO'daki resmi site