.net Nedir?

.NET Framework, Microsoft tarafından geliştirilen, acık İnternet protokolleri ve standartları uzerine kurulmuş komple bir uygulama geliştirme platformudur. Buradaki uygulama kavramının kapsamı cok geniştir. Bir masaustu uygulamasından tutun, bir web tarayıcı uygulamasına kadar her şey bu platform icinde duşunulmuştur ve desteklenmiştir. Bu uygulamaların birbirleriyle ve geliştirildiği ortam farketmeksizin dunyadaki tum uygulamalarla iletişimi icin kolayca Web Servisleri oluşturulmasına imkan verilmiştir. Bu platform, işletim sisteminden ve donanımdan daha ust seviyede taşınabilir olarak tasarlanmıştır. Microsoft, uzerinde cok calışılmış, duşunulmuş bir urun ortaya sunmuştur ve gorunen-beklenen o ki, ileride sunacağı tum urunler de bu yeni platformu hedef alacaktır. Bu serinin ilk urunleri Windows Server 2003 ve Visual Studio 2003 satışa sunuldu zaten.

Belki temelinde yatan fikir olarak kimi teknolojilerin klonlandığı iddia edilebilir ki ediliyor da. LÂkin neticeye bakıldığında onumuzde ciceği burnunda duran .NET :

interneti hedef alan bileşen setiyle,
programcıları ozgurleştiren, diller arası etkileşime olanak tanıyan dil bağımsız mimarisiyle,
donanım-bağımsız ara seviye derleme ve guvenli talimat icraatını guvence altına alan calışma zamanı ortamıyla,
web uygulamalarına getirdiği ozgun ve radikal yaklaşımıyla,
zengin ve mukemmel organize edilmiş sınıf kutuphanesi ve dokumantasyonu ile,
sınırları ortadan kaldıran web servisi desteğiyle...
ve daha da sayabileceğimiz bir cok ozelliğiyle benzetildiği teknolojileri geride bırakan inkar edilemeyecek seviyede ozgun bir platformdur.

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

.NET platformu icin uygulama geliştirmek istiyorsanız, işletim sisteminize .NET calıştırma ortamını kurmanız gerekiyor. Bu ortamı, Java uygulamalarını calıştırmak icin gerekli olan Java Run-time Environment (JRE) gibi duşunebilirsiniz.

.NET platformu iki ayrı kurulum dosyası halinde, ucretsiz sunuluyor:

- .NET'in cekirdek kurulumu (21 MB) : Bu kurulum ile, bilgisayarınızda bir metin editoru acıp kodunuzu yazıp, gelen derleyiciler ile derleyip uygulamanızı sınayabilirsiniz. Ancak bu kurulum, geliştiriciler icin değil, daha cok dağıtım sonrası uygulamanızın calışacağı sistemler icin uygundur. .NET uygulamaları icin gerekli calışma zamanı ortamını, web uygulamalarının sunulabilmesi icin 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 ikinci bir secenek sunuluyor.

- .NET Framework SDK (134 MB) : SDK yani Software Development Kit, cekirdek kurulumu icereden daha kapsamlı bir kurulumdur. Peki 134 mb lik kurulumda fazladan neler var : Faydalı araclar, hata ayıklayıcılar, SQL Server'in hafif versiyonu MSDE, hızlıca başlamanızı temin edecek QuickStart Tutorials, ornek uygulamalar ve devÂsa dokumantasyon. Organizasyonu ve disiplini goz kamaştıran bir dokumantasyon olduğunu kullanmaya başladıkca cok iyi anlayacaksınız.

Bu iki kurulumu da ucretsiz olarak Microsoft'un sitesinden indirebilirsiniz : http://msdn.microsoft.com/net

Hangi işletim sistemlerinde calışıyor?

Şu anda .NET Framework istemci uygulamaları Windows 98/Me/NT4/2000/XP/Server 2003 işletim sistemlerinde calışabiliyor.

Ancak sunucu davranışı icin Windows 2000 (SP2 ve ustu), Windows XP veya Windows Server 2003 gerekiyor. Windows Server 2003'te .net framework kurulmuş oluyor zaten, ayrıca yuklemenize gerek yok. Bu işletim sistemleri dışında ASP.NET sayfalarını (yani .NET'in tarayıcıları ve mobil cihazları hedef alan web uygulamaları) sunamıyorsunuz. Elbette ki bu sunum, Internet Information Server (IIS) da gerektiriyor.

Teoride .NET Framework her hangi bir işletim sistemine taşınabilir. Ancak taşınacağı işletim sistemine ozgu calışma zamanı ortamının ve sınıf kutuphanesinin yazılması lazım. Şu anda Linux icin bu tip bir calışma suruyor.

Teoriden kastınız?

