Преобразование ASP.Net MVC в N-Tier - PullRequest
0 голосов
/ 27 июля 2011

Я недавно начал изучать ASP.Net MVC и его различные функции MVC_3_MUSIC_STORE + КОД .
Это выглядит очень структурированным и простым для понимания.

Я читал о корпоративных приложениях и их распределении по уровням / уровням в разных разделах
(логический / физический)

Мне было интересно (для изучения), как сделать (преобразовать) вышеуказанное MVC_3_MUSIC_STORE в n-уровневое или трехуровневое приложение (поскольку у нас уже есть рабочий пример) , чтобы иметь чистое разделение проблем. У меня нет большого опыта в этом.

Какие изменения потребуются?

Какими будут другие DTO или POCO, которые будут необходимы? В приведенном выше примере используются объекты POCO от контроллера до представлений. Останется ли он тем же самым, предполагая, что сначала используется код EF.

Также мне было интересно, какие изменения потребуются, если WCF Webservice будет представлен как слой доступа к данным. Т.е. вместо получения данных из DAL клиенты будут запрашивать данные в и из веб-службы WCF. Клиент может быть веб-приложением, WinForms или Sliverlight.
( [DAL <-> WCF WS] <-> N КЛИЕНТОВ )

Было бы интересно узнать о различных подходах.

Пример кода будет полезен и / или примеры для того же.

Редактировать 1 - добавлено
Одна из вещей, которые я заметил, была, когда я переместил классы модели из папки Model в новый проект "MYMODEL", мне придется снова добавить ссылку на "System.ComponentModel.DataAnnotations" и "System.Web.Mvc" в новом проекте модели?

Как этого можно избежать? Как перенести эти проверки на бизнес-уровень?

References will be lost if moved to new project

Редактировать 2
Ищете что-то похожее на это Советы новичку о приложениях N-уровня

1 Ответ

2 голосов
/ 27 июля 2011

Обычно единственное изменение, которое потребуется, заключается в том, что вы предоставите реализацию репозитория (уровень DAL), который будет вызывать веб-службу WCF для выборки моделей домена, а не какой-либо EF DataContext, взаимодействующий напрямую с базой данных. Изменение полностью прозрачно для контроллеров и представлений.

...