「ASP.NET 2.0 AJAX Extensions 1.0(以降,ASP.NET AJAX)」は2007年1月24日に,マイクロソフトが無償提供を開始したAjax対応フレームワークです。同社の統合開発ツールVisual Studio 2005で利用でき,サーバーサイド処理環境であるASP.NET 2.0環境で動作します*1

 ASP.NET AJAXについて説明する前に,まずフレームワークを利用しないでAjaxアプリケーションを実装する場合の問題点をおさらいしておくことにしましょう。

(1)クロスブラウザ問題

 クロスブラウザ問題とは,ブラウザ間の仕様差によって発生する挙動の違いのことを言います。例えば,Internet Explorer(6以前)とそれ以外のブラウザにおけるXMLHttpRequestオブジェクトの違いなどは,クロスブラウザ問題の典型的な例です。

(2)DOMによるコードは冗長になりやすい

 クライアントとサーバー間で構造データをやり取りしたい場合によく利用するのがXML(Extensible Markup Language),XMLで書かれた文書を処理するためのAPIがDOM(Document Object Model)です*2。DOMはXML文書処理のための強力なAPIですが,ちょっとした処理を記述するにも回りくどく,冗長になりやすいという難点があります。

 これらの問題点を解決するために登場したのが,Ajax対応フレームワークです。Ajax対応フレームワークとは,その名の通り,Ajaxプログラミングを効率化するための機能を備えたクラスライブラリやフレームワークのことで,ASP.NET AJAXはその一つです。

クライアント・フレームワークとサーバー・フレームワークで構成する

 ASP.NET AJAXは大きくクライアント・フレームワーク/サーバー・フレームワークに分類できます(図1)。クライアント・フレームワークは,さらに「ブラウザ互換層」「スクリプトコア」「基本クラスライブラリ」に分類できます。

図1●ASP.NET AJAXの構成
図1●ASP.NET AJAXの構成

 ブラウザ互換層とは,その名の通り,ブラウザごとの実装の違いを吸収するための仕組みを提供するものです。スクリプトコアは,JavaScriptの型システムを管理します。具体的には,名前空間,継承,インタフェースなどの仕組みを提供するレイヤーで,これによってJavaScriptで .NET Frameworkに似たコーディングが可能になります。基本クラスライブラリは,DebugやTraceのような .NET Frameworkクラスライブラリによく似た基本クラス(機能)を提供します。

 サーバー・フレームワークは,ASP.NET 2.0をベースとしたサーバー拡張から構成され,ブリッジ機能とサーバー・コントロールに分類されます。ブリッジは,Webサービスやメンバシップフレームワーク(認証/プロファイル機能)など,ASP.NET 2.0が標準で提供するサービスとクライアントサイド・スクリプトがやり取りするための橋渡しを担うものです。

 サーバー・コントロールは,ページ内のコンテンツを部分的に更新するUpdatePanel,クライアントとサーバー間の通信状態を表示するUpdateProgress,一定時間置きに通信を発生するTimerなど,Ajax機能に対応した拡張コントロールを含みます。こうした拡張コントロールを利用すると,定型的なAjax機能であればJavaScriptを一切記述することなく実現できます。

ASP.NET AJAXをインストールする

 ここからは,具体的なサンプル・アプリケーションの実装を通じて,ASP.NET AJAXによる開発を体感してみることにしましょう。まずはASP.NET AJAXのインストールと環境設定の手順について紹介します。

 冒頭で紹介したように,ASP.NET AJAXはASP.NET 2.0上で動作するフレームワークです。あらかじめ「.NET Framework 2.0」「SQL Server 2005 Express Edition」をインストールしておく必要があります。これらソフトウエアは,個別にインストールしても構いませんが,統合開発環境であるVisual Studio 2005(あるいは無償で提供されているVisual Web Developer 2005 Express Edition*3)をインストールすることで,まとめて導入できます*4

 ASP.NET AJAXのセットアップ・ファイルは,「ASP.NET AJAX」サイトからダウンロードできます。ASP.NET AJAXで提供されているパッケージは表1の通りですが,ASP.NET AJAXの基本的な機能を利用する場合は,ASP.NET 2.0 AJAX Extensions 1.0だけをインストールしておけば良いでしょう。ダウンロードしたASPAJAXExtSetup.msiをダブルクリックするとインストーラが起動しますので,指示に従って次に進めてください*5

表1●ASP.NET AJAXで提供されるパッケージ
表1●ASP.NET AJAXで提供されるパッケージ

 途中,何カ所かオプションの選択を求められる個所がありますが,デフォルトのままで問題ないでしょう。インストールが成功すると,「C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v<バージョン番号>」フォルダにASP.NET AJAXの動作に必要な一連のファイルが作成されます。そしてVisual Studio 2005のテンプレートには,ASP.NET AJAX対応アプリケーションを作成するための「ASP.NET AJAX-Enabled Web Site」が追加されます。

 ASP.NET AJAX対応のアプリケーションを作成するには,Visual Studio 2005のメニューバーから[ファイル]-[新しいWebサイト...]を選択してください。[新しいWebサイト]ダイアログ(図2)が表示されるので,テンプレート欄から「ASP.NET AJAX-Enabled Web Site」を選択し,サイトの保存場所を指定したうえで[OK]ボタンをクリックします。アプリケーションの骨格が自動作成され,ソリューションエクスプローラからは,図3のようにアプリケーション作成に必要なファイルが配置されているのを見ることができます。一見,通常のASP.NETアプリケーションと同様のファイル構成にも見えますが,アプリケーション構成ファイル(Web.config)の内容を見ると,ASP.NET AJAXをアプリケーション上で利用するための構成要素が追加されていることがわかります。

図2●「新しいWebサイト」ダイアログ
図2●「新しいWebサイト」ダイアログ
[画像のクリックで拡大表示]
図3●「ASP.NET AJAX-Enabled Web Site」テンプレートによるデフォルトの構成
図3●「ASP.NET AJAX-Enabled Web Site」テンプレートによるデフォルトの構成