Yazacağınız herhangi bir .NET uygulaması ortak bir run-time ortamda calışacak ve ortak bir kutuphaneyi kullanacaktır. Run-time ortamının teknik adı Common Language Runtime (CLR) dir. CLR, kodunuzun başında duran bir şef gibidir. Yetenekleri ve gorevleri cok fazladır ve platformun en onemli bolumudur. 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 gorevidir.

.NET uygulamalarının kaynak kodları calışır hale gelebilmek ve CLR'nin muhatabı olabilmek icin iki derleme aşamasından gecmektedir. Desteklenen herhangi bir dille (VB.NET, C#, ..) yazdığınız kaynak kodu, .NET'in cekirdek kurulumu ile gelen, komut satırı derleyicileri kullanarak derlediğinizde ilk aşama gercekleşmektedir. Derleme sonucunda bir .exe veya bir .dll dosyası oluşsa bile, bu dosyaların yurutulebilmesi icin ikinci bir derleme evresine girmeleri gerekir. İlk derlemede kaynak kodunuz, ozel adı MSIL (Microsoft Intermediate Language) olan, Assembly (sembolik makine) diline yakın bir dile donuşturulmektedir. Oluşan .exe ve .dll dosyalar yurutulebilir kodlar yerine ara dil icermektedir. Bu dosyaları calış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 donuşecektir. Bu ikinci derleme, uygulamanın calışacağı yerde olacağından oluşacak doğal kod o ortama ozgu olacaktır. Orneğin farklı işlemciler icin farklı talimatlar uretilecektir.

Ote yandan uygulamanızı geliştirirken bir cok hazır cağrılara ihtiyacınız olacaktır. .NET, programcının kullanımına hazır bir sınıf kutuphanesi sunmuştur. Bu kutuphane işletim sistemi ile uygulamanız arasında bir kopru gorevi yapmaktadır. Siz bir dosyaya yazmak istediğinizde, işletim sisteminin dosya sistemi cağrıları yerine, bu kutuphanedeki hazır sınıfı kullanacaksınız. Yani muhatabınız işletim sisteminden daha ust seviyede duran .NET iskeleti olacaktır. Boylelikle 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.

Borland Cephesi

Borland .net'i destekleme kararı aldı. Zaten .net'in ve .net ile birlikte ortaya cıkan C# ın babası Anders Hejlsberg 13 yıl Borland'da calışmış birisi. Daha sonra astronomik rakamlarla Microsoft'a transfer olmuş.

Ne derece doğrudur bilmiyorum fakat ortada dolaşan komplolardan biri, .net'i geliştiren ve ilk fikri bulanın Borland firması olduğu, ancak projenin Microsoft tarafından sunulursa daha başarılı olacağını duşunduğu icin Microsoft'a devrettiği yonunde. Borland'ın .net'i hemen desteklemesinin arkasında da bunun olduğunu iddia edenler var. Borland'ın %10'unun Microsoft'a ait olması, .net'in babasının eski bir Borland calışanı olması da komplocuların başka dayanakları. Bilmiyorum, komplo işte Borland .net'i destekleyen ve .net icin urun cıkaran ilk firma oldu.

Borland ayrıca, bundan birkac hafta once (Mayıs 2003 başında), C# Builder isimli yeni bir urun cıkardı. Bu urun aynı zamanda Microsoft dışında .net icin cıkarılan ilk urun. Detaylı bilgi icin : http://www.borland.com/csharpbuilder

Delphi'de durumlar nasıl diye soracak olursanız, Delphi 7 ile gelen .net preview, tam olarak bir IDE'ye sahip değil ancak yakında cıkacak urun hakkında bilgi veriyor bize.

Borland Octane kod adı ile Win32 ve .net farmework'u aynı IDE icerisinde destekleyen bir urun geliştiriyor. Bu urun 2003 yılı sonunda cıkacak. Delphi for .net, hem .net framework uzerinde uygulama geliştirmenizi sağlayacak, hem de mevcut win32 projenizi .net'e gecirmek icin size yardımcı olacak.

VCL for .net ise, VCL'in mumkun olduğu kadar buyuk kısmını kapsayacak. Borland, geliştiricilerin mumkun olduğu kadar az kod değiştirerek mevcut projeleri .net'e gecirmelerini hedeflediklerini soyluyor. Delphi 7 ile birlikte dağıtılan ve surekli guncellenen .net preview ile VCL for .net'in mevcut haline goz atabilirsiniz.

Borland diğer bir merak konusunu da yanıtladı. Octane'da Delphi 7'de yer alan Win32 desteğinin aynen kalacağını, Win32 ve Kylix (Linux) platformlarını desteklemeye devam edeceklerini duyurdu.

Kaynak http://www.delphiturkiye.com/index.php?page=dnnedir.htm
__________________