Лучшие практики для включения WCF в средний уровень MVC - PullRequest
3 голосов
/ 03 мая 2011

Мне было интересно, если кто-то реализовал трехуровневое приложение, используя MVC и WCF в качестве среднего уровня?Были ли какие-либо проблемы с производительностью или недостатки, а не реализация стандартного среднего уровня с использованием DLL.Я представлял себе средний уровень WCF, который будет иметь доступ к DAL (linq to SQL), любые советы / ссылки очень ценятся!

Ответы [ 2 ]

6 голосов
/ 04 мая 2011

3-уровневое приложение с MVC и WCF обычно означает:

  • Font-end ASP.NET MVC, где в простейшем сценарии контроллер вызывает прокси служб WCF.
  • Back-end /WCF среднего уровня, раскрывающий вашу бизнес-логику / доступ к данным
  • Сервер базы данных, на котором размещена ваша база данных

Где вы должны это использовать? Только когда вам действительно нужно - к вам предъявляются строгие требования.Это, конечно, имеет огромное влияние на производительность, потому что клиент использует удаленный вызов для каждой бизнес-операции.Удаленный вызов может быть либо между процессами на одной машине, но чаще всего процессом на другом сервере (в другой сети).Также требуется улучшенный дизайн взаимодействий для уменьшения количества вызовов до минимума, а также использование асинхронной связи для одновременного вызова нескольких вызовов.

0 голосов
/ 05 мая 2011

Если вы разрабатываете веб-сайт, интенсивно использующий AJAX (например, для jQuery.ajax), вы можете реализовать его следующим образом:

  • Front-end может быть сделан с учетом ASP.NET MVC. Данные для соответствующих видов будут запрашиваться по AJAX.
  • WCF, опубликованный на том же веб-сайте, что и ASP.NET MVC (см. здесь пример), может предоставить данные JSON для всех запросов AJAX. WCF можно рассматривать как компонент среднего уровня, который реализует бизнес-логику и получает необходимые данные от сервера базы данных.

При такой архитектуре приложения ASP.NET MVC будет уменьшен до V (Views) с использованием главных страниц. Могут генерироваться разные представления в зависимости от ролей пользователя. Модель и большинство действий контроллера будут перемещены в WCF. Методы WFC можно протестировать с помощью модульных тестов, точно таких же хороших, как действия контроллера Если вам потребуются некоторые другие данные, такие как динамически генерируемые изображения (например, диаграммы) или динамически генерируемые файлы Excel или WinWord, вы можете вернуть все данные из методов WFC точно так же просто, как вы можете сделать это из действий контроллера MVC.

При таком дизайне вашего приложения я не вижу производительности или других недостатков. Оба вида ASP.NET MVC и WFC имеют много возможностей кэширования, которые вы можете использовать по требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...