ASP.NET'e Giriş
Arkadaşlar makaleme başlamadan önce hepinizin içinden "ya önce asp şimdi de asp.net nedir bizim bu Microsoft'tan çektiğimiz" diye iç geçireceğinizi düşünüyorum. Aslına bakarsanız Microsoft'un Windows98'den bu yana yaptığı en büyük atılımlardan biri olarak görüyorum .NET teknolojisini. Burada asıl önemli olan gelişme .NET Framework. Kısaca .NET Framework bize ASPX (ASP.NET te asp sayfalarımızın yeni uzantısı aspx unutmayalım!!!) uygulamalarımızı çalıştırıp sunucu-istemci arasında çok kuvvetli ve dinamik bir bağ oluşturmaktadır.
ASP.NET'le gelen en büyük yeniliklerden birisi de uygulamamızı istediğimiz herhangi bir dille yazabilme serbestliği. Bu dil VB.NET, C#, C++, Pascal, Delphi, Visual C++, Phyton, Java, vs. Uygulama hangi dille yazılırsa yazılsın CLR (Common Language Runtime) özelliği ile ara bir dil olan MSIL'e (Intermediate Language) çevrilmekte ve uygulama sunucuda sadece bir kereye mahsus derlenmektedir. Daha sonraki işlemler için MSIL kodu kullanılmakta, bu da sunucuya mükemmel bir hız ve performans kazandırmaktadır.
Klasik ASP ile uğraşan arkadaşlar bilirler ki, ASP sayfalarımızı yaparken yazdığımız kodlar html tag'lerinin içine gömülü olan kod parçacıklarını kullanırdık. Buna karmaşıklığı sebebiyle "spagetti code" (makarna kod) benzetmesi de yapılmaktaydı. Ancak aspx'te durum bundan oldukça farklı; en önemlisi artık sayfayla ilgili tüm kodlarımızı (veritabanı bağlantısı, üye kontrol kodları, değişken tanımlamaları.. ) artık script tag'leri arasına yazıyor olmamız. Bu bize inanılmaz bir çözüm üretme hızı getiriyor. Bununla birlikte sayfamızda kullandığımız herşey (table, button, image, ..) aspx için birer "nesne". Yazacağımız program kodlarıyla bu nesnelere "event" (olay) tanımlaması yaparak istediğimiz işlemi sayfamızda gerçekleştirebiliriz. Hem de en basit şekilde. Lafı kısa tutmak istiyorum fakat ASP.NET çok geniş bir platform. Konuş konuş bitmez, üzerine ansiklopedi bile yazılabilir. Şimdi ilk denememize geçelim.
Neler Gerekli?
1. Windows2000 Pro., Server; WinXP Professional; Windows Server 2003
2. IIS 5.0 veya üstü
3. Internet Explorer 5.0 veya daha üstü
4. .NET Framework (microsoft.com'dan ücretsiz olarak indirebilirsiniz)
5. Notepad (vefakar ve cefakar notepad!)
6. WebMatrix veya DreamWeaver MX
Arkadaşlar Notepad'de yazabilirsiniz fakat ben ilk zamanlar zıvanadan çıktım. Hata olduğunda hatayı ayıklamak Nnotepad'de çölde kibrit aramak gibi. Bu yüzden size hem bedava hem de kolay indirebileceğiniz bir program olarak WebMatrix (www.asp.net ten tam sürümü indirebilirsiniz) öneriyorum. Çok rahat çalışabilirsiniz. Ben WinXP Pro'da çalışıyorum, sorunsuz bir program. Tabi daha önce .NET Framework'ü yüklemeyi unutmayın; yüklemeden sonra artık wwwroot klasörü içine atacağınız aspx sayfalarınız çalışacaktır. Ancak daha profesyonel bir çalışma içine gireceksek tabi ki Dreamweaver MX bizim için büyük nimet. Sunduğu birçok arayüz ve otomatik kod tamamlama ile bir web programcısının işini oldukça kolaylaştırmakta.
İlk Deneme
Şimdi basit ama temel örneğimize yani sayfamıza yazı yazdırmaya gelelim. Bu basit ama önemli bir örnektir. Örneğinimizde TextBox'tan aldığımız ifadeyi sayfamızda "Merhaba ..(ifade).." şeklinde yazdıracak aspx sayfamızı yapacağız. Şimdi Dreamweaver MX'i açıp, dnm.aspx sayfamızı wwwroot klasörü altında kaydetmek üzere örneğimize başlıyoruz. Söylemem gereken önemli bir şey ise, aspx nesnelerinin sayfa içersinde gözükmeyeceğidir (aspx nesneleri sunucuda çalıştırıldıktan sonra görsel hale gelir..).
Ctrl+N deyip New Document 'tan ASP.NET VB seçeneğini tıklayıp dnm.aspx sayfamızı oluşturuyoruz.
F9 veya WindowTag Inspector 'ı açıyor ve sayfada kullancağımız kodlarımızı buradan yönetiyoruz.Sayfanın en başında page language="vb" yazılı bir ifade göreceksiniz.Bu sayfada yazılan kodların Visual Basic 'e göre derleneceği anlamına gelir.Şimdi de vb kodlarımızı yazacağımız kısma geldi, HTML in üstüne gelip sağ tuş New Tag BeforeNew Tag deyip script tagimizi oluşturuyor ve bu tagimize hemen altta bulunan kutucuklardaki runat kısmına server yazıp kodumuzun sunucuda çalıştırılacağını belirtiyoruz.Bu yaptıklarımızı isterseniz kendiniz kod bölümüne direk de yazabilirsiniz tercih sizin.
Bunu da yaptıktan sonra artık asp.net taglerini kullanmaya geldi, sayfanızın tasarımı nasıl olursa olsun bu nesneleri form runat=server tag'i içersinde kullanmak zorundasınız.Aksi halde hatayla karşılaşırsınız.Bu tagimiz body tag'i içinde herhangi bir yerde olabilir.
Şimdi imlecimiz form taglerininin arasında iken sağ tuş yapıp insert tag diyoruz ve karşımıza Tag Chooser geliyor.Tag Chooser ASP.NET Tags asp:textbox tıklayıp insert ediyoruz.
Bu artık bizim aspnet objemiz artık programatik olarak bu nesnemizi her şekilde kullanabiliriz.Bu nesnemize şimdilik sadece id="textbox1" tanımlaması yapıyoruz.Bunu yapmamız kesinlikle mecburi;çünkü bu nesneyi program kodumuzun görmesi için nesnenin bir id si olması şart.Ayrıca yine runat=server olmasına dikkat edin.
Hemen yanına textbox1 deki veriyi program bloğuna iletecek olay yönlendirmeli butonumuzu tanımlaya geldi.Olay yönlendirmeli diyorum çünkü butonumuz tıklandığında veya mouse üzerinde olduğu zaman gerekli yordamı çalıştıracaktır.Bunun için Tag Chooser'dan asp:button tagini seçiyor id=buton1 , onclick=butona_basildi (Events'in altında) , text=Tıkla özelliklerini giriyoruz.Burada butona basıldığı zaman butona_basildi yordamı çalıştırılarak bu yordamla ilgili gerekli işlemler yapılacaktır.
Şimdi sıra geldi alınan ifadeyi yazdırmaya, yazdırma işlemleri için asp.net'in asp:label tag'i kullanılmaktadır.Yine benzer şekilde asp:label tag'imizi de oluşturup id=label1 olarak giriyoruz.
En son olarak da artık programı çalıştıracak kodu yazmaya geldi.Söylediğimiz gibi kodumuzu script runat=server tagimizin içine yazıyoruz.
Uygulamamızı çalıştırmak için ie açıp http://localhost_name/dnm.aspx yazmamız yeterli olacaktır.Burada hemen dikkati çeken asp.net taglerinin alışagelmiş taglerden farklı olması.Özellikle tagler hem klasik anlamda olarak da hem de .../> olarak da kapatılabilmektedir.Kullanımı tamamen size kalmış.
ASP.NET platformdan bağımsız çalıştığından artık yazdığınız bu uygulama (sayfa) hemen hemen her platformda çalışacaktır.Bunlar Wap Telefonları,Palm'lar, Tablet PC ler,.. vs.
