ASP.NET Sayfalarının Yapısı

Yukarıdaki örnek kod’umuzu açıklamadan önce ASP.NET de sayfa yapısına bakalım. ASP.NET uygulamaları (sayfaları) iki şekilde geliştirilebilir bunlardan birinci yöntem geleneksel asp uygulaması geliştirmekte olduğu gibi, kodlarla (scriptlerle) HTML ve diğer elemanların tek bir sayfada yazılması yöntemidir. İkincisi ise “Kod Behind” yöntemidir. “Kod Behind” ile ilgi detaylar başka bir yazımın konusu olacak. Bu yazımızda ilk yöntemin yapısını inceliyeceğiz. Bu yöntemde sayfa yapısı aşağıdaki gibidir;
Sayfa yapısını açıklamak için yukarıdaki örneğimizi sadece bir satır ilave ederek kullandım.
Şimdi gelin tipik bir asp.net sayfası olan bu örneğimiz baştan inceliyelim:
Sayfa direktifi kısmında, sayfa ile ilgili direktiflerimiz bulunur. Buraya, uygulamamızın gereklerine göre pek çok direktif eklenebilir. Örneğimizde, uygulamamızda (sayfamızda) kullanacağımız programlama dilinin Visual Basic (.NET) olacağı direktifi verilmiştir. Bunun yerine C# veya J# ta yazabilirdik. VB yazdıktan sonra artık, kod bildirim bloğunda VB.NET ifadeler ve yordamları kullanmalıyız.
Burada bir şeye dikkatiniz çekmek istiyorum. Burda bildirdiğimiz dil, asp de olduğu gibi bir script dili değil doğrudan programlama dilinin kendisi. Evet ASP.NET sayfalarında programlama dillerinin kendisini kullanıyoruz. Üstelik kullanacağımız programlama dilini kendimiz seçebiliyoruz. İster C# ister VB istesekte .NET framework’ te çalışabilen onlarca programla dilinden herhangi birini seçebiliyoruz. Her geçen gün sayısı artan bu dillerin listesi aşağıdadır
Visual Basic
C#
JScript
C++
J#
APL
Cobol
Delta Forth .NET compiler Eiffel
Fortran
Haskell
Mercury
Oberon
PERL Python
Salford FTN95
Scheme
SmallScript
Standard ML
TMT Pascal
Component Pascal
Aynı sayfada bu dillerden bir tekini kullanabileceğimiz gibi birden fazlasınıda kullanabiliriz. Bu gerçekten ilginç bir özellik.
Sayfadaki ikinci temel bloğumuz “kod bildirim” bloğudur.
Burada “script” tagları bildirimi ile bu taglar arasında yazacağımız programatik yordamlar bulunur. Bu blokta dikkati çeken husus scriptin sunucuda çalıştırılacağını bildirine runat=”server” ifadesidir. Bu ifade ile, script tagları arasındaki herşey sunucu tarafından çalıştırlır.
Script tagları arasında, yukarıda belirttiğimiz programlama dilinin kurallarına uygun ifade ve yordamlar yazılır. Uygulamamızın çalışan ve program mantığının kurulduğu blok bu bloktur. Başka bir ifade ile sayfamızın “beyin” i burasıdır.
Kod bildirim bloğunun sayfanın başına yazılması gibi bir zorunluluk yoktur. Ancak genel kullanım bu yöndedir.
Diğer bir blok hepimizin bildiği HTM bloğudur. Burada HTML e ait temel ifadeler yazılır.
Kod sunucu bloğu normalde ASP.NET sayfalarında pek kullanılmaz. Daha doğrusu kullanılmasına gerek kalmaz. Ancak ben asp ifadelerinin ASP.NET sayfalarındada kullanılabileceğini örneklemek amacıyla buraya koydum. İyi bir ASP.NET kullanıcısı bu bloğa gerek duymaz.
Son olarak sayfamızıda ASP.NET tarafından Prezantasyon kısmını oluşturan ve tamamıyla sunucunun kontrolünde olan (aynen kod bildirim bloğu gibi) ve web form, HTMLSunucu kontrolleri ve sunucu kontrollerini barındıran blok bulunmaktadır.
Bu blokta sayfada görüntülemek istediğimiz sunucuya ait kontroller bulunur.
Geleneksel HTML prezantasyonununun yanında sunucuda yaptıracağımız veya yaptırttığımız bir takım işlemlerin yine sunucu tarafından görüntülenmesi işlevleri bu blokta sağlanır.
Bu bloktaki ifadeler grafik arabirimi olan sunucuya ait nesnelerdir ve çıktıları HTML dir. Diğer bir ifadeyle kullanıcı, bunlara ait ifadeleri HTML tagları olarak görür.
Örneğimizde kullanılan “label” web for elemanı aslında sunucu tarafında çalışan programatik bir nesnedir ve görevi kendisine atanan metin ifadeleri sayfada göstermektedir.
Sunucu kod bildirim bloğunda, yine kendisinin bir üyesi olan label nesnesinin “text” özelliğini bizim belirttiğimiz mesajı atamaktadır. Sonuç olarak sayfa prezantasyonunda label nesnesinin text özelliği olan çıktı gösterilmektedir. Ancak bu gösterim yapılırken HTML ifadesi olan “span” tagına çevrilerek yapılmaktadır. Burada yine küçük bir bilgi vermeliyim:
Web uygalamsı geliştirmede ister .NET kullanalım ister ASP ister perl bütün çıktılar HTML e veya client taraflı scriptlere uygun olarak üretilmelidir.
.NET de aynen böyle yapıyor, label çıktısını bir HTML ifadesi olarak gönderiyor istemciye. Bunu anlamak için browser’ınızın kaynak kodlarına bakabilirsiniz;
ASP.NET ana teması kod bildirim ve bu blok arasındaki uyumu sağlamada yatar. Buradaki kavramların herbirini ve daha fazlasını ileriki yazı dizilerimizde yakından inceliyeceğiz.
Bu ayki yazımızda epey bir yol kat ettik. Bilgisayarımızı .NET uygulaması geliştirebilir ve çalıştırabilir hale getirdik. .NET Framework’ünün ne olduğunu, kaç çeşit sürümü olduğunu ve nasıl yüklendiğini gördük. IIS kurulumunu inceledik. Basit bir ASP.NET uygulaması geliştirdik ve çalıştırdık. Böylece Bilgisarımızda .NET ile ilgili her şeyin yolunda olduğunu öğrendik.
ASP.NET sayfasının kaç biçimde oluşturulabileceğini gördük ve bunlardan birtanesinin yapısını yakından inceledik.
Önümüzdeki aylarda görüşmek üzere.