Как использовать WCF с MVC - PullRequest
       1

Как использовать WCF с MVC

1 голос
/ 01 апреля 2012

Я только недавно начал экспериментировать с .NET MVC 4.

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

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

Но действительно ли это правильно или сервис должен использоваться на уровне модели?

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

Я склонен создавать это, используя шаблон репозитория, в котором методы репозитория возвращают экземпляры классов моей модели:

Внутри моего контроллера я просто создаю ссылку на мой репозиторий и вызываю соответствующие методы.Репозиторий обернет прокси-сервер службы WCF и вызовет службы внутри различных методов репозитория

EX из CustomerController:

Customer c = customerRepository.GetCustomerById(int customerId)

Я также стараюсь, чтобы мои репозитории реализовывали интерфейс дляупростить моделирование уровня доступа к данным без необходимости вызова внешних зависимостей, таких как служба / база данных WCF (модульные тесты)

1 голос
/ 01 апреля 2012

Я бы хотел иметь отдельную Service Layer, чтобы справиться с этим. Классы в этом слое сервиса будут взаимодействовать с другим источником данных (сервис WCF / другой репозитарий / слой ADO.NET и т. Д.) И преобразовывать эти доменные объекты в соответствующие ViewModels и возвращать их в мои действия контроллера, когда они в этом нуждаются.

namespace YourProject.Services
{
 public class UserService
 {

  public UserViewModel GetUser(int id)
  {
    UserViewModel objVM=new UserViewModel();

    User objRealUser=GetUserFromWCFService(id);
   if(objUser.IsValid)
   {
      objVM.FirstName=objUser.FirstName;
      // Assign the other properties to the View model or use Automapper.
   }
   return objVM;
  }    

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