.NET Teknolojilerine Giriþ

Günümüzde bilgisayar dünyasýnda internet olmazsa olmaz derecede önemli bir yer edinmeye baþladý. Artýk insanlar ev ve iþyerlerinde kullandýklarý uygulamalarýna da internet üzerinden eriþip kullanmak istiyorlar. Bu internetin getirdiði özgürlüðün kaçýnýlmaz bir sonucudur.Peki yazýlým dünyasý buna hazýrmýydý? Geliþtirilen her programý kolayca internet ormanýnda da çalýþtýrabilirmiydik? Bu sorularýn cevaplarý bir sene öncesine kadar hayýr, olamaz veya þu andaki sistemler bu denli özgürlüðü bize saðlamýyor türündendi.

Microsoft'un ASP'si ile veya PHP ile yapýlan uygulamalar tam olarak insanlarýn isteklerine cevap veremiyordu. Her ne kadar iyi ve geliþmiþ web uygulamalarýný bir yere kadar yapabiliyorduksa da belirli bir noktadan sonra C++,Delphi veya VB ile geliþtirdiðimiz modülleri web uygulamamýza ekleyerek sorunlarýmýzý halletmeye çalýþyorduk. Tabi bu tür yöntemler programýn geliþme süresini uzatýyordu. Zamanýn giderek önem kazandýðý bir devirde haliyle programlarýmýzý da hýzlý bir þekilde geliþtirmemiz gerekiyor(du). Hýzlý uygulama geliþtirme(Rapid Application Development- RAD) geleneksel programlama araçlarýyla ve prgramcýnýn yetenekleriyle çözüm bulunacak bir mesele deðil. Artýk programlama dilleri, dille birlikte gelen kütüphaneler ve bunlar hakkýndaki dokümantasyonlarý ile birlikte deðerlendiriliyor.

.NET ile birlikte programcýnýn hizmetine sunulan 3400'den fazla sýnýf, modern anlamda çok güzel bir geliþtirme ortamý sunuyor. Bu sayede programlamlarý daha hýzlý bir þekilde geliþtirme imkanýna sahip bulunuyoruz. .NET kullanarak yazdýðýmýz ASP.NET, Windows Forms veya mobil cihazlar için geliþtirdiðimiz bir uygulamayý birinden diðerine dönüþtürmek iþi çok kolay bir þekilde yapýlabiliniyor. Bu sayede ayný anda hem windows hem de web uygulamalarý geliþtirmek çok hoþunuza gidecektir :-).

.NET framework'unun bize sunduðu diðer güzel bir özellik ise platform baðýmsýzlýðýdýr. Artýk yazdýðýnýz Windows uygulamalarý sadece Windows yüklü sistemlerde deðil, .NET framework'unun kurulu olduðu tüm platformlarda çalýþabilecektir. Her ne kadar þimdilik bu alt yapýnýn sadece Windows versiyonuna sahip olsak da Linux gruplarý tarafýndan bu alt yapýnýn Linux versiyonunu çýkartma yönündeki çabalar uzun bir süredir devam etmektedir.

Peki bunca hoþ özellikleri bize saðlayan .NET alt yapýsýnda program yazarken hangi dili veya dilleri kullanmak zorundayýz? Bu konuda Microsoft çok radikal bir karar alarak gelecek için hazýrlanmýþ yeni alt yapýda Common Language Runtime (CLR) ile uyumlu her .NET dilini kullanmamýza olanak saðlýyor. .NET ile gelen SDK'da C#,VB.NET ve Js.NET kullanarak program yazabiliyoruz. Diðer taraftan 30'un üzerinde programlama diliyle .NET uygulamasý geliþtirebilirsiniz.

CLR denen þey tam olarak nedir? .NET altyapýsýnda programlarýn çalýþmasýný kontrol eden ve iþletim sistemi ile programýmýz arasýnda yer alan arabirimdir. Normalde yazdýðýmýz programlar derlenirken makine diline çevrilirdi ve program bu þekilde iþletim sistemi ile direkt baðlantý kurarak çalýþýrdý. Fakat platform baðýmsýz bir geliþtirme ve yürütme ortamý istiyorsanýz ne olacak? Ýþte tam bu anda CLR devreye girer ve .NET programlarýný farklý platformlarda makineye ve iþletim sistemine göre programýmýzý çalýþtýrýr. Normalde bir Windows, Linux veya MACOS kurulu sistemler ayný programýn kodunu çalýþtýramazlar. Bu platformlar için programýn ayrý ayrý yazýlýp, onlara göre hazýrlanmýþ derleyicilerde derlenmesi gerekir. Dünyada çok sayýda yaygýn platform olduðunu düþünürsek, bunlarýn herbiri için ayrý ayrý derleme iþlemini tek bir iþletim sisteminde yapmamýz imkansýz gibidir. Bu durumda çözüm , ortak bir aradil kullanmak ve herbir platform için bu aradile çevrilmiþ programýn kodunu çalýþtýracak  altyapýlarý hazýrlamaktýr.

Þimdi þu soruya sýra geldi: "Ýyi de .NET hangi aradili kullanýyor?" Sorumuzun cevabý MSIL(Microsoft intermediate Language) .NET platfomunda hangi dili kullanýrsak kullanalým yazdýðýmýz programýn kodu direkt olarak makine diline deðil de MSIL'e çevrilir. Bu sadece programý çalýþtýrdýðýmýz sistemde kurulu olan CLR çalýþma anýnda MSIL kodlarýný çevirerek programýmýzý çalýþtýrýr, çalýþma anýnda derleme iþlemini ise JIT derleyicileri (Just in Time compilers) üstlenir.

Gelecek makalemizde JIT'ler, MSIL language, CTS (Common Type System) gibi daha teknik konularý detaylý olarak ele almayý düþünüyorum. Sizlere kolaylýklar dilerim.