DataModel против DataContract против ViewModel - PullRequest
1 голос
/ 20 сентября 2011

У меня будет MVC asp.net, который будет подключаться к веб-сервису WCF. Этот сервис определяет соединение с базой данных.

Я заметил, что у меня будет 3 разных класса Модель / данные.

Во-первых, это парень ViewModel из MVC. Я думаю, это может несколько отличаться от того, как данные представлены в БД.

Второй - это DataModels, определяющий, как объекты выглядят в базе данных.

Тогда есть парень DataContract, который определяет, как выглядят объекты, которые передаются через службу WCF. Думаю, это будет либо представление ViewModel, либо DataModel.

Это перебор или неизбежное зло? Должен ли я определить DataContracts как парни из ViewModel, возможно, или даже DataModels.

Как бы вы это сделали и как бы разбили его на сборки?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Должен ли я определить DataContracts как парни из ViewModel, возможно,

Конечно, нет. ViewModels ориентированы на экран (вариант использования).
Но вы можете сделать это в DataService, который используется клиентом SilverLight или jQuery.

или даже DataModels.

Это может иметь смысл. И одна из причин POCO состоит в том, что они могут быть даже одних и тех же классов.

1 голос
/ 20 сентября 2011

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

Элементы wcf будут созданы путем ссылки на службу, поэтому они принадлежат вашей службе wcf. Ваша модель данных должна быть в модели проекта или проекта доступа к данным и вашим ViewModels в приложении MVC, хотя вы могли бы сломаться, то оттуда, если вы хотите, но так как это довольно тесная связь с MVC приложение это спорно.

...