.NET Framework Nedir? C# ile İlişkisi ve Çalışma Mantığı
.NET Framework, Microsoft tarafından geliştirilen, Windows üzerinde uygulama geliştirmek ve çalıştırmak için kullanılan bir yazılım platformudur. C# ile program yazarken yararlandığımız hazır kütüphaneleri ve programın çalışması için gerekli altyapıyı sağlar.
1. Framework Nedir?
Framework kelimesi, Türkçede geliştirme çatısı anlamına gelir. Yazılım geliştirirken ihtiyaç duyulan hazır yapıları ve araçları bir araya getirir.
Bir programda bütün işlemleri sıfırdan yazmak yerine framework tarafından sunulan hazır yapılardan yararlanabiliriz. Böylece daha kısa sürede uygulama geliştirebiliriz.
Örneğin, bir uygulamada dosya okumak, tarih bilgisi almak veya ekrana bir pencere açmak için hazır kütüphaneler kullanılabilir.
2. .NET Framework Nedir?
.NET Framework, uygulamaların geliştirilmesini ve çalıştırılmasını sağlayan bir platformdur. Temel olarak iki önemli bölümden oluşur:
Önemli: .NET Framework bir programlama dili değildir. C#, Visual Basic ve F# gibi dillerle geliştirilen uygulamalar için kullanılabilen bir altyapıdır.
3. C# ile .NET Framework Arasındaki İlişki
C# bir programlama dilidir. Programın hangi işlemleri yapacağını C# dilinin kurallarına uygun olarak yazarız.
.NET Framework ise uygulama geliştirme ve çalıştırma platformudur. C# ile yazdığımız programda kullanabileceğimiz hazır kütüphaneleri ve çalışma ortamını sağlar.
Örneğin, C# ile bir Windows Forms uygulaması geliştirirken form, buton, metin kutusu ve liste kutusu gibi hazır yapılardan yararlanırız.
-
Form: Uygulamanın penceresini oluşturur.
-
Button: Kullanıcının tıklayabileceği bir düğme oluşturur.
-
TextBox: Kullanıcının metin girmesini sağlar.
-
ListBox: Öğeleri liste halinde gösterir.
Bu kontroller Windows Forms kütüphanesinde bulunur. Kontrollerin ne zaman ve nasıl kullanılacağını ise C# kodlarıyla belirleriz.
Önemli: C# yalnızca .NET Framework ile kullanılmaz. Modern .NET platformunda da C# ile uygulamalar geliştirilebilir.
4. Hazır Kod Kütüphaneleri Ne İşe Yarar?
Kütüphane, belirli işlemleri gerçekleştirmek için hazırlanmış, tekrar kullanılabilen yazılım yapılarından oluşur.
.NET Framework kütüphaneleri sayesinde birçok işlemi bütün ayrıntılarıyla kendimiz yazmak zorunda kalmayız.
Bu kütüphanelerden yararlanarak:
-
Metinler üzerinde işlem yapabiliriz.
-
Matematiksel hesaplamalar gerçekleştirebiliriz.
-
Tarih ve saat bilgileriyle çalışabiliriz.
-
Dosya okuyabilir ve dosyaya veri yazabiliriz.
-
Veri tabanına bağlanabiliriz.
-
Form ve kontrollerden oluşan arayüzler hazırlayabiliriz.
Örneğin, bir mesaj penceresi göstermek için aşağıdaki kod kullanılabilir:
MessageBox.Show("Merhaba Dünya!");
Bu kod, ekranda “Merhaba Dünya!” yazan bir mesaj penceresi açar. Mesaj penceresinin bütün ayrıntılarını kendimiz hazırlamak yerine hazır bir yapıdan yararlanırız.
5. .NET Framework Farklı Dillerle Nasıl Çalışır?
.NET Framework, kendisini hedefleyen farklı programlama dillerinin ortak bir altyapıdan yararlanmasını sağlar.
Örneğin, bir yazılımcı C# ile, başka bir yazılımcı ise Visual Basic ile bir kütüphane geliştirebilir. Uygun şekilde hazırlanan bu kütüphaneler aynı uygulamada birlikte kullanılabilir.
Bunun temel nedeni, bu dillerle yazılan kodların derlendiğinde ortak bir ara dil yapısına dönüştürülmesidir.
6. .NET Framework Çalışma Mantığı
İşlemci, C# dilinde yazdığımız kaynak kodu doğrudan çalıştırmaz. Kodun, işlemcinin çalıştırabileceği makine koduna dönüştürülmesi gerekir.
.NET Framework uygulamalarında bu süreç temel olarak şu aşamalardan oluşur:
-
Programcı, C# ile kaynak kodu yazar.
-
C# derleyicisi, kaynak kodu ara dil koduna dönüştürür.
-
Program çalıştırıldığında, ihtiyaç duyulan ara dil kodu JIT derleyicisi tarafından makine koduna dönüştürülür.
-
İşlemci, oluşturulan makine kodunu çalıştırır.
Çalışma sırası: C# kaynak kodu → Ara dil (IL) → Makine kodu → İşlemcide çalıştırma
7. Ara Dil (IL) Nedir?
IL (Intermediate Language), kaynak kodun derlenmesiyle oluşan ara dil kodudur. CIL veya MSIL olarak da adlandırılır.
Ara dil, C# kaynak kodu ile işlemcinin çalıştıracağı makine kodu arasındaki aşamadır. Doğrudan belirli bir işlemcinin makine kodu değildir.
.NET Framework'ü hedefleyen farklı dillerin ortak ara dile dönüştürülmesi, bu dillerle geliştirilen yazılımların birlikte çalışmasını kolaylaştırır.
8. JIT Derleyicisi Nedir?
JIT (Just-In-Time Compiler), ara dil kodunu programın çalışması sırasında makine koduna dönüştüren derleyicidir.
JIT derleyicisi, ihtiyaç duyulan metotları çalışacakları bilgisayarın işlemcisine uygun makine koduna çevirir.
Örneğin, bir metot ilk kez çağrıldığında JIT tarafından derlenebilir. Oluşturulan makine kodu, aynı program çalışması sırasında sonraki çağrılarda yeniden kullanılabilir.
9. CLR Nedir?
CLR (Common Language Runtime), Türkçede Ortak Dil Çalışma Zamanı anlamına gelir. .NET Framework uygulamalarının çalışmasını yöneten ortamdır.
CLR'nin görevlerinden bazıları şunlardır:
-
Kodun çalışmasını yönetmek.
-
JIT derleyicisiyle ara dilin makine koduna dönüştürülmesini sağlamak.
-
Bellek yönetimini gerçekleştirmek.
-
Artık kullanılmayan nesnelerin kapladığı belleğin geri kazanılmasını sağlamak.
-
Hata ve istisna yönetimi için altyapı sunmak.
Önemli: CLR, programda hiç hata oluşmayacağını garanti etmez. Programın çalışmasını yöneten ve çeşitli hizmetler sunan bir ortamdır.
10. .NET Framework ile Modern .NET Arasındaki Fark
.NET Framework ile modern .NET birbiriyle ilişkili, ancak farklı platformlardır.
-
.NET Framework: Windows üzerinde çalışan uygulamalar için kullanılan platformdur.
-
Modern .NET: Windows, Linux ve macOS gibi farklı işletim sistemlerini destekleyen platformdur. Ancak kullanılan uygulama türü desteği sınırlandırabilir. Örneğin, Windows Forms uygulamaları Windows üzerinde çalışır.
Bu ders notunda, .NET Framework kullanılarak geliştirilen uygulamaların temel yapısı ve çalışma mantığı ele alınmıştır.
11. Konunun Özeti
-
Framework: Yazılım geliştirmeyi kolaylaştıran geliştirme çatısıdır.
-
C#: Program yazmak için kullanılan programlama dilidir.
-
.NET Framework: Hazır kütüphaneler ve çalışma ortamı sunan platformdur.
-
Kütüphane: Tekrar kullanılabilen hazır yazılım yapılarını içerir.
-
IL: Kaynak kodun derlenmesiyle oluşan ara dildir.
-
JIT: Ara dili çalışma sırasında makine koduna dönüştüren derleyicidir.
-
CLR: Programın çalışmasını yöneten ortamdır.