ASP.NET には、Web サービスを構築するための .NET Framework クラス ライブラリとツール、およびインターネット インフォメーション サービス (IIS) 内のサービスをホストするための機能が用意されています。 Windows Communication Foundation (WCF) には、.NET Framework クラス ライブラリ、ツール、およびホスティング機能が用意されており、Web サービスで使用されるプロトコルを含め、任意のプロトコルを使用してソフトウェア エンティティが通信できるようにします。 ASP.NET Web サービスを WCF に移行すると、アプリケーションは WCF に固有の新機能と機能強化を利用できます。
WCF には、ASP.NET Web サービスに関連するいくつかの重要な利点があります。 ASP.NET Web サービス ツールは Web サービスの構築専用ですが、WCF には、ソフトウェア エンティティを作成して相互に通信する必要がある場合に使用できるツールが用意されています。 これにより、さまざまなソフトウェア通信シナリオに対応するために開発者が知る必要があるテクノロジの数が減り、ソフトウェア開発リソースのコストが削減され、ソフトウェア開発プロジェクトを完了する時間が短縮されます。
Webサービス開発プロジェクトにおいて、WCFはASP.NETウェブサービスよりも多くのWebサービスプロトコルをサポートします。 これらの追加プロトコルは、信頼性の高いセッションやトランザクションなど、より高度なソリューションを提供します。
WCF では、ASP.NET Web サービスよりも多くのメッセージ転送プロトコルがサポートされています。 ASP.NET Web サービスでは、ハイパーテキスト転送プロトコル (HTTP) を使用したメッセージの送信のみがサポートされます。 WCF では、HTTP、伝送制御プロトコル (TCP)、名前付きパイプ、および Microsoft メッセージ キュー (MSMQ) を使用したメッセージの送信がサポートされています。 さらに重要なのは、WCF を拡張して追加のトランスポート プロトコルをサポートできることです。 したがって、WCF を使用して開発されたソフトウェアは、他のさまざまなソフトウェアと連携するように調整できるため、潜在的な投資収益率を高めることができます。
WCF は、ASP.NET Web サービスが提供する以上に、アプリケーションを展開および管理するためのより豊富な機能を提供します。 ASP.NET が備える構成システムに加えて、WCF には、構成エディター、送信者から受信者へのアクティビティ トレース、任意の数の中継局、トレース ビューアー、メッセージ ログ、多数のパフォーマンス カウンター、および Windows Management Instrumentation のサポートが用意されています。
ASP.NET Web サービスに関連する WCF の潜在的な利点を考えると、ASP.NET Web サービスを使用している場合、または使用することを検討している場合は、いくつかのオプションがあります。
引き続き ASP.NET Web サービスを使用し、WCF によって提供される利益を放棄します。
将来、WCF を採用することを意図して、ASP.NET Web サービスを使用し続けます。 このセクションのトピックでは、新しい ASP.NET Web サービス アプリケーションを将来の WCF アプリケーションと共に使用できる見込み客を最大化する方法について説明します。 このセクションのトピックでは、新しい ASP.NET Web サービスを構築して、WCF への移行を容易にする方法についても説明します。 ただし、サービスのセキュリティ保護が重要な場合や、信頼性やトランザクションの保証が必要な場合、またはカスタム管理機能を構築する必要がある場合は、WCF を採用することをお勧めします。 WCF は、正確にこのようなシナリオ向けに設計されています。
既存の ASP.NET Web サービス アプリケーションを維持しながら、新しい開発に WCF を採用します。 この選択は、最適な選択肢である可能性が非常に高いです。 WCF を使用するように既存のアプリケーションを変更するコストを抑えながら、WCF の利点が得られます。 このシナリオでは、新しい WCF アプリケーションを既存の ASP.NET アプリケーションと共存させることができます。 新しい WCF アプリケーションは、既存の ASP.NET Web サービスを使用でき、WCF を使用して、WCF ASP.NET 互換モードにより、既存の ASP.NET アプリケーションに新しい運用機能をプログラミングできます。
WCF を採用し、既存の ASP.NET Web サービス アプリケーションを WCF に移行します。 このオプションを選択すると、WCF によって提供される機能を使用して既存のアプリケーションを拡張したり、新しいより強力な WCF アプリケーション内で既存の ASP.NET Web サービスの機能を再現したりできます。
注
WCF サービスが IIS 5.x によってホストされていて、ASP.NET がアンインストールされる場合は、注意が必要です。 WCF サービスが IIS 5.x によってホストされている場合、ASP.NET がアンインストールされた場合、サービスのコードを要求できます。 IIS 5.x を実行しているオペレーティング システムで ASP.NET がアンインストールされ、WCF がアンインストールされると、拡張子が .svc のファイルがテキスト ファイルと見なされ、ソース コードを含むコンテンツがリクエスターに返されます。
このセクションでは、これらのオプションについて詳しく説明し、ASP.NET Web サービスと WCF を比較し、ASP.NET Web サービス コードを WCF に移行する方法について説明します。