.NET에서 서비스 계층을 구축하기위한 올바른 기술 선택

애플리케이션에서 서비스 계층을 설계 할 때 서비스 계층에서 사용할 기술의 선택은 여러 요인에 따라 달라집니다. 이 기사에서는 .Net에서 애플리케이션을 설계 할 때 서비스 계층을 구현하는 데 적합한 기술을 선택할 수있는시기와 방법에 대해 설명합니다.

.Net에서 서비스 계층을 설계 할 때 두 가지 눈에 띄는 경쟁자는 WCF와 Web API입니다. WCF는 SOA 용 개발 플랫폼으로, 많은 기능을 제공하고 다양한 전송 프로토콜을 지원합니다. WCF는 서비스 지향 응용 프로그램을 빌드하기위한 통합 프레임 워크이지만 Web API는 다양한 클라이언트에서 사용할 수있는 RESTful 서비스를 빌드하기위한 가벼운 대안입니다. RESTful 서비스는 기본 HTTP를 사용하며 SOAP 서비스에 비해 훨씬 적은 페이로드로 간단합니다. WCF에서 WebHttpBinding을 사용하여 HTTP를 통해 비 SOAP RESTful 서비스를 빌드 할 수 있습니다. WCF는 HTTP, TCP 등 많은 전송 프로토콜을 지원할 수 있다는 점에서 훨씬 더 다양합니다. WCF를 활용하여 메시징, 이중 통신 및 TCP와 같은 빠른 전송 채널을 지원할 수있는 안전하고 신뢰할 수있는 트랜잭션 서비스를 구축 할 수 있습니다. ,명명 된 파이프 또는 UDP.

HTTP 프로토콜의 전체 기능을 활용하고 버전 관리, 브라우저 용 캐시 제어 및 Etag를 사용한 동시성을 사용할 수있는 HTTP를 통해 경량의 리소스 지향 서비스를 구축해야하는 경우 Web API가 좋은 선택입니다. 웹 브라우저, 모바일, 태블릿 등과 같은 광범위한 클라이언트에 서비스를 노출하려는 경우 서비스 계층에서 WCF보다 웹 API를 선택해야합니다. 웹 API는 가볍고 제한된 장치에 적합합니다. 스마트 폰과 같은 대역폭. WCF를 사용하는 동안 내가 직면 한 주요 제약 사항 중 하나는 광범위한 구성입니다. 웹 API는 훨씬 간단하고 사용하기 쉽습니다. WCF가 Web API에 비해 훨씬 더 다양하다는 것을 인정하지만 WCF가 제공하는 기능이 필요하지 않고 HTTP를 통한 RESTful 서비스 만 있으면됩니다.저는 웹 API가 가볍고 사용하기 간단하기 때문에 항상 선호합니다.

또한 웹 API와 ASP.Net MVC의 차이점에 대해 논의하고 싶습니다. 다른 하나를 선택하는시기에 대한 오해가 있기 때문입니다. ASP.Net MVC와 Web API 사이의 선택은 여러 요인에 따라 달라집니다. 그중 하나를 사용하기 전에 염두에 두어야 할 몇 가지 고려 사항이 있습니다.

Web API는 HTTP 동사를 사용하므로 메서드를 각 경로에 매핑하기 위해 HTTP 동사 기반 매핑을 사용합니다. 특정 경로에 대해 동일한 HTTP 동사에 대해 오버로드 된 메서드를 가질 수 없습니다. ASP.Net MVC와 Web API 중에서 선택할 때이 디자인 제약 (해결 방법을 사용할 수 있음)을 알고 있어야합니다. ASP.Net MVC와 달리 Web API는 작업이 포함 된 URI가 아닌 HTTP 동사를 기반으로하는 라우팅을 사용합니다. 따라서 웹 API를 사용하여 HTTP 프로토콜을 활용할 수있는 RESTful 서비스를 작성할 수 있습니다. 테스트 및 유지 관리가 더 쉬운 서비스를 설계 할 수 있습니다. Web API의 라우팅은 훨씬 더 간단하며 콘텐츠 협상을 원활하게 활용할 수 있습니다. ASP.Net MVC의 라우팅 모델에는 URI의 작업이 포함됩니다.

고려해야 할 또 다른 사항은 기능이 특정 애플리케이션에 노출되기를 원하는지 또는 기능이 일반화되어야하는지 여부입니다. 하나의 애플리케이션에만 서비스를 노출하려면 ASP.Net MVC를 사용하는 것이 좋습니다. ASP.Net MVC 애플리케이션의 컨트롤러는 애플리케이션에 따라 다릅니다. 반대로 비즈니스에서 기능을 일반적으로 노출해야하는 경우 웹 API 접근 방식을 원할 것입니다. 기능이 데이터 중심적인 경우 웹 API 접근 방식을 사용하고 기능이 UI 중심 인 경우 ASP.Net MVC 접근 방식을 선호합니다.

컨트롤러가 JSON, XML 등과 같은 여러 형식으로 데이터를 반환하도록하려면 ASP.Net MVC를 통해 Web API를 사용해야합니다. 또한 Web API에서 데이터 형식을 지정하는 것은 간단하고 구성하기 쉽습니다. Web API는 자체 호스팅 기능 (WCF와 유사)에서 ASP.Net MVC보다 점수가 높습니다. ASP.Net MVC 컨트롤러는 동일한 응용 프로그램의 일부이기 때문에 응용 프로그램이 호스팅 된 동일한 웹 서버에서 ASP.Net MVC 컨트롤러를 호스팅해야합니다. 반대로 IIS 외부에서 Web API 컨트롤러를 호스팅 할 수도 있습니다. 경량 사용자 지정 호스트에서 호스팅하고 다양한 클라이언트에서 서비스를 사용할 수 있습니다.