Модель в MVVM, это могут быть классы, сгенерированные Linq2SQL или EF, или это должны быть доменные классы? - PullRequest
2 голосов
/ 03 апреля 2011

В MVVM может ли бит модели быть моделью предметной области или же это могут быть классы, сгенерированные Linq2SQL или EF?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Да и нет!Бизнес-уровень и уровень данных вашего приложения будут составлять МОДЕЛЬ в отношении шаблона MVVM.

Если ваше приложение отличается от недолговечного и простого, я бы реализовал бит модели MVVM в виде двух отдельных уровней;бизнес-уровень с моделью предметной области и соответствующим уровнем доступа к данным.

Как большой поклонник DDD (Domain Driven Design), я бы рекомендовал модель предметной области, которая настолько близка к POCO (простые старые объекты CLR),ты можешь управлять.Используйте шаблон Repository, чтобы изолировать эти классы (которые фактически должны быть не чем иным, как бизнес-логикой приложения) от основных моментов доступа к данным.На уровне доступа к данным подключите весь код EF или LINQ-to-SQL.

Код доступа к данным на уровне доступа к данным, бизнес-логика на собственном уровне.Они разные и заслуживают своих собственных целевых прикладных уровней ИМХО.

1 голос
/ 03 апреля 2011

Если я правильно понимаю MVVM, смысл паттерна в том, что ViewModel действует как презентатор между моделью и представлением; он берет модель и помещает ее / адаптирует к форме, понятной представлению. Так что в этом кадре ваша модель может быть чем угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...