2008-10-19 4 views

답변

8

서비스 작성을위한 두 가지 프레임 워크입니다. WCF는 일반적으로 더 유연하며 사용되는 프로토콜, 서비스 호스팅 방법 및 다양한 보안 옵션에 대해 구성 가능한 옵션을 제공합니다. ASMX는 SOAP 기반 서비스를 제공합니다. 일반적으로 WCF도 performant입니다. 일반적으로 ASMX는 사용하기가 쉽고 일반적으로 학습 곡선이 적습니다.

Here은이 주제에 대한 MSDN 포럼의 토론입니다. 다음은 ASMXWCF의 시작 페이지입니다.

43

ASP.NET 웹 서비스는 HTTP를 통해 SOAP (Simple Object Access Protocol)를 사용하여 메시지를 보내고받는 응용 프로그램을 작성하기 위해 개발되었습니다.

WCF는 .NET Framework 응용 프로그램이 다른 소프트웨어 엔터티와 메시지를 교환 할 수 있도록하기위한 것입니다. SOAP는 기본적으로 사용되지만 메시지는 어떤 형식이든 전송 프로토콜을 사용하여 전달할 수 있습니다.

ASP.NET 웹 서비스를 WCF 서비스의 하위 집합으로 볼 수 있습니다.

Here은 두 프레임 워크를 비교하는 링크입니다.

+0

+1 링크에 대한 감사와 좋은 명확한 설명 –

28

에 대한 간단한 스레드입니다.

ASP.NET 웹 방법은 [때문에 파일 확장자] ASMX가 호출

그 기술이에서 연결할 수 있도록 웹 서비스 등의 기능을 노출한다 (이것에 대해 4GuysFromRolla을 확인, 그들은 good tutorial가 있습니다) 어디에서나 사용하십시오. 그러나 ... 당신은 서버와 클라이언트 사이의 데이터를 보호 할 수 없습니다, 당신은 큰 파일을 분명하고 무슨 일이 있었는지 알고 보낼 수 있습니다 ...

[참고] 당신은 웹 서비스에 대한 액세스를 보호 할 수 있습니다 인증서가 있지만 복잡하지만 일반적으로 ASMX에서는 username/password를 사용합니다. WCF에서

(당신이을 차이 ...서비스!하지 웹 서비스를 볼 수 있습니다) 당신은 웹 서비스에 대한 다른 세계에있는,이 서비스를 노출하는 .NET에서 최고의 기술을이야 WCF는 IIS를 실행할 필요가 없으며 콘솔 앰비언스 (명령 줄과 같은)를 사용하여 서버에서 시스템 서비스로 실행할 수 있으므로 WCF는 웹 서비스가 아닌 서비스라고합니다. ASMX가 IIS를 실행할 필요가 있음을 기억하십시오. WCF와

당신이 (ASMX 당신이 WSE 사용할 필요가 있다고 할 - 웹 서비스 향상을) 통신을 암호화하는 SSL을 사용할 수 있습니다 당신은 ASMX에서 사용할 필요가 있다고 할 (큰 파일을 전송하고 안전하게 할 수 있습니다, MTOM - 메시지 전송 최적화 메커니즘).

당신은 단지 한 줄의 코드를 변경 전송 환경을 설정할 수는 보안 등, 등 :

당신이 가진 더 나은 일반적인 개요를 희망하지만, 훨씬 더 많은 것이, 훨씬 높다.

하단 줄 : 보호 할 필요가없는 웹 서비스를 노출하려면 ASMX를 사용할 수 있지만 전혀 문제가되지 않지만 어떻게 든 통신을 보호해야하는 경우 WCF에서 수행하십시오!

링크은 : 위의 답변에 추가 you can read here some performance comparative between the 2 services

+0

+1 덕분에, 훌륭한 세부 사항 –

7

, WCF는 .NET 3.0 및 이상 .NET Remoting을 대체하기 위해 만들어졌습니다. WCF는 다양한 형식 (예 : XML 및 JSON)의 SOAP, REST, POX 등의 웹 서비스 외에도 MSMQ 및 Named Pipes도 제공합니다. 위에서 언급 한 ASMX는 SOAP 기반 XML 웹 서비스 만 제공합니다.

