웹 서비스 대 WCF 서비스


답변:


67

이 답변은 더 이상 존재하지 않는 기사를 기반으로합니다.

기사 요약 :

"기본적으로 WCF는 다양한 통신 메커니즘을 사용하여 통신 할 수있는 응용 프로그램을 구축 할 수있는 서비스 계층입니다.이를 통해 피어 투 피어, 명명 된 파이프, 웹 서비스 등을 사용하여 통신 할 수 있습니다.

WCF는 상호 운용 가능한 응용 프로그램을 빌드하기위한 프레임 워크이므로 비교할 수 없습니다. 원하는 경우이를 SOA Enabler로 생각할 수 있습니다. 이것은 무엇을 의미 하는가?

WCF는 ABC로 알려진 것을 따릅니다. 여기서 A는 통신하려는 서비스의 주소, B는 바인딩, C는 계약을 나타냅니다. 코드를 변경하지 않고도 바인딩을 변경할 수 있기 때문에 중요합니다. 계약은 구현에서 계약을 분리하기 때문에 훨씬 더 강력합니다. 이는 계약이 인터페이스에 정의되어 있고 동일한 계약 아이디어를 사용하여 소비자가 구속하는 구체적인 구현이 있음을 의미합니다. 데이터 모델이 추상화되었습니다. "

... 나중 ...

"웹 서비스가 아닌 다른 통신 기술 (예 : Peer to Peer, Named Pipes)과 통신해야 할 때 WCF를 사용해야합니다."


2
SOA 접근 방식을 기반으로하는 새 프로젝트의 경우 개발자는 웹 서비스보다 WCF를 선택해야합니다. 향후 사용을위한 유연성과 확장 성을 제공하기 때문입니다. 단 하나의 예외가 있습니다. 클라이언트가 wcf 서비스, 즉 Flash AS2와의 통신을 지원하지 않는 경우.
Lalit

WCF 1) 다중 계층 아키텍처입니다. 2) 다양한 네트워크 프로토콜을 사용하여 통신 할 수있는 Service Oriented Application을 구축하기위한 단일 통합 플랫폼 (상호 운용 가능) 또는 프레임 워크를 제공합니다. 3) WCF는 웹 서비스 또는 ASMX 서비스에 비해 더 나은 보안과 안정성을 제공합니다. 4) Plain XML, Ajax 및 REST 웹 서비스 지원 1) 간단합니다. 2) 함수를 작성하고 [WebMethod] 속성으로 연결하면됩니다. 서비스 제공 준비
Arun Banik 2014 년

Joe의 답변-> The Article ist replicated on codeproject.com/Articles/139787/…
Bernhard

33

에서 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. 그러나 WCF DataContractSerializerXmlSerializer.


2
임의 참고 : DataContractSerializer와 XmlSerializer의 큰 차이점은 DCS 필드 순서 지정이 필요 하다는 것입니다. 이것이 바로 비 일시적 직렬화 또는 계약에 DCS를 사용하지 않는 이유입니다! 따라서 DCS로 이동할 때 (또는 DCS로 이동하지만 이전에 사용했던 것과 다른 순서로) 고정 된 순서를 사용하지 않는 클라이언트가 사용하는 서비스를 중단 할 수 있습니다. 물론 이것은 스키마로 표현되어야하지만 ..
user2246674 2013-07-11

1
또한 출처를 인용 / 링크하고 발췌 내용을 표시 하거나 원본 정보를 가져 와서 새로운 내용을 작성하십시오. 훔치는 것은 무례합니다. 나는 당신을 위해 링크를 추가했습니다. (I 전혀 downvote 수 있다면,이 기준에 downvote 것입니다.)
user2246674

32

웹 서비스 는 SOAP를 기반으로하며 XML 형식으로 데이터를 반환합니다. HTTP 프로토콜 만 지원합니다. 오픈 소스는 아니지만 xml을 이해하는 모든 클라이언트에서 사용할 수 있습니다. IIS에서만 호스팅 할 수 있습니다.

