Makale Özeti

ASP.NETin temel yeniliklerinden birine göz atıyoruz

Makale


ASP.NET ile Tekrar kullanılabilir Kullanıcı Kontrolleri Geliştirme

Dinamik içerik sunan sayfalar internette gereksinim haline geldiğinde aynı içeriği içeren sayfaların olduğu sayfalarda oluyordu. Diğer programla dillerinde kullanmaya alışık olduğumuz include yani dahil etme methodunu Active Server Pages içerisinden de kullanarak bunu çözmüştük. Şimdi ise elimizde teknoloji olarak ASP.NET var, peki ASP.NET bize ne gibi yeniden kullanılabilir içerik sağlayan sayfalar sunuyor; işte bunun adı User Controls yani Kullanıcı Kontrolleri.
Daha önceki makalelerimde Web Formlarından bahsetmiştim. Hatırlarsanız sunucu kontrolleri adlı bir kavramla karşılaşmıştık ve temel HTML kontrolleri dahil birçok kontrolü sunucu tarafında çalıştırmayı sağlamıştık. Eğer biz bu işi sık sık yapıyorsak, yani birbirini tekrarlayan, yeniden kullanma ihtiyacı hissettiğimiz web form’larına ihtiyaç duyuyorsak Kullanıcı Kontrollerini kullanmalıyız.
Kullanıcı kontrolleri System.Web.UI.Control’den üretilmiş olan System.Web.UI.UserControl namespace’indedirler. Kullanıcı Kontrollerini en kolay ayırt edebileceğimiz özellikleri uzantılarıdır. Kullanıcı kontrolleri ascx uzantısı ile kaydedilirler. Uzantının bizim web formumuzdan yani aspx uzantılı dosyamızdan farklı bir uzantı ile kaydedilmesindeki temel amaç, ascx uzantılı dosyaların tek başlarına kullanılamayacağını hatırlatmaktır. Kullanıcı kontrolleri ancak bir web formu içerisine dahil edilebilmektedir. İçeriğinde bildiğimiz Html kontrolleri yer almaz, çok sık kullandığımız bir takım programatik öğeleri ve sunucu kontrollerini kullanıcı kontrolü olarak kaydedebiliriz.
İsterseniz hemen örneklere geçelim ve sunucu kontrollerinin nasıl bir içeriğe sahip olduğunu görelim:

<script language=”VB” runat=”server”>
Public Property kullaniciadi as (String)
  Get
    Return kullanici.text
  End get
  Set
    Kullanici.test = value
  End set
End property
Public Property sifresi() as (String)
  Get
    Return sifre.text
  End get
  Set
    Sifre.text = value
  End set
End property
</script>

Sifre ve kullanici adli iki sunucu kontrolü olan tabloyu yaratalım şimdi de;

<table>
<tr>
<td><b>Kullanıcı Adı: </b></td>
<td><ASP:TextBox id="kullanici" runat="server"/></td>
</tr>
<tr>
<td><b>Şifre: </b></td>
<td><ASP:TextBox id="sifre" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Gönder" runat="server"/></td>
</tr>
</table>

Yukarıdaki örnek bir kullanıcı giriş ekranıdır. Bu tip sayfalar bir web projesinde sıkça kullanılır. Bir kullanıcı birden fazla sayfadan giriş yapabilmektedir. Kullanıcı kontrolleri de bize bu işi kolayla yapmamıza yarar.
Son olarak bunu sayfalarımızda nasıl kullanacağımızı inceleyelim. Ascx uzantılı bu dosyayı Register ile program kodudan web formumuza tanıtmamız gerekir. Register bizden üç farklı bilgi ister; tagprefix: kullanıcı kontrolüne prefix verdiğimiz yerdir, sunucu kontrolü elemanın ilk kısmını oluşturacaktır; tagname: kullanıcı kontrolüne verdiğimiz ismi simgeler; src: kullanıcı kontrolünün bulunduğu yeri gösterir. Hemen örneğimize bakalım:

<%@Register Tagprefix=”cankaya” TagName=”giris_sayfasi” src=”.\kontroller\giris.ascx”%>

Yaratmış olduğumuz kontrolü sayfa içerisinde nasıl kullanacağımıza da bakacak olursak;

<html>
<body>
<form runat=server>
<cankaya:giris_sayfasi id=”kullanici_girisi” runat=”server”>
</form>
<body>
</html>

Yeni makalelerde görüşmek dileklerimle...
Mehmet Nuri ÇANKAYA
nuri.cankaya@aspnedir.com