Öncelikle .Net Framework dediğimiz kavramdan başlayalım.
Bu kavram aslında geniş bir yapıyı içinde barındırıyor. Şöyle ki; .Net Framework dediğimiz şey en temelde Windows üzerindeki işletilebilen dosya uzantısı olan .dll’e sahip olan dosyalar bütünü diyebiliriz. Bu dosyalar içerisinde hem .Net Framework’e ait işletilebilir kodlar var hem de Windows işletim sistemine (daha sonra Linux ve Mac işletim sistemleri de eklendi) ait hizmetleri kullanmamızı sağlayan kodlar mevcut. .NET Framework sadece bununla da kalmıyor içerisinde CLR (Common Language Runtime) dediğimiz uygulamalarımızın çalışmasını sağlayan da ortak bir yapıyı da barındırıyor.
Peki bu birimin .Net içerisinde olması bizi neden ilgilendiriyor?
.Net içerisindeki bu CLR olmadan biz C# dilini kullanarak uygulamalarımızı çalıştıramıyoruz. Evet duydunuz C# için bir “DİL” ifadesini kullandım. Birazdan detaylara değineceğiz. CLR ortak bir yapı olduğu için (Common) CLR’a çevrilmiş bir assembly bunu destekleyen herhangi bir işletim sistemi tarafından çalıştırılabilir(Cross Platform desteği sunan programlama dilleri de bundan faydalanıyor). O zaman buradan anladığımız şu, bir işletim sistemi üzerinde CLR varsa ve bu CLR da çalıştırılabilecek bir assembly varsa bu assembly herhangi bir işletim sistemi tarafından çalıştırılabilir. Evet doğru anlamışız 🙂
Şimdi .Net Framework tarafına geri dönelim. Framework için ne demiştik? İçerisinde hem işletim sistemi API lerini kullanabilen hem de kendine özgü fonksiyonları olan ve bize bunları sunabilen, dll lerden oluşmuş, içerisinde CLR’ı da barındıran bir yapı (Çok güzel tabir oldu!).
Dolayısı ile .Net Framework her versiyon güncellemesi aldığında, hem işletim sistemleri tarafında değişmiş olan servisleri geliştiriyor hem de kendi içerisinde bize sunmuş olduğu özellikleri değiştiriyor. Bazılarında performans çalışmaları yapılırken belki bazı özellikler ise komple kaldırılıyor. Bu sebeple .Net Framework’ün en güncel halini kullanmak her zaman avantajımıza olacaktır. Peki diyelim ki biz .Net Framework’ün bu özelliklerini kullanmak istiyoruz. Bu durumda ne yapmamız gerekiyor derseniz de o zaman bu hizmetlere ulaşmamızı sağlayacak bir programlama diline ihtiyacımız var. Hatırladınız mı C# için bir “DİL” demiştik. Gelin şimdi C# tarafını inceleyelim.

