C# ve .NET Framework İlişkisi

Petroff ``

Kıdemli Üye
6 Haz 2014
2,257
1
Aslında C# kendi başına bir programlama dilidir. Fakat .NET Framework ile direkt olarak ilişkilidir. Çünkü C# in çalışma zamanı ortamını .Net Framework sağlar. Microsoft C# dilini .NET Framework için kod geliştirmek için oluşturmuştur ve C# da kullanılan kütüphanelerin tümü .NET Framework'ün kütüphaneleridir. Aslında Framework ün kütüphaneleri tüm .NET dillerinde ortak olarak kullanılır. .NET in gücüde buradan gelir.

.NET Framework Nedir?

.NET Framework çatısı farklı dillerin aynı ortamda çalışmasını sağlar. Yani bir projenin bir bölümü VB.NET diğer bölümü C# ile kodlanmışlabilir. .NET Framework barındırdığı ortak dil çalışma zamanı (Common Language Runtime) sayesinde, .NET in deslektediği diler ile yazılmış kodları makine diline çevirerek. Yazılımlarda çoklu dil kullanmaya olanak sağlar.

Peki bu tam olarak nasıl sağlanıyor. Çalışma Zamanı derleyicisi kodları derlerken çeşitli bileşenler kullanır. Bu bileşenler CLR (Common Language Runtime) ye bağlıdır. Bu bileşenler den bazıları şunlardır.

MSIL(Microsoft Intermediate Language) to native compiler : MSIL kodu makine diline çevirir.

Code Menager: Kodu uygulayarak kontrol eder.

Garbage Collector : Objelerin yaşam sürelerini otomatik olarak denetler.

.NET Framework Class Libary Support: Kodda yer alan classları .NET Framework ile birleşirir.



Bu saydıklarımız en önemli leridir. Şimdi gelelim çoklu dil kullanımının nasıl gerçekleştiğine. Her kod öncelikle kendine ait derleyicisinde derlenir. Mesela Visual J# ile yazılmış kod önce Visual J# derleyicisinde derlenir. Kendi derleyicisinde derlenen kod MSIL (Microsoft Intermediate Language) ye göre yeniden derlenir. Elde ettiğimiz MSIL kodu kendi başına çalıştırılabilir bir kod değildir. MSIL birtakım özel taşınabilir assembly koddan oluşur. Program çalıştırıldığında MSIL olarak derlenmiş kodu çalıştırılabilir bir kod haline CLR getirir. Bu işlem tüm .NET dilleri için aynı şekilde uygulandığı için .NET dilleri arasında performans farkı yok denecek kadar azdır. Bu yok sayılabilecek farkta dillerin kendi derleyicilerinin performans farklarından doğabilir.

Derleme Süreci
C# Kodu -> C# Derleyicisi -> MSIL Derleyicisi -> (Taşınabilir Assembly kod) MSIL Kod

Çalıştırma Süreci
MSIL Kod -> CLR(Common Language Runtime) -> Makine Dili

.NET Framework Hangi Dilleri Destekler?
.NET Sınırsız sayıda dili destekleyecek yapıda tasarlanmıştır fakat Şu anda 20 dili desteklemektedir. Bu diller.

C#
Visual Basic.NET
Visual J#.NET
Visual C++
Jscript.NET
C
COBOL
Python
Pascal
Perl
ADA
Oberon
Scheme
ML
Eiffel
APL
SmallTalk
Mercury
CAML
Haskell

.NET bu saydığımız dilleri desteklemektedir. Çoklu dil desteğini ne gibi faydaları var? Biraz akıl yürütelim mesela bir yazılım şirketimiz var ve yazılımcı elemanımız 5 kişi, bunlardan ikisi C# ve üçü Visual Basic.NET uzmanı. Fakat çok büyük bir proje geliştirmeniz gerekli. Ne yapıcaz? C# uzmanları iki kişi onlara VS mi öğreteceğiz. Yoksa işten çıkarıp yerine VS bilen eleman mı alacağız? Tabi ki hayır bırakın herkes bildiği dilde yazsın #:) .NET sizin yeriniz aynı dile çevirecektir.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.