Я склонен называть Модель представленной на клиентском / презентационном уровне как 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