2.Ders .NET Platformu Nedir?

Eğer C# dili ile programlama yapmayı düşünüyorsanız .NET(Okunuşu Dot NET) deyimini sıkça duyacak veya okuyacaksınız.

.NET, işletim sistemlerinden, programlama dillerinden, programlama editörlerinden, kütüphanelerden bağımsız uygulamalar geliştirilebilen bir geliştirme platformudur. .NET platformu ile masaüstü uygulamaları, web sayfaları, mobil uygulamalar ve IOT(Nesnelerin İnterneti-Buzdolabının internete bağlanması gibi) uygulamaları geliştirilebilir.

Buradaki bağımsızlık deyiminin anlamı; Aynı platform ile farklı işletim sistemlerinde, farklı dillerde uygulama geliştirilebilme imkanı anlatılmaktadır.

Microsoft Visual Studio Uygulama Geliştirme Ortamının tüm eklentileri ile birlikte bize sunduğu imkanlar, .NET platformunu oluşturur. Yani .NET platformu ile bahsedilen imkanlara Microsoft Visual Studio nun kurulumu ile sahip olunmuştur. Bazı imkanlar ise eklenti olarak yüklenebilir haldedir. İhtiyaç halinde yüklenebilir.

.NET Platformu İşletim Sistemi İlişkisi

İşletim sisteminden, dilden ve uygulama türünden bağımsız geliştirme nasıl gerçekleşiyor? Bunu anlayabilmek için geleneksel programlama ile .NET platformunun işletim sistemi üzerindeki çalışmasını karşılaştıralım.

Geleneksel Programlamada EXE(Binary) Dosyasının Oluşumu

Geleneksel yapıda, kod yazılır ardından derleyici ile bu kod derlenir ve EXE dosyası elde edilir. Bu EXE dosyası Windows tarafından herhangi bir eklentiye ihtiyaç duymadan doğrudan çalıştırılabilir.

Bu sade yapı oldukça hızlı çalışır ancak beraberinde bazı dezavantajlara sahiptir. Bu yapıda, her işletim sistemi için ayrı derleyici gereklidir. Hatta bazı durumlarda aynı işletim sisteminin farklı versiyonları için dahi farklı derleyiciler gerekebilir. Birbirinden farklı türlerde(masaüstü, web, mobil vs.) uygulamaların aynı platformda geliştirilebilmeleri mümkün değildir.

Şimdi de .NET platformunda ki işleyişi inceleyelim.

.NET Platformunda EXE(Binary) Dosyasının Oluşumu

.NET platformunda da geleneksel programlaya benzer bir işleyiş var gibi görünüyor. Ancak işleyiş oldukça farklı. .NET platformunda elde edilen Binary dosyası geleneksel programlamadaki Binary dosyası ile aynı değil. .NET platformunda kaynak kodun derlenmesi ile elde edilen dosya, MSIL(Microsoft Intermediate Language-Microsoft Ara Dili) kodlarını içerir.

MSIL Nedir?

.NET platformunda yazılan kodlar, dil ya da uygulama türü ne olursa olsun derlendiği zaman MSIL kodlarına dönüştürülür. MSIL kodları içeren binary, Windows ya da herhangi bir işletim sistemi tarafından doğrudan çalıştırılamaz.

MSIL kodları içeren binary’nin çalışabilmesi için .NET Framework’ün o işletim sisteminde yüklü olması gereklidir. Bknz. https://dotnet.microsoft.com/en-us/download/dotnet-framework. Microsoft Visual Studio bilgisayara yüklendiğinde gerekli .NET Framework sürümleri de bilgisayara otomatik yüklenir. Ancak uygulamanızı bir başka bilgisayara taşıyacağınızda o bilgisayarda yüklü olup olmadığı kontrol edilmesi gerekir.

.NET Framework’ün Görevi Nedir?

.NET Framework, CLR(Common Language Runtime) yapısını içerir. Bu yapı, MSIL dilindeki binary dosyasını çalıştırabilmek için geliştirilmiştir. MSIL dilindeki bir binary dosyası çalıştırılmak istenildiğinde CLR devreye girerek anlık olarak MSIL kodunu Windows un ya da hangi işletim sistemi üzerinde çalışıyorsa onun anlayacağı binary türüne dönüştürür. Ardından işletim sistemi o uygulamayı çalıştırır. CLR içerisinde ki anlık olarak kod dönüşümü yapan sisteme JIT(Just in Time Debugger) adı verilir.

Aşağıda .NET Framework’ün yüklü olduğu bir bilgisayarda bir binary dosyasının çalıştırılması akış diyagramı ile gösterilmiştir. Diyagramda, çalıştırılan bir binary eğer geleneksel yolla üretilmiş ise doğrudan çalıştırıldığı gösterilmiştir. Eğer çalıştırılan binary, MSIL kodu içeriyorsa CLR tarafından nasıl çalıştırıldığı gösterilmiştir.

CLR Yapısı

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir