.NET TEKNOLOJİLERİNE
GİRİŞ !
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.
Hiç yorum yok:
Yorum Gönder