Cumartesi, Temmuz 23, 2005

.NET nedir?

...



.NET tam olarak nedir?

.NET Framework, Microsoft tarafından geliştirilen, açık İnternet protokolleri ve standartları üzerine kurulmuş komple bir "uygulama" geliştirme platformudur. Buradaki uygulama kavramının kapsamı çok geniştir. Bir masaüstü uygulamasından tutun, bir web tarayıcı uygulamasına kadar her şey bu platform içinde düşünülmüştür ve desteklenmiştir. Bu uygulamaların birbirleriyle ve geliştirildiği ortam farketmeksizin dünyadaki tüm uygulamalarla iletişimi için kolayca Web Servisleri oluşturulmasına imkan verilmiştir. Bu platform, işletim sisteminden ve donanımdan daha üst seviyede taşınabilir olarak tasarlanmıştır. Microsoft, üzerinde çok çalışılmış, düşünülmüş bir ürün ortaya sunmuştur ve görünen-beklenen o ki, ileride sunacağı tüm ürünler de bu yeni platformu hedef alacak ve yüksek ihtimal ismini de paylaşacaktır. (Mesela Windows .NET, SQL Server .NET, ..)

Belki temelinde yatan fikir olarak kimi teknolojilerin klonlandığı iddia edilebilir ki ediliyor da. Lâkin neticeye bakıldığında önümüzde çiçeği burnunda duran .NET : interneti hedef alan bileşen setiyle; programcıları özgürleştiren, diller arası etkileşime olanak tanıyan dil bağımsız mimarisiyle; donanım-bağımsız ara seviye derleme ve güvenli talimat icraatını güvence altına alan çalışma zamanı ortamıyla; web uygulamalarına getirdiği özgün ve radikal yaklaşımıyla; zengin ve mükemmel organize edilmiş sınıf kütüphanesi ve dokumantasyonu ile; sınırları ortadan kaldıran web servisi desteğiyle... ve daha da sayabilecğeimiz bir çok özelliğiyle benzetildiği teknolojileri geride bırakan inkar edilemeyecek seviyede özgün bir platformdur.


Bu platformu nasıl edineceğim? Paralı mı?

.NET platformu için uygulama geliştirmek istiyorsanız, işletim sisteminize .NET çalıştırma ortamını kurmanız gerekiyor. Bu ortamı, Java uygulamalarını çalıştırmak için gerekli olan Java Run-time Environment (JRE) gibi düşünebilirsiniz.

.NET platformu iki ayrı kurulum dosyası halinde, ücretsiz sunuluyor. Bunlardan ilki 21 mb .NET'in çekirdek kurulumu. Bu kurulum ile, bilgisayarınızda bir metin editörü açıp kodunuzu yazıp, gelen derleyiciler ile derleyip uygulamanızı sınayabilirsiniz. Ancak bu kurulum, geliştiriciler için değil, daha çok dağıtım sonrası uygulamanızın çalışacağı sistemler için uygundur. .NET uygulamaları için gerekli çalışma zamanı ortamını, web uygulamalarının sunulabilmesi için gerekli olan Web sunucu (IIS) eklentilerini ve desteklenen temel dillerin derleyicilelerini sunmaktadır. Bir yazılım geliştiricinin bunlardan daha fazlasına ihtiyacı vardır. Hele de uygulama geliştireceği ortamda herhangi bir deneyimi yoksa. Bu nedenle 134 mb'lik .NET Framework SDK kurulumu da ikinci bir seçenek olarak sunuluyor. SDK yani Software Development Kit, çekirdek kurulumu içereden daha kapsamlı bir kurulumdur. Peki 134 mb lik kurulumda fazladan neler kapsanmıştır? Faydalı araçlar: mesela assembly'lere ara dil seviyesinde göz atmanızı sağlayan ildasm.exe, hata ayıklayıcılar, SQL Server'in hafif versiyonu MSDE, hızlıca başlamanızı temin edecek QuickStart Tutorials, örnek uygulamalar.. ve asıl bomba ise devâsa dokümantasyon. Organizasyonu ve disiplini göz kamaştıran bir dokümantasyon olduğunu kullanmaya başladıkça çok iyi anlayacaksınız.

