Можем ли мы реализовать стиль SOA в архитектуре MVC - PullRequest
4 голосов
/ 06 ноября 2010

Возможно ли иметь макет для веб-архитектуры на основе MVC, где SOA - это архитектурный стиль.Или, перефразируя, могут ли сервисы быть частью M, V, C MVC. Если какие виды сервисов могут быть включены в каждый из них.Кроме того, можете ли вы привести пример из реальной жизни?

Ответы [ 3 ]

6 голосов
/ 06 ноября 2010

В приложении SOA вы, как правило, не включаете интерфейс (уровень представления).Вы используете эти сервисы в своем приложении MVC или, что еще лучше, в отдельном «модельном» проекте, который использует приложение MVC.

Доступ к данным -> Бизнес-логика -> Услуги -> Модели -> MVC

Смысл в том, чтобы использовать сервисы для создания абстракции вокруг базы вашего приложения, чтобы позволить нескольким клиентам использовать эти сервисы.

4 голосов
/ 08 ноября 2010

Я склонен называть Модель представленной на клиентском / презентационном уровне как ViewModel, это просто представление уровней представления модели.Не настоящая модель предметной области. Это необходимо в SOA, так как контекст потребителя модели часто меняется

В SOA мы пытаемся найти каноническую схему для контракта, так как это вполне вероятночто не всем клиентам сейчас и в будущем потребуется одинаковое представление о модели.

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

Итак, пример View >> Controller >> ViewModel (Model) >> Data Contract >> Service

Примеры того, как построить стек служб, подобный этому, можно найтиздесь:

Шаблон проектирования SOA

Решение о том, использовать ли архитектуру REST или полный WS- * SOAP, является отдельной задачей и не должно влиять на ваш выбор.MVC как шаблон представления.

Конечно, могут быть и другие ограничения, препятствующие использованию одного или другого.

Выбор шаблона представления для новой или корпоративной веб-разработки на платформе Microsoft - непростая задача.по моему мнению их всего три;View Model, Model-View-Presenter (MVP) или ASP.NET MVC (производная Model2).

Полный текст статьи можно прочитать здесь Шаблоны ASP.NET MVC

1 голос
/ 06 ноября 2010

Это зависит от того, что вы подразумеваете под SOA. Если вы ссылаетесь на стандарты WS- *, я бы не рекомендовал MVC, так как вам нужно будет написать много сантехники, чтобы заставить его работать.

Если вы ищете что-то вроде сервиса REST, то шаблон MVC на самом деле работает достаточно хорошо. Запрос - это HTTP-расположение ресурса, которое передается контроллеру, который загружает данные через модель, а затем передает их представлению, которое возвращает его в любой необходимой форме (JSON, XML, Binary и т. Д.). Или вы часто можете вернуть результат напрямую, в зависимости от того, какую платформу вы используете.

Erick

...