1

ASP.NET MVC 프로젝트에서 데이터 액세스 레이어는 WCF로 구현됩니다. 이유는 이러한 WCF 서비스가 앞으로 몇 가지 다른 클라이언트 응용 프로그램에서 사용되기 때문입니다.ASP.NET MVC를 사용하는 WCF - 참조 프로젝트

내가 볼 수있는 좋은 참조 프로젝트가 있는지 알 수 있습니까? 내가 한 번 봐 가질 필요가 중요 사항은 다음과 같습니다

프로젝트가 따라야 할 필요가
  • 모든 모범 사례를 구성하는 방법
    • 도메인 개체/포항 강판은, DTO들은 ViewModels가 될 필요가 어떻게
    • 조직, 서로
    • 단위 테스트 사이의 통신


    접근개

    모든 제안은 /이 지역에 대한 조언은 매우


    가 대단히 감사합니다 감사합니다.

  • +0

    내 두 센트는 DAL이 아닌 WCF를 통해 BL을 사용할 수 있어야합니다. –

    답변

    2

    다른 ASP.NET MVC 응용 프로그램을 수행하는 경우와 완전히 똑같을 것입니다. WCF 서비스를 호출하는 리포지토리의 구현을 제공하면됩니다.

    public interface IProductsService 
    { 
        IEnumerable<Product> GetProducts(); 
    } 
    

    ProductIProductsService 당신의 WCF 서비스에서 오는 도메인 객체 : 당신이 당신의 서비스를 가져올 때 그러니까 기본적으로 저장소 인터페이스를 가지고 작업 계약을 수 있습니다. 이 인터페이스의 구현에서는 호출을 서비스 자체에 위임합니다. 지금까지 응용 프로그램의 나머지 부분에 관한 한, 당신의 컨트롤러는 정말 그들이 약하게 결합으로 상관하지 않습니다

    public class ProductsController: Controller 
    { 
        private readonly IProductsService _productsService; 
        public ProductsController(IProductsService productsService) 
        { 
         _productsService = productsService; 
        } 
    
        public ActionResult Index() 
        { 
         var products = _productsService.GetProducts(); 
         var productsVm = Mapper.Map<IEnumerable<Product>, IEnumerable<ProductViewModel>>(products); 
         return View(productsVm); 
        } 
    } 
    

    꽤 표준 물건과 당신의 컨트롤러가 데이터의 출처에 상관없이 같이하는 방법입니다 . 추상화를 통해 항상 응용 프로그램을 설계하는 경우 알 수 있듯이 컨트롤러와 ASP.NET MVC 응용 프로그램 관점에서 주입되는 IProductsService의 구현을 매우 쉽게 전환 할 수 있으므로 아무런 차이가 없습니다. 보기 모델은보기에 강하게 묶여 있기 때문에 웹 UI의 일부 여야합니다.

    서비스 계약과 도메인 모델은 서비스 계층으로 이동합니다.

    관련 문제