Выбор дизайна: WCF или сервисный стек? - PullRequest
5 голосов
/ 09 февраля 2012

У меня есть три основных приложения, которые имеют свои собственные бизнес-функции (сети, активный каталог и служба поддержки). Каждый работает под управлением ASP.NET v2 или v3 и имеет свои собственные соответствующие базы данных. Однако функции приложения немного слились, поэтому модели были воссозданы в каждом приложении и логике приложения вместе с ним. Так что теперь у меня есть несколько сложный для поддержки кода. Итак, вот мой вопрос:

  1. Является ли перенос моих моделей и репозиториев в WCF разумным выбором для этого типа архитектуры?

  2. Является ли использование стека служб, таких как сериализованные вызовы json, лучшим выбором? Я полагаю, что это будет быстрее, чем настройка центрального приложения wcf.

Я не слишком знаком с коммуникацией между веб-приложениями asp.net mvc, поэтому, пожалуйста, укажите мне правильное направление.

1 Ответ

1 голос
/ 09 февраля 2012

Я бы порекомендовал разработать сервисный слой для шаблона проектирования, описанного Фаулером .Этот сервисный уровень инкапсулирует различные доменные модели и репозитории и обрабатывает взаимодействия между различными доменами / моделями.Это будет сборка, а не WCF или любой другой тип веб-службы.Если вам требуется веб-служба WCF, то это будет очень тонкий слой, который в основном имеет контракт, имитирующий уровень сервиса, и единственной целью является предоставление интерфейса веб-службы или API.

Существует несколько способов взаимодействия приложения MVC с вашим уровнем обслуживания.Если вы создаете модели представлений в своих контроллерах, то он может получить доступ к сборке сервисного уровня напрямую.Добавлена ​​дополнительная нагрузка при вызове через веб-службу, которая, скорее всего, в этом случае не нужна.Используя этот подход, сервисный уровень - это в значительной степени ваша Модель в трио MVC.

Другой способ доступа к сервисному уровню - это использование Views / client с использованием AJAX для расширенных клиентов.В этом случае вы должны использовать MVC, чтобы поместить API-интерфейс REST поверх уровня службы, чтобы вы могли создавать AJAX POST, используя что-то вроде JQuery, непосредственно в веб-службе для обновления и получения данных для веб-страницы.

Обратите внимание, что с этой архитектурой вы можете использовать комбинацию обоих подходов.Вы можете получить доступ к служебному слою непосредственно из контроллера, чтобы отобразить некоторые начальные страницы, а затем использовать интерфейс REST веб-службы для вызовов AJAX во время взаимодействия с пользователем.

...