Bu iki kurulumu da bedelsiz olarak Microsoft'un sitesinden indirebilirsiniz


Hangi işletim sistemlerinde çalışıyor?

Şu anda .NET Framework istemci uygulamaları sadece Windows 98/Me/NT4/2000/XP işletim sistemlerinde çalışabiliyor. Ancak sunucu davranışı için üzerine sp2 kurulmuş Windows 2000 ve Windows XP gerekiyor. Bunun anlamı: ASP.NET sayfalarını (yani .NET'in tarayıcıları ve mobil cihazları hedef alan web uygulamaları) Windows 2000 ve XP dışında bir sistemden sunamıyor oluşunuz. (Elbette ki bu sunum, Internet Information Server da gerektiriyor.)

Teoride .NET Framework her hangi bir işletim sistemine taşınabilir. Ancak taşınacağı işletim sistemine özgü çalışma zamanı ortamının ve sınıf kütüphanesinin yazılması lazım. Şu anda Linux için bu tip bir çalışma sürüyor.


Teoriden kastınız?

Yazacağınız herhangi bir .NET uygulaması ortak bir run-time ortamda çalışacak ve ortak bir kütüphaneyi kullanacaktır. Run-time ortamının teknik adı Common Language Runtime (CLR) dir. CLR, kodunuzun başında duran bir şef gibidir. Yetenekleri ve görevleri çok fazladır ve platformun en önemli bölümüdür. Mesela kodunuzda kaygısızca oluşturduğunuz ve "heap" alanına yığdığınız nesnelerin kullanılmadığı andan itibaren otomatik olarak toplanması CLR'ın görevidir.

.NET uygulamalarının kaynak kodları çalışır hale gelebilmek ve CLR'nin muhatabı olabilmek için iki derleme aşamasından geçmektedir. Desteklenen herhangi bir dille (VB.NET, C#, ..) yazdığınız kaynak kodu, .NET'in çekirdek kurulumu ile gelen, komut satırı derleyicileri kullanarak derlediğinizde ilk aşama gerçekleşmektedir. Derleme sonucunda bir .exe veya bir .dll dosyası oluşsa bile, bu dosyaların yürütülebilmesi için ikinci bir derleme evresine girmeleri gerekir. İlk derlemede kaynak kodunuz, özel adı MSIL (Microsoft Intermediate Language) olan, Assembly (sembolik makine) diline yakın bir dile dönüştürülmektedir. Oluşan .exe ve .dll dosyalar yürütülebilir kodlar yerine ara dil içermektedir. Bu dosyaları çalıştırmak istendiğinde, devreye CLR girecektir. Bu ara dildeki talimatlar, just-in time (JIT) compilation denen ikinci derleme aşamasına girecektir ve doğal makine koduna dönüşecektir. Bu ikinci derleme, uygulamanın çalışacağı yerde olacağından oluşacak doğal kod o ortama özgü olacaktır. Örneğin farklı işlemciler için farklı talimatlar üretilecektir.

Öte yandan uygulamanızı geliştirirken bir çok hazır çağrılara ihtiyacınız olacaktır. .NET, programcının kullanımına hazır bir sınıf kütüphanesi sunmuştur. Bu kütüphane işletim sistemi ile uygulamanız arasında bir köprü görevi yapmaktadır. Siz bir dosyaya yazmak istediğinizde, işletim sisteminin dosya sistemi çağrıları yerine, bu kütüphanedeki hazır sınıfı kullanacaksınız. Yani muhatabınız işletim sisteminden daha üst seviyede duran .NET iskeleti olacaktır. Böylelikle teoride uygulamanızın bağımlı olduğu tek şey .NET Framework'tur ve işletim sisteminden, donanımdan bağımsız hale gelmektedir. Bunun en kısa ifadesi "taşınabilir"liktir.
Kaynak: Evcil.net

Hiç yorum yok: