これまでは「Windows Presentation Foundation (WPF)」,「Silverlight」とどちらかというと新しく誕生したテクノロジに焦点を当ててきました。今回の「ASP.NET AJAX」は名前から推測できるように,既存のテクノロジ 「ASP.NET」 を Ajax 対応にしたテクノロジとなります。使用方法や言語構文などは ASP.NET と同じですので,比較的容易に活用できるのではないでしょうか。

APS.NET AJAX とは

 ASP.NET AJAX は,よりリッチでインタラクティブ(双方向)な Web アプリケーションを構築するためのAjaxフレームワークです。従来の ASP.NET は,同期通信であったため,イベントを発生させてフルポストバックすることでデータや画面の更新をしていました。Ajax を取り入れることで非同期通信という選択肢が増え,部分ポストバックが実現可能となったことで,リアルタイムなデータや画面の更新が可能となりました。そのため,ユーザーから見た場合,Windows アプリケーションのような双方向コミュニケーションとなるため,ユーザー・エクスペリエンスが向上します。

 ASP.NET AJAX は ASP.NET をベースとした技術であるため,以下のような特徴を備えています。

AJAX スタイルのブラウザ・アプリケーションのための高生産性なプラットフォーム
 ASP.NET AJAX は,ブラウザベース・アプリケーションのためのスクリプト・コンポーネントを含み,AJAX 開発を容易にするコンポーネント,コントロール,ビヘイビアを持つ,豊富な UI フレームワークです。

マイクロソフトのプラットフォームとシームレスに統合
 ASP.NET をベースとしているため,マイクロソフトのプラットフォームとの親和性が高く,また ASP.NET のサービスやコンポーネントを容易に利用できます。

ユビキタスで容易なデプロイを提供
 ASP.NET AJAX は,Dynamics HTML,JavaScript,CSSなどWebの標準技術をベースとしているため,Internet Explorer,Firefox,Safari などの主要な Web ブラウザで動作し,あらゆるプラットフォームで実行できます。

Ajaxアプリケーションのための高機能な統合開発環境
 ASP.NET AJAX 用に,デバッグやトラッキングなどのツールを備えた新しい開発環境(Visual Studio 2008=現在開発中)が用意されています。また,ユーザーエクスペリエンス・テクノロジであるため,開発者とデザイナの分業を実現するデザイン環境(Expression Web)も用意されています。

ASP.NET AJAXのアーキテクチャ

 ASP.NET AJAX には,クライアントサイド(Microsoft AJAX Library)とサーバーサイド(ASP.NET 2.0 AJAX Extensions)の二つのアーキテクチャが存在します。(図1

図1●ASP.NET AJAX アーキテクチャ

Microsoft AJAX Library
 Ajax を制御するためのASP.NET AJAX におけるコアテクノロジです。ASP.NET 2.0 AJAX Extensions が Ajax 技術を使用するためのテクノロジであり,包括的に使用されているため,ASP.NET AJAX を活用するうえでは意識する必要はありません。ただ,Microsoft AJAX Library 自体は JavaScript で作成されたスクリプト・ライブラリであるため,それぞれを個別に使用することが可能です。また,JavaScript ベースであるため,他のテクノロジ(JSP や PHP など)でも使用できます。

ASP.NET 2.0 AJAX Extensions
 ASP.NET 2.0 (*1) を AJAX 対応に拡張するためのサーバーコントロールです。そのため,ASP.NET 2.0 AJAX Extensions 単体では動作しません。ボタンやリストボックスなどは ASP.NET 2.0 のコントロールを使用することになり,それらのポストバック動作を非同期で処理します。AJAX が使用可能になったことで実現できるようになったコントロールについては,後述する ASP.NET AJAX Control Toolkit や ASP.NET Features に含まれております。

開発のシナリオ

 ASP.NET AJAX を利用するWebアプリケーションでは,二つの開発シナリオが考えられます。これらを活用することでWeb アプリケーションの幅がより広がるでしょう。

サーバー中心の Ajax 開発
 ASP.NET 2.0 AJAX Extensions を使用した通常の AJAX アプリケーションと同様のアプローチ。JavaScript コードを書かなくてもアプリケーションを Ajax 化することができ,現在の ASP.NET で記述された Web アプリケーションの UI や VB.NET,C# で記述されたアプリケーションロジックをそのまま流用することが可能です。

クライアント中心の Ajax 開発
 Microsoft AJAX Library を使用した JavaScript / DHTML アプリケーションのアプローチ。.NET とは関係なしに JavaScript フレームワークとして,スクリプトや DHTML の機能をフルに利用することが可能。マッシュアップやガジェットなどのリッチでインタラクティブな新しいエクスペリエンスの構築を実現できます。

 ASP.NET AJAX テクノロジを活用すれば,上記二つの開発シナリオを活用できますが,本来 ASP.NET AJAX はサーバーサイド・テクノロジです。そのため,本記事もサーバーサイド・テクノロジについて解説します。

 ASP.NET AJAX での開発におけるサーバー中心アプリケーションのモデルは図2のようになります。

図2●ASP.NET AJAX におけるサーバー中心アプリケーション・モデル