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
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.
Neden bu kadar kötü olur? Özellikler gerçekten sadece yöntemler ve eminim her zaman sayfaya metotlar eklediğinizden eminim.
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.
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.
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.
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.
- 1. Multivalued Alanlar İyi Bir Fikir mi?
- 2. ASP.NET MVC'yi E-posta Şablonu Olarak Kullan Motor: İyi Fikir?
- 3. MacGorts ile RubyGems iyi bir fikir mi?
- 4. Raylar: kötü bir fikir: el ile bir oturum çerezi oluşturma
- 5. PHP çıktı arabellekleme - kötü bir fikir gibi geliyor, değil mi?
- 6. Ağ geri bildirimi için zayıf Referans kötü bir fikir mi?
- 7. Javascript Ad Alanı'nı Pencereye Ayarla: Kötü Fikir? Ya da Brilliant?
- 8. IntelliJ Fikir, kaynak
- 9. C# action.BeginInvoke (action.EndInvoke, null) iyi bir fikir mi?
- 10. Cakephp 3: Varlık gelen Tablo fonksiyonları Çağrı kötü ya da iyi bir fikir mi?
- 11. raylar + ataç: Genel "Ek" modeli iyi bir fikir midir?
- 12. Statik sınıf AppContext kullanmak iyi bir fikir mi?
- 13. intellij fikir modülü varsayılan "user.dir"
- 14. Dereceli fikir eklentisini nerede uygularım?
- 15. Mysql datetime alanını dizine eklemek iyi bir fikir mi?
- 16. Arama yapıyor - [NSRunLoop runUntilDate:] iyi bir fikir mi?
- 17. RequestAnimationFrame'i bir geridönüş işlevi içinde kullanmak iyi bir fikir midir?
- 18. Bir GUID'den tire kaldırmak iyi bir fikir midir?
- 19. BootFaces ve PrimeFAces'i birlikte kullanmak iyi bir fikir mi?
- 20. Milyarlarca görüntüyü Veritabanına kaydetmenin iyi bir fikir olduğunu mu düşünüyorsunuz?
- 21. foo.foo: Tablo sütununa tablo adıyla aynı adı vermek kötü bir fikir mi?
- 22. bir yedek anahtar ifadesi olarak yeni Dinamik Kelime kullanmak kötü bir fikir mi?
- 23. Bir veritabanında javascript ve css saklamak için kötü bir fikir mi?
- 24. Not intelliJ fikrinde bağımlılıklar indirilmiyor Grad fikir
- 25. Fikir Live Template Günlük Args Kodları
- 26. IntelliJ Fikir: Devre Dışı Otomatik Birleştirme
- 27. Bu bash deyimindeki fikir nedir (command || true)?
- 28. Kuyrukta yöntem çağrıları - herhangi bir fikir nasıl?
- 29. Sırasız Liste Hizalama - benim fikir sonunda Side
- 30. intellij fikir eklentisi projesinde gradle nasıl kullanılır?