다른 통신 프로토콜 유형의 경우 .NET Remoting으로 파고들 필요가 있습니다. 자세한 내용은 Pro C# 2008 and the .NET 3.5 Framework을 확인하십시오. 훌륭한 리소스이므로 .NET Remoting 및 이전 된 다른 기능을 다루는 이전 책에서 장을 얻을 수 있습니다.

1

나는 동일한 문제가있었습니다.

Microsoft Windows Communication Foundation Step by Step이 정말 좋습니다.

당신이 단지는 WCF를 사용하여 기존의 웹 서비스의 일을하고 싶은 경우에, 그 책의 제 1 장 정확히 어떻게을 수행하는 (쓰기 서비스, 테스트, 사용, 서비스를 전개)을 보여줍니다.

VS2005 용으로 작성되었지만 vs2008을 사용하고있어보다 쉽게 ​​찾을 수 있습니다.

WCF에는 더 많은 것이 있지만 그 책은 좋은 출발점입니다.

+0

+1 –

4

새롭고 큰 차이점은 다음과 같습니다. 이제 Microsoft는 ASMX 웹 서비스를 "레거시"기술로 간주합니다. "XML Web Services Created Using ASP.NET and XML Web Service Clients"을 참조하십시오.

+1

+1에 대한 링크를 주셔서 감사합니다. 이전에 다른 게시물에서 언급했듯이 중요한 포인트입니다. – RichardOD

+0

이 항목의 머리글 : "이 항목은 레거시 기술에만 해당되며 XML 웹 서비스 및 XML 웹 서비스 클라이언트는 이제 WCF (Windows Communication Foundation)를 사용하여 만들어야합니다." –

2

웹 서비스

그것은 단지 HTTP를 통해 액세스 할 수
    1. 그것은 비 저장 환경에서 작동
    2. 자사의 서비스가 다른 유형에서 호스팅 할 수 있기 때문에

    WCF

    WCF는 유연 응용 프로그램의. WCF 서비스를 호스팅하기위한 다음 목록 몇 가지 일반적인 시나리오 :

    • 는 WAS IIS
    • 자체 호스팅
    • 웹 서비스와 WCF 사이
  • 1

    주요 차이점은 다음과 같습니다 Windows 서비스를 관리 .

    웹 서비스 : 웹 서비스는 인터넷을 통해 다른 응용 프로그램과 직접 상호 작용하도록 설계된 응용 프로그램입니다.

    1) [WebService] 및 [WebMethod] 속성은 웹 서비스 및 메서드를 정의합니다.
    2) HTTP를 통해서만 액세스 할 수 있습니다.
    3) IIS에서 호스팅됩니다.
    4) 보안 서비스를 지원하십시오.
    5) 다중 스레드 할 수 없습니다.
    6) 사용 된 비누 또는 XML 만 사용하십시오. 구성 및 네트워크 분산 서비스를 배포, 윈도우 커뮤니케이션 파운데이션 (코드 인디고 이름) 구축을위한 프로그래밍 플랫폼과 런타임 시스템입니다 :
    7) System.Xml.serialization 이름 공간은 직렬화

    WCF가 사용됩니다.

    1) [ServiceContract] 및 [OperationContract] 특성은 웹 서비스 및 메서드를 정의합니다.
    ) HTTP, TCP, MSMQ, P2P, 명명 된 파이프를 통해 액세스
    3) IIS, 자체 호스팅, WAS 및 Windows 서비스에서 호스팅됩니다.
    4) 서비스 동작 클래스를 통해 다중 스레드 될 수 있습니다.
    5)들은 System.Runtime.Serialization 네임 스페이스가 직렬화
    6)에 사용됩니다 WSDualHttpBinding,은 BasicHttpBinding, WsHttpBinding과 같은 바인딩의 다른 유형을 지원하는 등
    7) 보안 서비스, 신뢰할 수있는 메시징, 트랜잭션, AJAX와 REST 지원을 지원

    관련 문제