ASP.NET İmla Kuralları - 1
Kodlama stilinde bir değişiklik var mı? ASP.NET, ASP'den kalma alışkanlıklarımıza ne kadar müsade ediyor? Yazımız, bu sorulara cevap arayacak.
02.06.2002
ASP.NET dosyalarının .aspx uzantısı ile kaydedildiğini biliyoruz. Bu ayrıcalık
ile, eski ASP sayfalarımız, ASP.NET kurulu bir sistem üzerinde sorunsuz çalışabiliyor.
Uzantılar değişti. Peki ya kodlama stilinde bir değişiklik var mı? ASP.NET, ASP'den
kalma alışkanlıklarımıza ne kadar müsade ediyor? Yazımız, bu sorulara cevap arayacak.
ASP'yi bir hatırlayalım
ASP ile uğraşanların çok iyi bildiği <% %> etiketleri vardır. Bu etiketlerle HTML kodlarının arasında, sunucu taraflı script kodu için blok oluşturulur ve sayfa için belirtilmiş script dili ile kodlamalar yazılır. Hemen bu tip bir klasik ASP sayfası örneği verelim:| Örnek bir ASP sayfası | |
|
<% For i=1 To 5 %> <%= i %> <% Next %> |
|
Yukarıdaki kodda <% ve %> etiketleri arasında yazılmış ifadeler, ASP yorumlayıcısı tarafından sunucu taraflı bir talimat olarak değerlendirilecek ve icra edilecektir. Ancak ASP'de sunucu taraflı script yazmanın bir başka yolu daha var: Runat="Server" olarak nitelenmiş bir Script etiketi. Hemen bakalım:
| ASP sayfasında sunucu taraflı Script etiketi | |
|
|
|
ASP.NET Kod Blokları
ASP.NET motoru da, ASP gibi aynı şekilde kısa etiketleri ve script bloklarını kabul ediyor. Yalnız bir takım farklılıklar ve kısıtlamalarla birlikte.-- Kısa etiketler içerisinde Function veya Sub bloğu tanımlayamazsınız. Yani aşağıdaki kullanım hatalıdır:
|
<%
' ASP.NET bu aşağıdaki satırda hata verecektir. Sub Deneme() Response.Write("asda") End Sub %> |
Bu tanımlama ile hata alıyorsak fonksiyonlarımızı nerede tanımlayacağız? Geriye bir tek yol kalıyor o da sunucu taraflı Script etiketi kullanmak. Şöyle:
|
|
-- Sunucu taraflı Script bloğu içerisinde sadece tanımlama yapılabilir. Deklarasyon dışında herhangi bir metod çağrısı veya atama yapılamaz:
|
|
NOT
Tüm kısıtlamaların elbette bir nedeni var: nesneye yönelik mimari; ancak bu yazımızın konusu değil. Merak edenler, yukarıdaki kodlarda yanlış bir kullanım yapıp, çıkan hata sayfasının en alt kısmındaki Show Complete Compilation Source linkine tıklayarak ASP.NET tarafından otomatik oluşturulan, sayfa ile aynı adı taşıyan Class koduna bakabilirler. ASP.NET teknolojisinin getirdiği bir yenilik de işte bu noktada: .aspx dosyasına yazdığınız her şey, yani bir script kodundan tutun da bir boşluk karakterine kadar her şey bir Class bünyesine alınıyor. Ve bu dosya derlenip .dll olarak saklanıyor. Kaynak kod değişene kadar sizin sayfanız .aspx dosyasından değil, bu derlenmiş .dll'den sunuluyor. Bu, sayfanızın artık gerçek bir program gibi çalışması demek.
Tüm kısıtlamaların elbette bir nedeni var: nesneye yönelik mimari; ancak bu yazımızın konusu değil. Merak edenler, yukarıdaki kodlarda yanlış bir kullanım yapıp, çıkan hata sayfasının en alt kısmındaki Show Complete Compilation Source linkine tıklayarak ASP.NET tarafından otomatik oluşturulan, sayfa ile aynı adı taşıyan Class koduna bakabilirler. ASP.NET teknolojisinin getirdiği bir yenilik de işte bu noktada: .aspx dosyasına yazdığınız her şey, yani bir script kodundan tutun da bir boşluk karakterine kadar her şey bir Class bünyesine alınıyor. Ve bu dosya derlenip .dll olarak saklanıyor. Kaynak kod değişene kadar sizin sayfanız .aspx dosyasından değil, bu derlenmiş .dll'den sunuluyor. Bu, sayfanızın artık gerçek bir program gibi çalışması demek.
NOT
Bunun yanında unutmamamız gereken bir kural: sayfa içi global değişkenlerimizi Script bloğunda deklare etmeliyiz. Çünkü kısa etiketler (<% %>) içinde tanımladığımız değişkenler, Script bloğundaki prosedürler tarafından bilinmez. Bunun nedeni, sayfada <% %> arasındaki tüm ifadelerin derleme aşamasında ayrı bir prosedür içerisinde toplanması ve tanımlanan değişkenlerin de bu prosedürün lokal değişkenleri olmasıdır.
Bunun yanında unutmamamız gereken bir kural: sayfa içi global değişkenlerimizi Script bloğunda deklare etmeliyiz. Çünkü kısa etiketler (<% %>) içinde tanımladığımız değişkenler, Script bloğundaki prosedürler tarafından bilinmez. Bunun nedeni, sayfada <% %> arasındaki tüm ifadelerin derleme aşamasında ayrı bir prosedür içerisinde toplanması ve tanımlanan değişkenlerin de bu prosedürün lokal değişkenleri olmasıdır.
Sunucu Taraflı Yorum Bloğu
ASP.NET, sayfa içerisinde kullanılan dilden bağımsız bir yorumlama tekniği getiriyor. Yorumlarımız, elbette sunucu taraflı olduğu için istemciye yansımıyor. Sunucu taraflı yorum bloğunu <%-- ve --%> etiketleri ile oluşturuyoruz. Bu blok, ister çok satırlı, ister tek satırlı kullanılabilir.| Sunucu taraflı yorumlama teknikleri | |
|
<%--
Burdaki kodlar, ASP.NET parser tarafından dikkate alınmayacaktır. (çok satırlı) --%> <%-- Tek satırlı --%> <% ' Dile özgü yorumlama kullanımı da mümkün. ' VB.NET yorum satırı %> ' VB.NET yorum satırı Sub Page_Load() ' VB.NET Yorum Satırı End Sub |
|
Bitirirken...
ASP.NET, köklü ASP'ye göre köklü değişikliklerle geldi. Bu köklü değişikliklerdeb yazım kurallar da nasini aldı. Yazımızda, söz diziminde meydana gelen bu değişim ve yeniliklerin bi kısmına değindik.Yazım kuralları serimiz devam edecek. İyi çalışmalar.
