Каковы преимущества атрибутивного программирования? - PullRequest
5 голосов
/ 02 сентября 2010

Я работаю со службами RIA WCF и натолкнулся на пример использования атрибутов:

[StringLength(10, ErrorMessage="Too long")]
public string FirstName { get; set; }
...

Хотя атрибуты не ограничены RIA WCF, это напомнило мне вопрос: почему декларативный или атрибутоснованное на программировании приложение подходит для кодирования процедуры проверки «по старинке»?

Спасибо,

Скотт

Ответы [ 4 ]

6 голосов
/ 02 сентября 2010

Поскольку ограничение можно обнаружить без необходимости выполнения кода. С помощью отражения вы можете получить доступ к этим ограничениям.

1 голос
/ 02 сентября 2010

Самым большим преимуществом является возможность повторного использования. Замечательно иметь возможность установить его один раз (Name, Required, Regex и т. Д.), А затем использовать его в приложении WCF, а также в приложении MVC, и все остается согласованным.

0 голосов
/ 02 сентября 2010

При использовании атрибутов следует учитывать одну вещь: поскольку их можно обнаружить, вы можете использовать их для добавления проверки на стороне клиента на бизнес-уровне.

0 голосов
/ 02 сентября 2010

Дело не в том, что программирование на основе атрибутов превосходит валидацию по старинке.В общем:

  1. Это выглядит чище (по крайней мере, для меня)
  2. Немного проще шлепнуть атрибут поверх метода / свойства, чем найти место для проверки кода

В противном случае между двумя подходами нет большой разницы.

...