.Net’in Temel Özellikleri
.Net’in Temel Özelliklerini 5 ana başlık altında toparlayıp anlatabiliriz. Şimdi sırasıyla bunları incelemeye başlayalım
1. Ara Kodlu Çalışma Sistemi
C gibi bir dilde yazılan program derlendiğinde oluşturulan exe dosyada doğal makina kodları vardır.Doğal kodlar mikroişlemci tarafından doğrudan çalıştırışabilirler. Fakat C# gibi .Net ortamı için tasarlanmış bir dilde yazdığımız programı derlediğimizde .exe dosyasının içerisinde arakodlar vardır. Bu arakod hiçbir mikroişlemcinin gerçek kodu değildir. MS tarafından geliştirilmiş olan ismine CIL (Common Intermediate Language) denilen bir koddur.
Bu ara kod doğrudan çalışmaz. Ara kod çalıştırılmak istendiğinde .Net ortamı devreye girer ve ara kodu gerçek makina komutlarına dönüştürüp çalıştırır. Ara kodu kısım kısım gerçek makina koduna dönüştürüp çalıştıran .Netin alt sistemine CLR (Coomon Language Runtime) denir. Aynı sistem javada da var.
Java ortamında da ara kodlu çalışma sözkonusudur. Java derleyicisinin ürettiği koda Java Byte Code denir. bu kod da JVM (Java Virtual Machine) tarafından çalıştırılmaktadır.
.Net .exesi ---> JIT --> gerçek makina kodu
CLR’nin ara kodu gerçek makina komutlarına dönüştürme işlemlerine JIT (Just Intime Compilation) Derlemesi denilir. Ara kodlu çalışma sisteminde %18 performans kaybı olabilmektedir. Fakat bu kayıp önemsenmemelidir.
Ara kodlu çalışma sisteminin en önemli avantajı çalıştırılabilien programın (.exe nin) taşınabilirliğini sağlamaktır. Üretilen .exe kod belli bir işletim sistemi ve milkroişlemciye bağlı olmadığından başka sistemlere götürüldüğünde sorunsuz çalışır. Halbuki doğal kod işletim sistemi ve mikroişlemciye bağlıdır.
c# ile yazdığımız bir programı derleyip .exe yaptığımızda bu programı windowsta yazmış olsak bile hiçbirşey yapmadan linuxda çalıştırabiliriz.( Tabi bu kodu çalıştıracağımız sistemde CLI ortamının oluşturulmuş olması gerekir.Framework yüklü olmalıdır. win de .Net framework linuxda mono gibi...)
Şüphesiz CLI ortamlarının en geniş biçimi MSin .Net idir.Linux sistemlerinde Mono denilen ortamOpen Source bir biçimde oluşturulmuştur ve ücretsiz olarak yüklenebilir (monoproject.org) MONO ortamı MacOsX sistemlerine de yüklenebilmektedir.
MS Windows el bilgisayarları için olan versiyonu Windows CE için .Net ortamını “.Net Compact Framework ismiyle oluşturmuştur.”
Maalesef henüz iPhone, Android, Maemo gibi işletim sistemlerinde iyi bir .Net ortamı oluşturulamamıştır.
2. Diller Arası Entegrasyon (Language Interoperability)
Eskiden bir programlama dilinde yazılmış olan kodların başka bir dilde kullanımı önemli bir sorundu. Bunun için MS COM (Component Object Module) denen bir arayüz önermişti. COM kullanımı zordur ve pek çok problemi vardır. Halbuki .Net ortamında diller aynı arakodu ürettikleri için böyle bir entegrasyon doğal olarak gerçekleşmektedir.
C# , VB.Net , C++.Net (C++/CLI), J#(Java syntaxıyla .Net geliştirilebilir),F#.... gibi
MS bu ortam için yukarıdaki dillere ait compileri kendisi yazmıştır
Bunun dışında başkaları tarafından yazılmış derleyiciler de vardır ama .Net ortamının birinci dili C#tır. C# .Net ortamı için özel olarak geliştirilmiştir.
Ayrıca .Net ortasmı COM arayüzünü de desteklemektedir. Yani doğal kod içerin COM spesifikasyonlarına uygun yazılmış kodlar doğrudan .Net içerisinde kullanılabilir.
.Net ortamında doğal kod içeren .dll ler de dolaylı bir biçimde kullanılabilmektedir.
3. Ortak Sınıf Kütüphanesi
.Net ortamında her dilde ortak olarak kullanılabilen geniş bir sınıf kütüphanesi vardır. Bu kütpheda yüzlerce sınıf onbinlerde metod bulunmaktadır. Kütüphanenin çeşitli bölümleri çeşitli isimlerle anılmaktadır.
*Forms (Arayüz için), ADO.net (Db için), ASP.NET (Web sayfaları için), Graphics(çizim için), Socket(network programlama için), WPF,WF,WCFvs.....
.Net versiyonları ilerledikçe bu kütüphanelere yenileri eklenmektedir. Genelelikle versiyonlar ilerledikçe ilaveler yapılmakta ancak eskiler çıkartılmamaktadır.(Eski programların uyumluluğu ve çalışabilmesi için)
Bu geniş sınıf kütüphanesi .Net’e özgüdür ve tüm CLI ortamlarında bulunmayabilir. Sınıf kütüphanesinin çok küçük bir bölümü (Base Class Library) standart hale getirilmiştir.
4. Hızlı Uygulama Geliştirme Ortamı
.Net ortamı bir takım konuların ayrıntılarına girmeden hızlı bir biçimde uygulama geliştirmeye yönelik tasarlanmıştır. Görsellik önemli ölçüde kullanılmaktadır. Üretken bir dildir. Yani az kod yazarak çok iş yapabiliriz.
5. Güvenli Çalışma Ortamı
.Net ortamı doğal kodlu çalışma ortamından daha güvenlidir. Kötü niyetli programların sistemi bozması .Net ortamında daha zordur. Programların çökmesi ya da sistemi bozması büyük ölçüde engellenmektedir.