ASP.NET İmla Kuralları – 2
İmlâ kurallarına devam ediyoruz. Bu konudaki ilk yazımızda
ASP.NET dosyalarında, sunucu tarafında icra edilecek kodları sayfa
içerisinde hangi bölgelere yazabileceğimizi ve bunların getireceği
sonuçları işlemiştik. Son olarak da dil-bağımsız sunucu taraflı yorum
bloklarına değinmiştik. Şimdi biraz daha ilerleyelim ve geriye (yani
ASP'ye) ket vurarak diğer ASP.NET'deki sözdizimi yeniliklerine göz
atalım.
Önce tanımlayalım. Yönergeler, bir web formu (.aspx) veya bir kullanıcı kontrolü (.ascx)
içerisine yazılan, derleyiciye bir takım belirli bildirimlerin
yapıldığı kod parçalarıdır. ASP'ye âşina olanlar, sayfa içerisinde
kullanılacak sunucu taraflı script dilini belirtmek için kullanılan
Page yönergesini hatırlayacaklardır. ASP.NET'de yönergeler ASP'den tanıdığımız söz dizimiyle yazılıyorlar.
Hemen bir örnek:
|
<%@ Page Language="VB" Debug="True" EnableViewState="False" %>
|
Evet, aynen ASP'de olduğu gibi,
<%@ ile başlayıp
%> ile biten bir alan içerisinde, yönerge adı ile başlayarak (bu örnekte
Page), derleyiciye bir şeyler anlatmaya
çalışıyoruz. Tüm yönergeleri bu yapıda yazıyoruz. Bir sayfada, elbette
birden fazla yönerge kullanmamız gereken durumlar olacak. O zaman
farklı yönerge blokları açmamız gerekir:
|
<%@ Page Language="VB" Debug="True" EnableViewState="False" %>
<%@ Imports Namespace="System.Data" %> <%@ Register Tagprefix="YazilimFirmam" Tagname="MenuKontrolum" Src="Menu.ascx" %> |
sapmamak için örneklediğimiz yönergelerin detaylı anlatımlarına
girmiyoruz. Farklı bir makalede, yönergeleri tek tek ele alacağız.
Yönergelerin yazım stilini kavradıktan sonra aklımıza
yönergeleri sayfa içerisinde nereye yazacağımız sorusu gelebilir.
ASP.NET, bu konuda bizi kısıtlamıyor. Yönergeler, sayfanın istenilen noktasında yazılabilir. Ama yerleşik yazım disiplini ve okunabilirlik açısından sayfaların en üstüne konması daha uygun.
Doğal olarak yönergelerin amacına göre çeşitli kurallar da mevcut. Mesela bir web formu içinde (.aspx) sadece tek
Page yönergeniz olabilir. Aynı şekilde bir kullanıcı kontrolü (.ascx) içinde de sadece tek
Control yönergesine izin var.
Page direktifi web formuna özgü,
Control direktifi kullanıcı kontrolüne
özgüdür. Bundan dolayı bir .aspx içinde Control direktifini
kullanamazsınız. Bunun yanında, yönerge içerisinde bir niteliğe
verdiğiniz değer de o niteliğe uygun olmalıdır. Mesela
Page yönergesinde,
true veya
false değer kabul eden
Debug niteliğine bu ikisinden farklı
bir değer verirseniz, derleme aşamasında hata alırsınız. vs.. Bu gibi
detayları, yönergeleri işleyeceğimiz makalemizde anlatacağız.
Yönergeler, ASP.NET sayfalarında artık önemli bir yere sahip. ASP.NET
derleyicisi, işinde yönergelere öncelik veriyor. Biz de yönergeleri
öğrenmeye öncelik versek iyi olmaz mı?
Bu da eski bir yönerge aslında. Çok öncelerden.. "shtml" den gelen, farklı dosyaları dahil etme yönergesinden bahsediyoruz:
|
veya.. |
Bu ifadelerle, sunucu üzerinde bulunan başka bir düz yazı dosyasını
sayfamıza dahil edebiliyoruz. Böylece çok noktada kullanmamız gereken
kodları bir kere yazmış oluyoruz. Bu ifadeler, sayfadaki sunucu taraflı
kodlardan daha önce işletiliyorlar. Dosyanın yolunu ister fiziksel
olarak, ister sanal olarak belirtebiliyoruz. Her iki yöntemde de,
belirtilen patika (path), kesin (absolute, örnek: c:menu.inc) veya içinde bulunan sayfaya göre bağıl (relative, örnek: ../../menu.inc) olabilir.
ASP'yi bu kapsama ifadeleri olmadan düşünemiyoruz. Ama artık nankörlük
etmenin zamanı geldi de geçiyor bile. Çünkü ASP.NET, bu kapsama
bloklarının yerine bize daha güçlü ve yetenekli alternatifler sunuyor.
En basitinden her sayfada kullanacağımız site içi dolaşım menüsünü, bir
kullanıcı kontrolü biçiminde oluşturup, bir çok ek özellik verebiliriz.
Kullanıcı kontrollerini .ascx
uzantılı dosyalarda saklıyoruz ve istediğimiz .aspx sayfasında, veya
yine bir .ascx sayfasında kullanabiliyoruz. Çok sık kullanacağımız
fonksiyonları topladığımız bir kütüphaneyi de, Imports yönergesiyle
kullanabilme olanağımız var..
Neticede, ASP.NET, kapsama ifadelerinin pabucunu dama atmış ve
sunduğu alternatiflerle çok modern ve profesyonel bir anlayış getirmiş.
Biz yine de, kapsama ifadelerinin imlâsını bir hatırlayalım dedik.
Kanımca yazım kurallarını iyi özümseyen bir programcı, derleme
aşamasında alacağı hataları en aza indirecektir. Kaldı ki, ASP.NET,
çalışma prensibinden dolayı, programcıyı daha titiz ve düzenli kod
yazımına doğru zorlamaktadır. Bu konuyu ciddiye aldığımızdan, seriye
devam edeceğiz.
İyi çalışmalar.