WCF 는 SOAP를 기반으로하며 XML 형식으로 데이터를 반환합니다. 웹 서비스 (ASMX)의 진화이며 TCP, HTTP, HTTPS, Named Pipes, MSMQ와 같은 다양한 프로토콜을 지원합니다. WCF의 주요 문제는 지루하고 광범위한 구성입니다. 오픈 소스는 아니지만 xml을 이해하는 모든 클라이언트에서 사용할 수 있습니다. 응용 프로그램이나 IIS에서 또는 창 서비스를 사용하여 호스팅 할 수 있습니다.


WCF는 또한 SOAP / 스키마를 사용하지 않고 JSON 형식으로 http 요청 / 응답을 수신 / 전송할 수 있습니다 (요즘?).
Efrain

세부 사항 : SOAP는 HTTPS를 지원합니다. 인코딩은 전송 계층에서 발생하므로 클라이언트는 이에 대해 알지 못합니다. 클라이언트는 XML 요청을 만들고 XML 응답을받습니다. 그리고 그것이 일반 -ol-http 또는 암호화 -https인지 여부를 알거나 신경 쓰지 않습니다.
Jinlye

16

기본 및 주요 차이점은 ASP.NET 웹 서비스는 HTTP를 통해서만 SOAP 메시지를 교환하도록 설계되었으며 WCF 서비스는 HTTP, TCP, MSMQ 또는 NamedPipes 등과 같은 모든 전송 프로토콜을 통해 모든 형식 (SOAP이 기본값)을 사용하여 메시지를 교환 할 수 있다는 것입니다.


4

웹 서비스와 WCF의 차이점은 무엇입니까?

  1. 웹 서비스는 한 응용 프로그램에서 다른 응용 프로그램으로 데이터를 전송하는 동안 HTTP 프로토콜 만 사용합니다.

    그러나 WCF는 ASP.NET 웹 서비스보다 메시지 전송에 더 많은 프로토콜을 지원합니다. WCF는 HTTP, TCP (Transmission Control Protocol), 명명 된 파이프 및 MSMQ (Microsoft Message Queuing)를 사용한 메시지 전송을 지원합니다.

  2. 웹 서비스에서 서비스를 개발하기 위해 다음 코드를 작성합니다.

    [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;
      }
    }
  3. 웹 서비스는 구조적으로 더 강력하지 않습니다. 그러나 WCF는 구조적으로 더 강력하며 모범 사례를 장려합니다.

  4. 웹 서비스는 XmlSerializer를 사용하지만 WCF는 DataContractSerializer를 사용합니다. XmlSerializer에 비해 성능이 더 나은 것은 무엇입니까?

  5. 내부 (방화벽 뒤) 서비스 간 호출의 경우 SOAP보다 훨씬 빠른 net : tcp 바인딩을 사용합니다.

    WCF는 ASP.NET 웹 서비스보다 25 % ~ 50 % 빠르며 .NET Remoting보다 약 25 % 빠릅니다.

언제 다른 하나를 선택합니까?

  • WCF는 다른 플랫폼에서 개발되고 다른 기술을 사용하는 다른 응용 프로그램 간의 통신에 사용됩니다.

    예를 들어 .net 플랫폼에서 다른 OS (예 : Unix 또는 Linux)에서 실행중인 다른 애플리케이션으로 데이터를 전송해야하고 다른 전송 프로토콜 (예 : WAS 또는 TCP)을 사용하는 경우에만 데이터를 전송할 수 있습니다. WCF를 사용합니다.

  • 여기에는 플랫폼, 애플리케이션의 전송 프로토콜에 제한이 없으며 한 애플리케이션간에 데이터를 다른 애플리케이션으로 전송합니다.

  • 웹 서비스에 비해 보안이 매우 높습니다.


2

주요 차이점은 시간 초과입니다. WCF 서비스는 응답이 없을 때 시간이 초과되었지만 웹 서비스에는이 속성이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.