はじめに
ASP.NET AJAXはASP.NETの開発スタイルをそのままに、ASP.NETアプリケーションをAJAXで拡張することができるフレームワークです。ASP.NETの開発者は、Visual Studioの高い開発生産性の恩恵を受けながら、今まで敷居の高かったAJAXアプリケーションを簡単に開発できるようになりました。
ASP.NET AJAX 4.0ではJavaScriptのライブラリが強化され、今まで以上に高品質、高性能なAJAXアプリケーションの開発が可能になります。本連載では前後編にわたりASP.NET AJAX 4.0の概要を紹介していきます。
前編に当たる今回は、ASP.NET AJAXの振り返りとその問題点、ASP.NET AJAX 4.0の概要、新機能のテンプレートとバインディングについて解説します。
なお、この記事は現在公開中であるVisual Studio 2010 Beta1に含まれるバージョンのASP.NET AJAX 4.0を基に記述しています。将来リリースされるASP.NET AJAX 4.0とは一部仕様の異なる記載がある可能性がありますので注意してください。
対象読者
- ASP.NET AJAXで開発を行ったことのある人
- ASP.NET AJAXに興味がある人
ASP.NET AJAX 最新版の入手先
ASP.NET AJAX 4.0は3つのJavaScriptライブラリから構成されています。
Visual Studio 2010を利用する場合はASP.NETにあらかじ組み込まれたJavaScriptを利用できますが、ASP.NETのほかのバージョンやASP.NET以外から利用する場合はMicrosoftのオープンソースプロジェクトホストであるCodePlexのウェブページからダウンロードしてJavaScriptの参照設定を行う必要があります。
Visual Studio 2010 Beta1に含まれるASP.NET AJAXとCodePlexのPreview4の差分をとると細かい部分で異なりますが、大きな機能の違いはありません。
ASP.NET AJAX振り返り
まずは最新のASP.NET AJAX 4.0に触れる前に、これまでのASP.NET AJAXを振り返っておきましょう。
ASP.NET AJAX
ASP.NET AJAXはASP.NET 2.0(Visual Studio 2005)の追加機能としてリリースされ、ASP.NET 3.5(Visual Studio 2008)のリリースと合わせてASP.NETに統合されたASP.NETのAJAX拡張機能です。図1にこれまでのASP.NETとASP.NET AJAXのバージョンの対応を示します。
ASP.NET AJAXには次のような特徴があります。
- ASP.NETのポストバックモデル開発をそのまま利用したAJAX開発
- Extenderによる既存コントロールの拡張
- Microsoft AJAX Libraryによるクライアントスクリプトの拡張
- ASP.NET WebServiceとの簡単な連携
- ASP.NET AJAX Control ToolkitによるExtenderの提供
この中でASP.NET AJAX Control Toolkitはオープンソースプロジェクトからの提供となるため、純粋にはASP.NET AJAXの特徴とはいえませんがAJAX開発の際には非常に重要なライブラリ群です。
ASP.NET AJAXはこれらの特徴により既存のASP.NETの開発手法を崩すことなく、ASP.NETのページをAJAXに対応したインタラクティブなものに変更することができました。
ASP.NET AJAX 4.0でも既存開発のノウハウはそのまま利用できます。ASP.NET AJAXの以前のバージョンについての詳しい内容については次の記事を参照してください。
- 触ってみようASP.NET 2.0 AJAX Extensions(CodeZine)
- Visual Studio 2008で進化するASP.NET 3.5の開発手法(CodeZine)
もうひとつのJavaScriptライブラリ
ASP.NET AJAXのクライアントライブラリであるMicrosoft AJAX Libraryは、ASP.NETのサーバーサイドAJAXと効率よく通信を行う機能を持ち、クロスブラウザ対応のきわめて単純なDOM操作を行うための軽量なJavaScriptライブラリです。
後述するテンプレートやバインディングは強力ですが、現在のMicrosoft AJAX LibraryだけでクライアントサイドのAJAX対応ページのコーディングをするには、少々力不足が否めません。
ASP.NET 3.5 SP1以降ではこの欠点を補うために、UI要素の操作を得意とするオープンソースのJavaScriptライブラリである「jQuery」のサポートが正式に追加されました。
ASP.NETのjQueryサポートに関しては、次の記事を参照してください。
UpdatePanelを利用した開発の注意点
UpdatePanelコントロールが提供するASP.NETの拡張はきわめて簡単でパワフルなものですが、送受信されるデータの観点で注意が必要です。たとえば住所録の登録などで、郵便番号を基に住所を検索する画面があったとします。
UpdatePanelを利用した開発では図2のように、検索に必要な郵便番号の他にページに配置されたすべてのフォームの値やViewStateといったデータを送信し、描画対象の部分的な表示用HTMLとViewStateを受信しているため、非効率なやりとりを行っています。
![図2 UpdatePanelによるAJAXの処理順序](http://cz-cdn.shoeisha.jp/static/images/article/4170/slide2_s.gif)
このようにUpdatePanelを利用した開発は、ブラウザの要求をサーバー側で非同期に処理し、ビジネスロジックや表示用HTMLといった結果を返す「サーバーサイドのAJAX」ということができます。