Я использую ASP.NET MVC с Платформой Объекта ПОСТЕПЕННО классы и платформа FluentValidation. Это работает хорошо, и проверка происходит, как это должно (как будто я использовал DataAnnotations). Я даже получил клиентскую работу проверки. И я довольно доволен им.
Так как это - тестовое приложение, которое я пишу только, чтобы видеть, могу ли я получить новое технологическое сотрудничество (и изучить их по пути), я теперь готов экспериментировать с использованием ViewModels вместо того, чтобы просто передать фактическую Модель представлению. Я - планирование использования чего-то как AutoMapper в моем сервисе, чтобы сделать отображение назад и вперед от Модели до ViewModel, но у меня есть вопрос сначала.
Как это собирается влиять на мою проверку? Должны мои классы проверки (записанное использование FluentValidation) быть записанными против ViewModel вместо Модели? Или это должно произойти в обоих местах? Одно из грандиозных предприятий о DataAnnotations (и FluentValidation) было то, что у Вас могла быть проверка в одном месте, которое будет работать "везде". И это выполняет то обещание (главным образом), но если я начинаю использовать ViewModels, разве я не теряю ту способность и имею для возвращения к помещению проверки в двух местах?
Или я просто думаю об этом неправильно?
Или я просто неправильно об этом думаю?
Вероятно;)
Если вы добавите весь код проверки к своим ViewModels, вы просто будете проверять их, а не ваши настоящие модели . Все, что вы действительно меняете, - это то, какие объекты могут перейти в недопустимое состояние.
Прямо сейчас я доволен только проверкой ViewModels и последующей передачей этой информации обратно на реальные уровни Models и DAO. Может ли ваш домен перейти в недопустимое состояние - это спорный вопрос, но пока этот метод отлично работает для меня. Проверка в одном месте и никаких недопустимых объектов в моем хранилище сохраняемости.