웹 서비스 및 WCF 서비스
그들 사이의 차이점은 무엇입니까?
언제 다른 것을 선택할까요?
이 답변은 더 이상 존재하지 않는 기사를 기반으로합니다.
기사 요약 :
"기본적으로 WCF는 다양한 통신 메커니즘을 사용하여 통신 할 수있는 응용 프로그램을 구축 할 수있는 서비스 계층입니다.이를 통해 피어 투 피어, 명명 된 파이프, 웹 서비스 등을 사용하여 통신 할 수 있습니다.
WCF는 상호 운용 가능한 응용 프로그램을 구축하기위한 프레임 워크이므로 비교할 수 없습니다. 원하는 경우 SOA 인 에이 블러로 생각할 수 있습니다. 이것은 무엇을 의미 하는가?
WCF는 ABC로 알려진 것을 준수합니다. 여기서 A는 통신하려는 서비스의 주소이고 B는 바인딩을 나타내고 C는 계약을 나타냅니다. 코드를 변경하지 않고도 바인딩을 변경할 수 있으므로 중요합니다. 계약은 구현에서 계약을 분리해야하기 때문에 훨씬 강력합니다. 이는 계약이 인터페이스에 정의되어 있으며 동일한 계약 아이디어를 사용하여 소비자가 구속하는 구체적인 구현이 있음을 의미합니다. 데이터 모델이 추상화되었습니다. "
... 나중 ...
"웹 서비스가 아닌 다른 통신 기술 (예 : 피어 투 피어, 명명 된 파이프)과 통신해야하는 경우 WCF를 사용해야합니다."
WCF는 Microsoft의 모든 이전 웹 서비스 기술을 대체합니다. 또한 전통적으로 "웹 서비스"로 간주되는 것보다 많은 기능을 수행합니다.
WCF "웹 서비스"는 WCF를 통해 활성화 된 훨씬 광범위한 원격 통신의 일부입니다. WCF는 처음부터 Microsoft가 제공하는 다양한 분산 프로그래밍 인프라를 모두 요약하도록 설계 되었기 때문에 기존 ASMX보다 WCF에서 훨씬 더 높은 수준의 유연성과 이식성을 얻을 수 있습니다. WCF의 엔드 포인트는 TCP / 이진보다 SOAP / XML을 통해 쉽게 통신 할 수 있으며이 매체를 변경하는 것은 구성 파일 모드 일뿐입니다. 이론적으로 이것은 비즈니스 요구, 목표 등을 이식하거나 변경할 때 필요한 새로운 코드의 양을 줄입니다.
ASMX는 WCF보다 오래된 것이므로 ASMX가 할 수있는 모든 것은 WCF (및 그 이상)가 될 수 있습니다. 기본적으로 WCF는 Microsoft의 세계에서 두 개의 앱이 통신하도록하는 여러 가지 방법을 논리적으로 그룹화하려는 것으로 볼 수 있습니다. ASMX는 이러한 여러 가지 방법 중 하나 였으므로 이제 WCF 기능 그룹으로 그룹화되었습니다.
웹 서비스는 HTTP를 통해서만 액세스 할 수 있으며 WCF가 다른 유형의 응용 프로그램에서 호스팅 될 수 있기 때문에 WCF가 유연한 상태 비 저장 환경에서 작동합니다. WCF 서비스를 호스팅하는 일반적인 시나리오는 IIS, WAS, 자체 호스팅, 관리되는 Windows 서비스입니다.
가장 큰 차이점은 웹 서비스 사용
XmlSerializer
입니다. 그러나 WCFDataContractSerializer
는에 비해 성능이 더 우수합니다XmlSerializer
.
웹 서비스 는 SOAP를 기반으로하며 XML 형식의 데이터를 반환합니다. HTTP 프로토콜 만 지원합니다. 오픈 소스는 아니지만 xml을 이해하는 모든 클라이언트가 사용할 수 있습니다. IIS에서만 호스팅 할 수 있습니다.
WCF 는 SOAP를 기반으로하며 XML 형식의 데이터를 반환합니다. 웹 서비스 (ASMX)의 진화이며 TCP, HTTP, HTTPS, Named Pipes, MSMQ와 같은 다양한 프로토콜을 지원합니다. WCF의 주요 문제는 지루하고 광범위한 구성입니다. 오픈 소스는 아니지만 xml을 이해하는 모든 클라이언트가 사용할 수 있습니다. 응용 프로그램이나 IIS 또는 창 서비스를 사용하여 호스팅 할 수 있습니다.
기본 및 주요 차이점은 ASP.NET 웹 서비스는 HTTP를 통해서만 SOAP 메시지를 교환하도록 설계되었으며 WCF 서비스는 모든 전송 프로토콜 (예 : HTTP, TCP, MSMQ 또는 NamedPipes)을 통해 모든 형식 (SOAP가 기본값)을 사용하여 메시지를 교환 할 수 있다는 것입니다.
웹 서비스와 WCF의 차이점은 무엇입니까?
웹 서비스는 한 응용 프로그램에서 다른 응용 프로그램으로 데이터를 전송하는 동안 HTTP 프로토콜 만 사용합니다.
그러나 WCF는 ASP.NET 웹 서비스보다 더 많은 메시지 전송 프로토콜을 지원합니다. WCF는 HTTP, TCP (Transmission Control Protocol), 명명 된 파이프 및 MSMQ (Microsoft Message Queuing)를 사용하여 메시지 전송을 지원합니다.
웹 서비스에서 서비스를 개발하기 위해 다음 코드를 작성합니다
[WebService] public class Service : System.Web.Services.WebService { [WebMethod] public string Test(string strMsg) { return strMsg; } }
WCF에서 서비스를 개발하기 위해 다음 코드를 작성합니다.
[ServiceContract] public interface ITest { [OperationContract] string ShowMessage(string strMsg); } public class Service : ITest { public string ShowMessage(string strMsg) { return strMsg; } }
Web Service is not architecturally more robust. But WCF is architecturally more robust and promotes best practices.
Web Services use XmlSerializer but WCF uses DataContractSerializer. Which is better in performance as compared to XmlSerializer?
For internal (behind firewall) service-to-service calls we use the net:tcp binding, which is much faster than SOAP.
WCF is 25%—50% faster than ASP.NET Web Services, and approximately 25% faster than .NET Remoting.
When would I opt for one over the other?
WCF is used to communicate between other applications which has been developed on other platforms and using other Technology.
For example, if I have to transfer data from .net platform to other application which is running on other OS (like Unix or Linux) and they are using other transfer protocol (like WAS, or TCP) Then it is only possible to transfer data using WCF.
Here is no restriction of platform, transfer protocol of application while transferring the data between one application to other application.
Security is very high as compare to web service
The major difference is time-out, WCF Service has timed-out when there is no response, but web-service does not have this property.
참고URL : https://stackoverflow.com/questions/351334/web-service-vs-wcf-service
'Programing' 카테고리의 다른 글
Oracle ORDER BY 및 ROWNUM을 올바르게 사용하는 방법은 무엇입니까? (0) | 2020.08.06 |
---|---|
통합 테스트를 실행할 때 임베디드 MongoDB (0) | 2020.08.06 |
호로 세터 재정의 (0) | 2020.08.06 |
스트림을 두 번 읽습니다. (0) | 2020.08.06 |
빈 HTML5 데이터 속성이 유효합니까? (0) | 2020.08.06 |