主な違い: Webサービスは、インターネット上で利用可能なソフトウェアコンポーネントのシステムとして記述することができます。 データ交換に使用されるプロトコルと規格で構成されています。 したがって、ネットワークを介したマシン間のデータの相互運用可能な交換を支援します。 WCFはWindows Communication Foundationの略です。 それはサービス指向のアプリケーションを構築するためのフレームワークとして記述することができます。 それはサービスにランタイム環境を提供します。 WCFの「Webサービス」は、Webサービスと比べてはるかに広い範囲の一部です。
- サービス指向 - サービス指向アプリケーションの作成に重点が置かれています。
- 相互運用性 - Webサービスの相互運用性のために最新の業界標準が実装されています。
- 複数のメッセージパターン - メッセージを交換するためのパターンは多数あります。
- サービスメタデータ - 公開サービスメタデータをサポートするために、WSDLやXMLスキーマなどの形式が使用されます。
- セキュリティ - 暗号化や認証などのセキュリティ機能が利用可能です。
- 永続メッセージ - 永続パターンのメッセージは常にデータベースに保存されます。
- AJAXとRESTのサポート
- 拡張性 - 拡張バインディング、チャネル層、serviceHostなどのさまざまな分野で拡張性を提供します。
WebサービスとWCFサービスを比較するために、ASP.netのWebサービスとWCFサービスの違いを判断できます。
ASP.netにおけるWebサービスとWCFの比較
ウェブサービス | WCF | |
定義 | Webサービスは、インターネット上で利用可能なソフトウェアコンポーネントのシステムとして説明できます。 データ交換に使用されるプロトコルと規格で構成されています。 したがって、ネットワークを介したマシン間のデータの相互運用可能な交換を支援します。 | WCFはWindows Communication Foundationの略です。 それはサービス指向のアプリケーションを構築するためのフレームワークとして記述することができます。 それはサービスにランタイム環境を提供します。 |
アクセシビリティ | 固定 - WebサービスはHTTP経由でのみアクセス可能 | フレキシブル |
ファイル形式/拡張子 | ファイル拡張子としての.asmx | ファイル拡張子として.svc |
直列化 | System.Xml.serialization名前空間はシリアル化に使用されます | System.Runtime.Serialization名前空間はシリアル化に使用されます |
未処理の例外 | SOAPエラーとしてクライアントに返される | SOAPエラーとしてクライアントに返されない |
クライアント開発 | コマンドラインツールWSDL.EXEを使用して実行した | ServiceMetadatatoolを使用して完了 |
エンコーディング | XML1.0、MTOM(メッセージ転送最適化メカニズム)、DIME(直接インターネットメッセージカプセル化) | XML1.0、MTOM、バイナリ |
サービス開発 | WebService属性をクラスに追加し、WebMethodAttributeをそのクラスのサービスの操作になるメソッドに追加することは必須でした。 | エンドポイントを定義する必要があります(1つ以上) |
メッセージ表現 | SOAPメッセージのヘッダーをカスタマイズすることができます。 | SOAPメッセージの構造を説明するために、属性MessageContractAttribute、MessageHeaderAttribute、およびMessageBodyMemberAttributeが用意されています。 |