WCF-対Webサービス
以下にリストされているWCFとWebサービスの間にはいくつかの大きな違いがあります。
Attributes − WCFサービスはServiceContract属性とOperationContract属性によって定義されますが、WebサービスはWebService属性とWebMethod属性によって定義されます。
Protocols − WCFは、HTTP、名前付きパイプ、TCP、MSMQなどのさまざまなプロトコルをサポートしますが、WebサービスはHTTPプロトコルのみをサポートします。
Hosting Mechanisms − WCFホスティングには、IIS(インターネットインフォメーションサービス)、WAS(Windowsアクティベーションサービス)、セルフホスティング、Windowsサービスなど、さまざまなアクティベーションメカニズムがありますが、WebサービスはIISによってのみホストされます。
Services − WCFは堅牢なセキュリティ、信頼できるメッセージング、トランザクション、および相互運用性をサポートしますが、Webサービスはセキュリティサービスのみをサポートします。
Serializer − WCFはSystem.Runtime.Serializationを使用してDataContractシリアライザーをサポートしますが、WebサービスはSystem.Xml.Serializationを使用してXMLシリアライザーをサポートします。
Tools − ServiceMetadataツール(svcutil.exe)はWCFサービスのクライアント生成に使用され、WSDL.EXEツールはWebサービスのクライアント生成に使用されます。
Exception Handling− WCFでは、未処理の例外は、FaultContractを利用することでより適切に処理されます。これらは、SOAP障害として、Webサービスのようにクライアントに返されません。
Hash Table − WCFでハッシュテーブルをシリアル化することは可能ですが、Webサービスではそうではありません。
Bindings − WCFは、BasicHttpBinding、WSDualHttpBinding、WSHttpBindingなどのいくつかのタイプのバインディングをサポートしますが、WebサービスはSOAPまたはXMLのみをサポートします。
Multithreading − WCFはServiceBehaviorクラスを使用したマルチスレッドをサポートしていますが、これはWebサービスではサポートされていません。
Duplex Service Operations − WCFは、一方向および要求/応答サービス操作のサポートとは別に、二重サービス操作をサポートしますが、Webサービスは二重サービス操作をサポートしません。