ASP.NET AJAX 用の WCF サービスの作成

Microsoft ASP.NET AJAX により、応答性に優れ、使い慣れたユーザー インターフェイス要素を使用して、充実したユーザー エクスペリエンスを提供する Web ページを簡単に作成できます。ASP.NET AJAX には、ブラウザに依存しない ECMAScript (JavaScript) テクノロジとダイナミック HTML (DHTML) テクノロジを組み込んだクライアント スクリプト ライブラリが用意されており、これらのライブラリが ASP.NET 2.0 サーバー ベース開発プラットフォームと統合されます。ASP.NET AJAX を使用することで、Web アプリケーションのユーザー エクスペリエンスと効率を向上させることができます。

ASP.NET AJAX は、クライアント スクリプト ライブラリとサーバー コンポーネントを統合した強固な開発フレームワークです。ASP.NET ページからサービスにアクセスする場合、サービス URL をページ上の ASP.NET スクリプト マネージャに追加すると、標準の JavaScript 関数の呼び出しとまったく同じに見える JavaScript コードを使い、サービス操作を呼び出すことができます。AJAX フレームワーク内での Web サービスの使用については、「ASP.NET Web Services in AJAX」を参照してください。

適切な ASP.NET AJAX エンドポイントを追加すると、ほとんどの Windows Communication Foundation (WCF) サービスを、ASP.NET AJAX 互換のサービスとして公開できます。

Visual Studio を使用する場合は、AJAX 対応 WCF サービス用のビルド済みテンプレートを使用できます。このテンプレートは、ASP.NET Web サイトまたは Web アプリケーションでの作業中に [新しい項目の追加] ダイアログ ボックスで選択できます。

Visual Studio テンプレートを使用しない場合、ASP.NET AJAX エンドポイントを作成するには次の 2 つの方法があります。

WCF Web プログラミング モデルの概要」で説明されている Web プログラミング モデルは、ASP.NET AJAX サービスと共に使うことができます。具体的には、次のように使用します。

  • WebGetAttribute および WebInvokeAttribute 属性を使用して、HTTP GET 動詞と HTTP POST 動詞のいずれかを選択できます。正しく使用すれば、アプリケーションのパフォーマンスを大幅に向上させることができます。詳細な情報については、次のページを参照してください。 「方法 : ASP.NET AJAX エンドポイントのために HTTP POST または HTTP GET を選択する」を参照してください。
  • ResponseFormat および ResponseFormat プロパティを使用して、サービスが返すデータを、既定の JSON (JavaScript Object Notation) ではなく XML データにすることができます。これを ASP.NET AJAX フレームワークで行うと、JavaScript クライアントは XML DOM オブジェクトを受け取ります。
  • ASP.NET AJAX との互換性が必要な場合、WebGetAttribute および WebInvokeAttribute 属性の他の属性は変更できません。ASP.NET AJAX 呼び出し規約に違反しない限り、Web プログラミング モデルのその他の機能を使用できます。

より高度なシナリオでは、WCF での AJAX サポートについて、他にいくつかの詳細な事項を理解する必要があります。

  • JavaScript を使用して AJAX ページ クライアントと WCF サービス間でデータを転送する方法と、.NET Framework の型を JavaScript の型に割り当てる方法の詳細については、「JSON などのデータ転送形式のサポート」を参照してください。
  • たとえば、URL ベースの認証や ASP.NET セッション情報へのアクセスなどの ASP.NET 機能を活用するには、構成で ASP.NET 互換モードを有効にします。

WCF の AJAX エンドポイントは、ASP.NET AJAX フレームワークなしで使用できます。これを行うには、WCF での AJAX サポートのサポート アーキテクチャに関する知識が必要です。このアーキテクチャについては、「WCF Web プログラミング オブジェクト モデル」を参照してください。この方法を実行するコード例については、「AJAX Service with JSON and XML Sample」を参照してください。

関連項目

タスク

方法 : 構成を使用せずに ASP.NET AJAX エンドポイントを追加する
方法 : 構成を使用して ASP.NET AJAX エンドポイントを追加する
方法 : ASP.NET AJAX エンドポイントのために HTTP POST または HTTP GET を選択する

その他の技術情報

Web プログラミング モデル