Свойства страницы ASP.NET Хорошая идея или плохая идея - PullRequest
2 голосов
/ 03 марта 2009

Я склонен избегать добавления свойств на мои страницы ASP.NET. Это никогда не казалось мне отличной идеей. Однако недавно я видел практику, использованную в нескольких типовых приложениях. Неужели мое нежелание добавлять пользовательские свойства на страницу было необоснованным или это «зависит от ситуации»?

Ответы [ 6 ]

5 голосов
/ 03 марта 2009

Я не вижу ничего плохого в использовании свойств для очистки кода на стороне сервера. Мне нравится использовать свойства для доступа к информации о состоянии сеанса или состоянии просмотра. Таким образом, если я изменяю способ доступа к данным, я меняю только одно место.

3 голосов
/ 03 марта 2009

Что нужно помнить о свойствах, так это то, что они сохраняются в течение всего жизненного цикла страницы. Это делает их очень полезными (установить свойство на раннем этапе жизненного цикла, но оно все еще действует позже) и опасными (получить доступ к свойству до его установки легко или не понять, что другой этап жизненного цикла изменил его для вас).

Одна из областей, в которых я видел свойства, которые используются для достижения максимального эффекта, - это хороший безопасный для типов способ обернуть строку запроса и сессию. Определите свойства для каждой ожидаемой строки запроса или значения сеанса, и будущим разработчикам станет ясно, что ожидается и доступно.

Другое распространенное использование - это обернуть элементы ViewState. Я ожидаю, что именно здесь вы видите их в сэмплах, поскольку большинство сэмплов предполагают, что ViewState включен.

2 голосов
/ 03 марта 2009

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

Одно из самых больших применений, которые я использую для свойств на моей странице, - при переносе значения ViewState:

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

В этом случае я пометил свойство как «защищенное», что позволяет мне получить к нему доступ из моей разметки.

2 голосов
/ 03 марта 2009

Asp.net не поддерживает внедрение на основе конструктора. Это явный сценарий, в котором вы хотите использовать свойства asp.net (как вы можете использовать внедрение на основе свойств).

Обновление 1: здесь аналогичный сценарий, но для элементов управления - Как использовать внедрение зависимостей с веб-формами ASP.NET

Обновление 2: Можно использовать их для переноса состояния представления или строки запроса. Я бы внимательно посмотрел на это, поскольку вы не хотите злоупотреблять кодексом. Если вы видите, что используете одно из свойств обёртывания в коде много раз, возможно, в коде слишком много кода. Глядя на это таким образом, можно избежать повторного приведения / разбора, который может быть связан с этими свойствами.

1 голос
/ 03 марта 2009

С чего бы это плохо? Свойства - это всего лишь методы, и я уверен, что вы постоянно добавляете методы на страницу.

0 голосов
/ 03 марта 2009

Я использую свойства на своих страницах asp.net для доступа к Session, Viewstate и querystring. Это просто заставляет вас писать меньше кода и повышает читабельность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...