.Net Assembly Nedir?
Genelde “Assembly nedir?” sorusu sorulduğunda, akla gelen ilk cevap eski bir programlama dilidir. “.Net Assembly nedir?” diye sormak daha doğru olacaktır.
Microsoft .NET Framework ailesinde kullanılan dillerden biri ile uygulama geliştirdiğimiz zaman, yazmış olduğumuz kodlar kullandığımız yazılım dilinin derleyicisi (Compiler) tarafından .dll ve/veya .exe çıktısı vermektedir.
Bu çıktıya .Net Assembly denir.
Microsoft .Net Assembly 4 bölümden oluşur
- Common Intermediate Language (CIL)
- Metadata
- Manifest
- Resources
1. Common Intermediate Language (CIL)
.Net platformuna ait yazılım dilleri ile yazılmış kodlar derleme işlemi ile Common Intermediate Language dediğimiz ortak bir dile dönüştürülür. Dönüştürülen bu dil .Net Assembly’de CIL altında barındılır.
Örnek verecek olursak C# yazılan kodlar ve VB.Net ile yazılan kodlar aynı CIL çıktısı verir. CIL Makine kodu değildir. CIL Common Language Runtime (CLR – Bunu konu ile ilgili bir blog yazım daha gelecek) ile makine diline çevrilir.
İsterseniz buradan kodların IL ‘ e dönüştürerek inceleyebilirsiniz.
2. Metadata
Metadata içerisinde uygulamayı yazarken kullandığımız değişkenlerin, fonksiyonların ve referansların bilgisi bulunur. Örnek verecek olursak;
Bir Console uygulama içerisinde yazdığım Console sınıfının içerisinde bulunan WriteLine metodu Metadata içerisinde bulunur.
Bu arada .Net platformunun IDE’si (Integrated Development Environment – Entegre geliştime ortamı) olan Visual Studio bunu Metadata’dan yararlanarak geliştirme esnasında intellisense ile bize öneriler sunar.
3. Manifest
.Net Assembly’nin kimlik bilgileri Manifest’te tutulur. Örneğin, Assembly Adı, Assembly Versiyon numarası, yasal uyarılar…vb.
4. Resources
Uygulamada kullanılan kaynak dosyaların bulunduğu yer. Nedir bu dosyalar ; resim dosyaları, gif’ler, html-xml yada resource files vs olabilir.
Ayrıca Common Language Runtime yazımı Middle Level kodların Makine koduna nasıl çevrildiğini anlamanız için bir göz atın derim.
Microsoft Dokümantasyonuna buradan erişebilirsiniz.