Yorumlarınızla yaşıyoruz.

Ana sayfa » Asp.Net ve Kalıtım

Etiketler: ASp.NET
Kategoriler: .Net/C#

Yazının amacı, nesne yönelimli programlamanın temel özelliklerinden birisi olan kalıtımı açıklamaktan çok, az çok bilgi sahibi olduğunuz kalıtım konusunun Asp.Net sayfalarında nasıl, ne amaçla kullanılabileceğini göstermek olacaktır.

Bu güne kadar hiçbir Asp.Net sayfamda kalıtım kullanmadım, ihtiyacım da olmaz diyorsanız yanılıyorsunuz. Bakınız ilk “Hello World” uyuglamanız:

public partial class _Default : System.Web.UI.Page

Görüldüğü üzere web sayfanız, siz isteseniz de istemeseniz de, System.Web.UI.Page den türemektedir. Sayfanızı “sayfa” yapan da budur. Asp.Net uygulamanıza yeni bir sınıf ekleyip bu sınıfı, System.Web.UI.Page den türetebilirsiniz.

Yeni sınıf ekleyebilmek için solution explorer penceresinde, web sitenize sağ tıklayıp, açılan menüden add new item seçeneğini tıklayın. Açılan pencereden (visual studio installed templates) Class seçeneğini işaretleyip ilgili ismi (AnaSayfa) vererek Add düğmesine tıklayın. Vs.Net web sitenizin bulunduğu dizine App_Code isimli bir dizin açacak ve sınıfınızı bu dizine AnaSayfa.cs olarak ekleyecektir.

public class AnaSayfa bildirimini; public class AnaSayfa : System.Web.UI.Page

olarak değiştirirseniz. Temelde bir asp.net sayfası olan, fakat vs.net’de dizayn arayüzü olmayan bir sayfa (sınıf) elde etmiş olursunuz.

Peki bu size ne kazandıracak? Konunun bu kısmı aslında temel kalıtım ilkeleri ile ilgilidir. AnaSayfa sınıfınıza eklediğiniz her üye, (özellikler, methodlar, enumlar vs). Bu sınıftan (sayfadan) türeyen her sınıfın (sayfanın) doğal elemanları olacaktır.

Örneğin AnaSayfa sınıfı içerisinde

public SqlConnection Connection…;

tanımlaması yapar ve. Onload methodunun yeniden yazarsanız:

Türeyen sınıfınızın

protected override void OnLoad(EventArgs e) { Connection.Open(); base.OnLoad(e); }

public class TureyenSayfa:AnaSayfa

base.OnLoad() methodundan sonra çalışan her yerinden ulaşabileceğiniz açık bir bağlantı elde etmiş olur, bağlantı ile ilgili kodlamaları tekrar tekrar yapmaktan kurtulabilirsiniz.

public class TureyenSayfa:AnaSayfa
{

protected override void OnLoad(EventArgs e)

{
//Connection.State = ConnectionState.Closed
base.OnLoad(e);
//Connection.State = ConnectionState.Open;

}

}

ilk olarak TureyenSayfa nızın OnLoad Methodu, daha sonra AnaSayfa nızın onload methodu çalışır.

public class TureyenSayfa:AnaSayfa

{

protected override void OnLoad(EventArgs e)

{

//base.OnLoad(e) bu durumda AnaSayfa nın OnLoad ı çalışmaz

}

}

Örneğimizi daha eğlenceli bir uygulamaya taşırsak.

public class GuvenliSayfa:AnaSayfa

{

protected override void OnLoad(EventArgs e) {

base.OnLoad(e);�
if (this.currentUser == null)�
Response.Redirect(“uyegirisigerekli.aspx”);

}

}

Projenize ekleyip, GuvenliSayfa dan türettiğiniz her sayfa için kullanıcı girişi yapılması zorunlu hale gelir.

 

« Sys is undefined
ASP.NET ve Session Kipleri »

Alakalı (olabilecek) yazılar

Alakasız (yüksek ihtimal) yazılar


Konuyla ilgili bir yorum var...

yorumları takip (rss) et

(bu renkli resimlerden bende istiyorum)

  1. 26 Mart 2008 / 23:15,
    Tolga Güler demiş ki:

    kodlar wp düzenleyecisinin azizliğine uğradı. Live Writer dan ancak bu kadar.




Sen de yorum yazabilirsin!