Каждый раз, когда я начинаю работать над новым веб-приложением ASP.NET MVC, я не уверен, использовать ли проверку DataAnnotations
. Что-то кажется неправильным.
Например, у меня есть UserService
, которому передается CreateUserModel
из действия Create
для AccountController
. Чтобы гарантировать, что пользователь всегда указывает имя, я установил для свойства модели Name
атрибут [Required]
. Теперь я уверен, что связыватель модели никогда не предоставит мне CreateUserModel
, если у него нет имени.
Моя проблема в том, что моя UserService
должна быть компонент моей системы многоразового использования, он не может полагаться на тот факт, что указанный выше уровень предоставляет действительные данные, и, безусловно, должен также проверять эти данные. Необходимость в этом подчеркивается далее, если учесть, что вы, возможно, захотите написать веб-службу, которая полностью повторно использует UserService
(и не будет иметь привязки модели для выполнения всей проверки аннотации данных для нее).
Итак, мой вопрос: Что лучше всего подходит для этой ситуации? Подтвердить с помощью аннотаций данных и повторить эту проверку в службах? Проверять только в сервисах и выкидывать исключения? Комбинация того и другого?
Надеюсь, мой вопрос не слишком субъективен, я в основном пытаюсь прийти к единому мнению о том, что перенос проверки на аннотации данных в конечном итоге укусит меня.