Tweet

C# ve .NET Framework İlişkisi

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.


Dia
okanatabag@gmail.com
9 Mayis 2006 18:12

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg