Свойства на ASP.NET страница Добра идея или лоша идея

Склонен съм да избягвам добавянето на свойства към моите ASP.NET страници. Никога не ми е изглеждало като страхотна идея. Наскоро обаче видях практиката, използвана в няколко примерни приложения. Неоправдано ли е моето отвращение към добавяне на персонализирани свойства към страница или това е ситуация „зависи“?


person ahsteele    schedule 03.03.2009    source източник


Отговори (6)


Нещото за свойствата, което трябва да запомните, е, че те продължават през целия жизнен цикъл на страницата. Това ги прави едновременно много полезни (задайте свойство в началото на жизнения цикъл и то все още е валидно по-късно) и опасни (лесно е да получите достъп до свойство, преди да е зададено, или да не осъзнаете, че друга фаза на жизнения цикъл го е променила върху вас).

Една област, в която съм виждал свойства, използвани с голям ефект, е като добър безопасен за тип начин за обвиване на низа на заявката и сесията. Дефинирайте свойства за всяка от вашите очаквани стойности на низ на заявка или сесия и ще стане много ясно за бъдещите разработчици какво се очаква и е налично.

Друга често срещана употреба е обвиване на ViewState елементи. Очаквам, че това е мястото, където ги виждате в пробите, тъй като повечето проби са склонни да приемат, че ViewState е включен.

person Joel Coehoorn    schedule 03.03.2009

Не виждам нищо лошо в използването на свойства за почистване на кода на страница от страната на сървъра. Харесва ми да използвам свойства за достъп до информация за състояние на сесия или състояние на изглед, по този начин, ако променя начина, по който осъществявам достъп до данните, променям само едно място.

person JoshBerke    schedule 03.03.2009

Asp.net не поддържа инжектиране, базирано на конструктор. Това е ясен сценарий, при който искате да използвате свойства на asp.net (тъй като можете да използвате инжектиране, базирано на свойства).

Актуализация 1: Ето подобен сценарий, но за контроли - Как да използвате зависимостта Инжектиране с ASP.NET уеб формуляри

Актуализация 2: Добре е да ги използвате за обвиване на viewstate или низ на заявка. Все пак бих го разгледал внимателно, тъй като не искате да злоупотребявате с кода отзад. Ако видите, че използвате едно от свойствата за обвиване на кода зад много пъти, вероятно има твърде много код в кода зад. Гледайки го по този начин, има страничен ефект от избягване на повторно кастинг/анализ, който може да бъде свързан с тези свойства.

person eglasius    schedule 03.03.2009

Няма нищо лошо в свойствата на страницата. Може да изглеждат странни, тъй като страницата рядко се манипулира като обект от външен код, но може да се направи. Като се има предвид това, повечето свойства на страницата могат да бъдат маркирани като частни. Както всички неща, има изключения.

Една от най-големите употреби, които имам за свойства на страницата си, е когато обвивам стойност на ViewState:

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

В този случай съм маркирал свойството като „защитен“, което ми позволява достъп до него от моето маркиране.

person andleer    schedule 03.03.2009

Защо би било лошо? Свойствата са наистина само методи и съм сигурен, че добавяте методи към страницата през цялото време.

person Andrew Hare    schedule 03.03.2009

Използвам свойства на моите asp.net страници за достъп до Session, Viewstate и querystring. Това просто ви кара да пишете по-малко код и увеличава четливостта

person Sergio    schedule 03.03.2009