2009-03-03 15 views
2

ASP.NET sayfalarına özellikler eklemekten kaçmaktan vazgeçtim. Bana hiç iyi bir fikir gibi gelmedi. Ancak son zamanlarda birkaç örnek uygulamada uygulanan uygulamayı gördüm. Sayfamıza özel mülkler ekleme isteğim yanlış mıydı yoksa bu "duruma bağlı" durum mu?ASP.NET Sayfa Özellikleri İyi Fikir veya Kötü Fikir

cevap

3

Hatırlamanız gereken özelliklerle ilgili olan şey, tüm sayfa yaşam döngüsü için devam etmeleridir. Bu da onları çok faydalı kılar (yaşam döngüsünün başlarında bir özellik belirleyin ve daha sonra geçerliliğini korur) ve tehlikeli (bir özelliğe ayarlanmadan önce erişilmesi veya başka bir yaşam döngüsü aşamasının sizin üzerinde değiştirilmesinin fark edilmesi).

Büyük etki için kullanılan özellikleri gördüğüm bir alan, sorgu dizesini ve Session'ı sarmak için iyi ve güvenli bir yoldur. Beklenen sorgu dizenizin veya oturum değerlerinin her birinin özelliklerini tanımlayın ve gelecekteki geliştiricilerin beklenen ve kullanılabilir olanları çok net hale gelir.

Başka bir yaygın kullanım ViewState öğelerini sarmaktır. Çoğu örnekte ViewState'in açık olduğunu varsaydığı için bunların örneklerde görüldüğü yer olduğunu umuyorum.

1

Neden bu kadar kötü olur? Özellikler gerçekten sadece yöntemler ve eminim her zaman sayfaya metotlar eklediğinizden eminim.

5

Sunucu tarafı sayfasında kodun temizlenmesi için özelliklerin kullanılmasında yanlış bir şey göremiyorum. Session State veya View State bilgilerine erişmek için özellikleri kullanmayı seviyorum, bu şekilde verilere nasıl erişeceğimi değiştirirsem, sadece bir yer değiştiririm.

2

Asp.net, kurucu tabanlı enjeksiyonları desteklemez. Bu, asp.net özelliklerini kullanmak istediğiniz açık bir senaryodur (özellik tabanlı enjeksiyonları kullanabileceğiniz gibi).

Güncelleme 1: Burada da benzer bir senaryo ama kontrolleri içindir - How to use Dependency Injection with ASP.NET Web Forms

Güncelleme 2: görünüm durumu veya sorgu dizesi sarmak için bunları kullanmak ok. Yine de, codebehind'i kötüye kullanmak istemediğiniz gibi, dikkatli bir şekilde bakardım. Codebehind'deki sarma özelliklerinden birini bol miktarda kullandığınızı görüyorsanız, muhtemelen codebehind'de çok fazla kod vardır. Bu şekilde bakıldığında, bu özelliklerle ilişkilendirilebilecek tekrarlı döküm/ayrıştırmadan kaçınmanın yan etkisi vardır.

0

Session, Viewstate ve querystring öğelerine erişmek için asp.net sayfalarındaki özellikleri kullanıyorum. Sadece daha az kod yazmanızı ve okunabilirliği artırmanızı sağlar.

2

Sayfadaki özelliklerle ilgili yanlış bir şey yoktur. Bir sayfa nadiren harici kod tarafından bir nesne olarak manipüle edildiğinden tuhaf görülebilir ancak yapılabilir. Bunu göz önünde bulundurarak, bir sayfadaki özelliklerin çoğu özel olarak işaretlenebilir. Her şey gibi, istisnalar vardır. sayfamda özellikleri için var Ben en büyük kullanımlarından

biri ViewState değeri sarma zaman: Bu durumda

protected string TaskName 
{ 
    get { return (string)ViewState["TaskName"] ?? string.Empty; } 
    set { ViewState["TaskName"] = value; } 
} 

, bana bu bilgilere erişmek için izin verir "korumalı" olarak mülk işaretlediğiniz İşaretlemem.

İlgili konular