ASP.NET
.NET 'e giriş, Neden ASP.NET?
ASP.NET kısaca Microsoft'un Haziran ayı itibari ile lanse edilen yeni sunucu
taraflı web teknolojisidir. Microsoft'un yeni gözbebeği olan .NET alt yapısı
çerçevesinde, bir çok açıdan yetersiz kalmaya başlamış ve tabiri caizse son
kullanım tarihi geçmiş ASP 'nin yerini alacak olan ASP.NET, web programcılığı
tarihinde çığır açacak yeniliklerle karşımıza çıkmakta. İlk olarak ASP+ olarak
açıklanan bu yeni teknoloji, Microsoft'un sunucu taraflı internet teknolojilerini
de .NET platformu altında toplama kararından sonra ASP.NET adını aldı.
Neden ASP den vazgeçip yeni bir dil öğrenmeliyim diyorsanız cevabı hazır. Öncelikle
ASP nin neden terkedilmeye mahkum olduğunu anlayalım.
1. Bildiğiniz üzere ASP (Active Server Pages), uzantıları ".asp"
olan dosyaların asp.dll adlı bir ISAPI yorumlayıcısı tarafından yorumlanması
ve kodda yer alan işler yapıldıktan sonra sonucun istemciye gönderilmesi esasına
dayanıyordu ki bu sunucunun performansını ciddi şekilde etkiliyordu. Her isteğin
ardından tekrar yorumlanan kodlar aynı anda yüzlerce sitenin barındığı sunuculara
ciddi yük getirmekteydi.
2. ASP ile yazdığınız kodlar her ne kadar site ziyaretçileri için görüntülenemez
olsalarda, intranet uygulamaları geliştirenler aylarca uğraşıp geliştirdikleri
programlarını herhangi bir ortama kurduklarında ciddi bir tedirginlik içine
girerlerdi. Neden, kodlar ortalıkta da ondan.
3. Yarı nesne tabanlı bir programlama dili olan ASP, sadece temel öğeleri ve
işlevleri içeren bir nesne ortamı sağlıyordu. Sunucuda kurulu olan COM objelerine
erişerek veya kendi objelerinizi yazarak ( sunucuya kaydetmek zorundaydınız
) kendinize nispeten geniş bir hareket ortamı yaratabiliyordunuz. Ancak ASP'nin
özgün nesne topluluğu bir çok sorunun çözülmesinde yetersiz kaldığından çoğunlukla
üçüncü parti COM bileşenlerine ihtiyaç duyuluyordu. Bu çok ciddi bir sorundu
çünkü her Hosting firması sizin ihtiyacınız olan bileşeni bulundurmayabiliyordu.
Sizin yazdığınız bileşenlerin sisteme kurulması konusunda da güvenlik açısından
çok hassas davranıyorlardı.
4. ASP, HTML kodlarının arasına serpiştirilerek yazılması gereken bir dil.
Buna
literatürde "Spagetti kodlama" deniliyor. HTML tagleri arasında kaybolan
ASP kodları hiç hoş bir görünüm arzetmediği gibi, herşeyin birbirine girmesine
de neden olabiliyordu.
5. ASP ile Nesne yönelimli çalışamadığınızdan tekrar kullanılabilir sınıflar
( class ) ve arabirimler yazılamıyordu.
6. Oluşturduğunuz formların yönetimi ise başlı başına bir dertti. Formun içindeki
bilgilerin kontrolleri ASP ile yapılamadığından Javascript öğrenmek ve kullanmak
zorunda kalmıştık. Formdaki değişiklikler neticesinde, formun bazı öğrelerinin
içeriğinin değişmesinin gerektiği durumlarda formun mutlaka submit edilmesi
gerekiyordu. Tabii Javascript'i iyi biliyorsanız durum farklı.
Peki ASP.Net cephesinde durum ne? Bize neler kazandırıyor ?
1. Yorumlayıcı
Uzantıları .aspx olan ASP.NET dosyalarının yorumlanmaları için yeni bir alt
yapı kullanılıyor. Yeni çalışma ortamımızın adı IIS ile entegre çalışan .NET
Framework. Bu yeni çalışma ortamının en büyük getirileri şüphesiz uyumluluk
ve dayanıklılık. Bundan böyle yazacağınız ASP.NET kodları IIS ile sorunsuz çalışacak.
Ayrıca ileriye dönük düşünüldüğünde bugün yazacağınız kodlar IIS'nin yeni sürümlerinde
de problem çıkarmayacak.
2. Programlama dili, yazım kuralları
Temelde bir çok farklılık bulunmakta. Bunun en önemli sebebi artık hem Object
Oriented Programming ( Nesne Tabanlı Programlama ) hemde Event Driven (Eylem
Yönelimli ) kullanılıyor olması. Bu konuyu gelecek yazılarımızda ayrıntıları
ile inceleyecek ve artık hepimizin aşina olması gereken Nesne Yönelimli Programlama
konusunu öğreneceğiz.
Peki ASP.Net programlarken hangi dili kullanacağız? Cevap, canınız hangisini
isterse. Çünkü artık ASP ile en güzel günlerini görmüş VBScript adlı melez ve
yarım yamalak dili kullanmak zorunda değilsiniz. Ne demiştik? ASP.NET, .Net
platformunun bir parçası. Yani .Net için kullanabileceğiniz bütün dilleri kullanabilirsiniz.
Bunlardan en önemlileri microsoftun yeni geliştirdiği ve "Java ya nispet
olsun diye çıkardılar abi" şeklinde spekülasyonlar yapılan c#
( si şarp okunur ) ve tüm özellikleri ile birlikte kullanabileceğiniz Visual
Basic.NET . Ancak şunu akıldan çıkarmamak gerekir. Kullanacağınız diller gerçekten
sınırsız. PHP.NET veya Perl.NET gibi üçüncü parti dillerle de programlama yapabilirsiniz.
3. Compile edilerek ( derlenerek ) çalıştırılan kodlar
Haydaaa! .exe ve .dll dosyaları derlenmiyormuydu? Evet! Kesinlikle öyle. Ancak
aslında sizde bir .dll yazıyorsunuz. Yazdığınız kodlar, çalıştırılmadan önce
bir defaya mahsus .NET derleyicisi aracılığı ile MSIL denen ara koda çevriliyor.
Bunun ardından da makine kodu dediğimiz koda dönüştürülüyor, yani .dll haline
getiriliyor. DLL lerin hızları göz önüne alındığında bunun ne çaplı bir performans
artışı sağlayacağını düşünmek için matematik profesörü olmaya gerek yok. Derlenerek
çalışan kodların daha bir çok getirisi var. Hatalarınızı anında görebiliyorsunuz.
Düzeltmeleri yaptıktan sonra kodu tekrar çalıştırdığınızda, eğer gerçekten hata
yoksa derlenen kod hemen ziyaretçilerinize hizmet vermeye başlıyor.
4. c# 'ın getirdikleri
Her ne kadar bu yeni ve müthiş yetenekli dili kullanmak zorunda olmasanızda,
c# .NET ortamının resmi dili haline gelmiş sayılır. İlk defa .NET ile ortaya
çıkmasının bunda etkisi büyük tabi. C# .NET Framework ile geliştirilmiş ve belkide
.NET yapısı için tasarlanmış bir dil. Dolayısıyla .Net'in bütün özelliklerini
barındırıyor ve sonuna kadar kullanabiliyor.Önemli artılarından biride tam manası
ile Nesne yönelimli programlamaya destek vermesi. Yani Nesneye yönelik programlamanın
getirdiği bütün avantajlardan faydalanabiliyorsunuz. Yazım kuralları açısından
Java'ya çok benziyor ancak c++ da andırıyor. Kısacası iki dilin bütün iyi yönlerini
almış. Öğrenmesi çok zor değil gibi gözükmesine rağmen, eski ASP cilerin Visual
Basic.Net üzerinde yoğunlaşacağını tahmin ediyorum.
5. Devasa kütüphane desteği
Microsoft'un uzun uğraşlar neticesinde toparladığı ve yıllardır geliştirilerek
Windows ortamında program yazanların beğenerek kullandığı sınıf kütüphaneleri
(Base Class Library-BCL) bundan böyle ASP.Net programcılarının da hizmetinde.
Bu kütüphanelerin yaptığı kısaca şu, işletim sisteminin alt yapısı ile gelen
bir takım öğelerin kullanılabilir hale gelmesini sağlıyor. Yani bir mail göndermek
veya dosya upload etmek için üçüncü şahısların componentlerine ihtiyacımız olmayak.
6. Sunucu kontrolleri (Server Controls)
ASP.NET, sunucu tarafında olay güdümlü olarak programlanabilen, sunum (presentation)
ile mantığı (logic) başarıyla ayıran bir bileşen seti ve mimarisi sunuyor. Bu
bileşenler, koddan bağımsız olarak sayfa üzerine yerleştirilebiliyor ve ayrı
dosyalarda bu kontroller için programlama kodları yazılabiliyor. Biraz garip
geldi değilmi, ilerleyen yazılarda detaylarına indikçe anlaşılır hale gelecek,
meraklanmayın.
7. XML ile kolay konfigurasyon
Server konfigurasyonu için IIS yönetim arabirimi ile uğraşmanıza gerek kalmadı.
Basit bir XML dosyası ile server konfigurasyonunu yapabiliyorsunuz.
Kısacası .NET platformunun saygıdeğer üyesi ASP.NET geldiği uzun ve tecrübelerle
dolu yoldan eli boş gelmiyor. Bize bugüne kadar hayal bile edemeyeceğimiz bir
çok yenilik ve imkan sunuyor. Umarım biz türk programcıları arasında hakettiği
ilgiyi görür ve daha iyiye ulaşma çabamızda böyle güzel bir teknolojiden gerektiği
gibi yararlanabiliriz.
Şunun altını özellikle çizmemiz lazım. .NET ve ASP.NET, ASP'nin devamı niteliğinde
değil. O bambaşka bir teknoloji. Sanırım yüzyılın buluşlarından desek abartmış
olmayız. Geleceğin trendini yakalamak adına en kısa sürede öğrenmek ve ciddi
uygulamalar geliştirmekte ASP.NET 'i kullanmak zorundayız.
Bir dahaki yazımızda kafanızda oluşmaya başladığını düşündüğüm bir çok soruya
cevap verecek açıklamalar bulacaksınız. Ayrıca .Net Framework ve uygulama geliştirme
aracımız olan visual studio NET 'in kurulumunu ele alacağız...
Sevgilerle...