.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.

Facebooktwittergoogle_plusredditpinterestlinkedinmail