.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

  1. Common Intermediate Language (CIL)
  2. Metadata
  3. Manifest
  4. Resources
Microsoft .Net Assembly Bileşenleri

Microsoft .Net Assembly Bileşenleri

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;

.net Console sınıfı Writeline metodu

.net Console sınıfı Writeline metodu

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.

Emrah Eroğlu

Microsoft Power Platform - Dynamics 365 CE Developer - Solutions Architect

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir