Свободная проверка, Domain и ViewModels - PullRequest
4 голосов
/ 20 июля 2011

Я занимаюсь разработкой веб-приложения с концепциями asp.net mvc, nhibernate и ddd.

Я разработал валидации с помощью Fluent Validation для классов моего домена, и они отлично работают.Что ж, теперь мне нужен ViewModel для редактирования сущности в View, так что мой вопрос: Нужно ли создавать другой класс проверки для проверки моей модели представления?Или что я должен сделать, чтобы обойти эту ситуацию?

Я спрашиваю это, потому что я не хочу нарушать СУХОЙ (не повторяйся) концепт.

Спасибо!

1 Ответ

6 голосов
/ 20 июля 2011

Проверка на уровне домена и проверка View-Model совершенно разные imho (хотя они могут иметь много совпадений).

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

Было бы вполне нормальным для нескольких клиентских приложений использовать одни и те же контроллеры домена (например, через WCF), но иметь другую прикладную логику проверки.

Если вы используете DataAnnotations в своей модели представления, вы можете получить клиентскую проверку javascript бесплатно, поэтому, как правило, у меня всегда есть отдельная ViewModel из моих объектов Domain, даже если это отображение 1: 1 - я просто используйте AutoMapper для перевода между ними. В дополнение к получению проверки на стороне клиента, это также уменьшает беспорядок в проверке домена.

...