Служба контроллеров MVC WCF - PullRequest
2 голосов
/ 06 декабря 2011

Я использую ASP.net MVC3 для своего уровня представления, и мой доступ к данным и бизнес-логика предоставляются через Службу WCF. Должны ли мои контроллеры вызывать службу WCF или должен существовать дополнительный уровень абстракции, такой как хранилище, которое вызывает службу WCF.

Репозиторий, который вызывает сервис

public ProductController(IProductRepository productRepository)
{
      _productRepository = productRepository;
}

public ProductRepository(ProductServiceClient client)
{
      _client = client;
}

Сервис прямо в контроллерах

public ProductController(ProductServiceClient client)
{
      _client = client;
}

Классы репозитория ничего не делают, кроме вызова методов, предоставляемых через сервис.

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Извините, я очень запутался в вашем вопросе, но мне жаль, если я неправильно понял.Надеюсь, мои указатели прояснят это.

  1. Репозитории, связанные с постоянством, и определяют способ обработки уровня инфраструктуры, то есть работы с данными (в хранилище памяти, хранилище sql или в общем)
  2. Сервисы, если вам нравится использовать эти репозитории для выполнения договорных операций, таких как получение клиента в вашем случае.
  3. Сервисы вызываются клиентами, или кто-то, кто запрашивает сервисы, и сервис, в свою очередь, вызывает репозиторий, который, в свою очередь, вызываетоперации с данными.

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

0 голосов
/ 06 декабря 2011

Я бы начал с точного опозита - WCF должен вызывать методы внутри репозитория.

Уровень данных должен быть универсальным и иметь доступ к нему любым способом (wcf должен быть одним, веб-сайт mvc должен быть другим и т. Д.).

Таким образом, вы также можете тестировать свои проекты модульно, и это легче отслеживать. В этом случае Wcf следует рассматривать как дополнительный API к вашей программе.

Меня больше беспокоит вопрос о том, где должны храниться бизнес-правила, но я бы проголосовал за контроллеры mvc для бизнес-логики и за сервисами wcf, вызывающими их внутри.

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