Bilgisayarınıza sık sık yazılım yükleyen biriyseniz, çoğu yazılımın kurulum esnasında .NET Framework paketini de beraberinde yüklemek istediğini fark etmişsinizdir. Bu paket genelde geliştiricileri ilgilendirse de, bu isimde bir programın neden yüklenen programlar kısmında göründüğünü merak eden kullanıcılar da olacaktır. Bu nedenle .NET Framework adının ne ifade ettiğini ve sisteminizde neden yer kapladığını anlatacağız.
Öncelikle bir framework nedir onu açıklayalım. Framework, içerisinde uygulama geliştirme arayüzleri (API) ve programcıların ihtiyaç duyduklarında çağırabilecekleri paylaşımlı bir kod kütüphanesi barından paketlere denir. .NET Framework’ta ise paylaşımlı kod kütüphanesi Framework Class Library (FCL) olarak adlandırılıyor. Bu kütüphanedeki kodlar pek çok çeşit fonksiyon çalıştırabiliyor. Bu sayede programcılar ufak işlemler için gerekli fonksiyonları sıfırdan yazmak zorunda kalmıyor.
Diğer framework paketlerine kıyasla .NET, ayıca uygulamalar için çalışma alanı (runtime enviroment) da sunuyor. Çalışma alanları, içinde uygulamaların çalıştığı sanal makine benzeri bir kum havuzudur denebilir. Java ve Ruby on Rails gibi pek çok yazılım geliştirme platformu benzer çalışma alanları sunmaktadır. Söz konusu .NET olunca, bu çalışma alanı Common Language Runtime (CLR) olarak adlandırılır. Örneğin bir kullanıcı bir uygulamayı çalıştırdığında, uygulamanın kodları çalışma alanında makine diline derlenir ve ardından uygulama çalıştırılır.
Uygulamaları çalışma alanları içinde çalıştırmanın birden fazla avantajı mevcut. Bunların en büyüğü ise uyumluluk. Geliştiriciler kodlarını C#, C++, F#, Visual Basic gibi sık kullanılan programlama dillerinde yazabilir ve ve bu kodlar .NET destekli bütün donanımlar üzerinde çalıştırılabilir.
Microsoft zaman içinde .NET uygulamaları ile Windows dışı platformlar arasındaki uyumluluğu artırmak için birden fazla projeye imza attı. Bunlardan biri olan ücretsiz ve açık kaynak kodlu Mono, başta Linux olmak üzere diğer platformlar ile .NET uygulamalarını bir araya getirmek için kullanılıyor. .NET Core Framework ise benzer bir görevi hafif ve modüler çoklu platform uygulamaları için yerine getiriyor.
Yazılım geliştiricisi olmayan kullanıcıların bu soruyu sorması gayet doğal. Yukarıda belirttiğimiz gibi .NET, geliştiricilere pek çok kolaylık sunuyor. Ancak geliştiricilerin bu kolaylıklar ile geliştirdiği uygulamaların son kullanıcı ekseninde çalıştırılması için de sistemde gerekli .NET sürümünün yüklü olması gerekiyor.
Kullanıcıların merak edebileceği bir diğer şey ise sistemlerinde neden birden fazla .NET sürümünün yüklü olduğu olabilir. .NET ilk olarak gün yüzüne çıktığında her yeni sürümün geriye yönelik uyumluluğa sahip olması planlanıyordu. Ancak Windows XP ve Vista dönemlerinde yeni .NET sürümlerinin uyumluluk konusunda sorun yaşadığı tespit edildi. Bu sebeple aynı bilgisayarda birden fazla .NET sürümü yüklü olabiliyordu.
Neyse ki modern Windows sürümlerinde benzer sorunları göremiyoruz. Windows Vista günlerinde yaşanan iki önemli gelişme .NET Framework’un uyumluluk sorunlarını ciddi bir şekilde azalttı. İlk olarak .NET Framework 3.5 yayınlandı. Bu sürüm, .NET’in 2 ve 3 sürümlerini tamamen destekleyecek şekilde düzenlendi. Bu sayede .NET’in 2 veya 3 sürümünü talep eden bir uygulama, .NET 3.5 ile de sorunsuz bir şekilde çalışabiliyordu. Bu dönemde yaşanan diğer önemli gelişme ise, .NET yükseltmelerinin Windows Update aracılığıyla dağıtılması oldu.
Windows 8 ile birlikte çıkan .NET Framework 4 ise, kendinden önce gelen sürümlerin aksine geriye yönelik uyumluluğu tamamen kaldırdı. Yani Windows 8 veya 10 kullanıyorsanız, sisteminizde büyük ihtimalle .NET’in hem 3.5 hem de 4 sürümü yüklü olacaktır. Windows artık .NET 3.5 ve öncesi sürümleri için yazılan uygulamaları 3.5 sürümü ile, 4 için yazılan uygulamaları ise 4 sürümü ile çalıştırıyor.
Ancak bu konuda endişe etmenize gerek yok zira Windows hangi uygulamanın hangi .NET sürümüne ihtiyaç duyduğunu otomatik olarak belirleyebilir. Windows’a ilk defa .NET 3.5 veya 4 gerektiren bir yazılım yüklediğinizde, Windows otomatik olarak gerekli .NET sürümünü yüklüyor ve kullanıcıların .NET ile uğraşması gerekmiyor.