Ana sayfa » Asp.Net ve Kalıtım
Etiketler: ASp.NETKategoriler: .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.
Tolga Güler demiş ki:
kodlar wp düzenleyecisinin azizliğine uğradı. Live Writer dan ancak bu kadar.