DataAnnotations или проверить вручную в службах?

Каждый раз, когда я начинаю работать над новым веб-приложением ASP.NET MVC, я не уверен, использовать ли проверку DataAnnotations . Что-то кажется неправильным.

Например, у меня есть UserService , которому передается CreateUserModel из действия Create для AccountController . Чтобы гарантировать, что пользователь всегда указывает имя, я установил для свойства модели Name атрибут [Required] . Теперь я уверен, что связыватель модели никогда не предоставит мне CreateUserModel , если у него нет имени.

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

Итак, мой вопрос: Что лучше всего подходит для этой ситуации? Подтвердить с помощью аннотаций данных и повторить эту проверку в службах? Проверять только в сервисах и выкидывать исключения? Комбинация того и другого?

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

9
задан Martin 19 September 2010 в 21:39
поделиться