Я создаю концептуальное приложение с MVC 3, пытаясь узнать его способы. Я ранее делал некоторые очень тяжелые приложения в WebForms, используя подход n-уровня, обычно состоящий из объектов домена с хранилищами для хранения и сервисами для управления ими перед хранением.
Я пытаюсь примирить, как я делал что-то с помощью "правильного" способа сделать это в MVC, если таковой существует. То, что я сейчас повесил, - это когда использовать ViewModels против того, когда использовать объекты моего домена, которые находятся в целом другом проекте. Проверка выполняется с помощью ViewModels, но по мере того, как я пишу более персонализированную проверку бизнес-логики, кажется, что это слишком большая ответственность за низкую ViewModel, которая была там, чтобы помочь мне перемещать данные, прежде чем официально сохранять их в базе данных через уровень репозитория.
Я также устал от сопоставления данных ViewModel с "официальным" объектом домена, который хранит и извлекает репозиторий, но я чувствую, что не должен очернять мои объекты домена с помощью атрибутов MVC для проверки.
Есть ли у вас какой-либо совет, где можно провести линию между объектами домена и просто ViewModels? Или я усложняю вещи, и мои ViewModels действительно должны быть "официальными" моделями, которые хранит репозиторий?