Общий сценарий:
Иерархическая модель предметной области сопоставляется с моделью плоского представления для целей представления.
У меня есть полная настройка проверки в моем домене, и я хотел бы избежать сопоставления модели представления с объектом домена, просто чтобы выяснить, что какое-то свойство недопустимо. Также я не хочу дублировать мою логику проверки в моих моделях представления.
Какие здесь есть хорошие практики?
Я против интерфейсов как для моделей представлений, так и для доменных объектов, поскольку модели представлений обычно строковые и плоские, тогда как объекты домена часто являются вложенными и имеют много других типов данных для свойств.
Я думаю о каком-нибудь подключаемом валидаторе, который будет достаточно умен, чтобы проверять как доменные объекты и просматривать модели, но немного скептически относится к реализации.
Но для простоты я склоняюсь к такому подходу:
Проверка на стороне сервера происходит только в доменной модели; модели представления не проверяются, но данные проверяются на клиенте с помощью JavaScript. Таким образом, в большинстве случаев мои модели представлений будут действительными, а логика проверки останется в одном месте и будет происходить только в модели предметной области. Недостатком этого подхода является то, что проверка asp.net mvc 2 не сможет его поддерживать.
Что ты думаешь?
Спасибо.