Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

ASP.NET AJAXでリッチクライアントWebアプリケーションを作成する(後編)

コーディング不要で既存資産もAJAX化 最強のAJAXフレームワーク

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/06/21 16:50

ASP.NET AJAXは、既存資産であるASP.NETとの完全な統合や .NETならではの開発効率性の高さなど、多くの特徴を備えた完成度の高いフレームワークです。後編では、ASP.NET AJAXのアーキテクチャや、コアとなるASP.NET AJAX Extensions 1.0の使用方法を紹介します。

目次

はじめに

 昨今のリッチクライアントブームにより、多くのAJAXフレームワークが登場してきました。例えば、Javaユーザー向けの「Google Web Toolkit(GWT)」(グーグル)、Webデザイナー向けの「Spry Framework for AJAX」(アドビシステムズ)などが挙げられます。そして、.NETユーザー向けにリリースされたのが「ASP.NET AJAX」(コードネーム:Atlas)です。他のAJAXフレームワークとは違い、既存資産であるASP.NETとの完全な統合や .NETならではの開発効率性の高さなど、多くの特徴を備えた完成されたフレームワークです。

 後編である本稿では、リッチクライアント分野で高い開発力を持つインフラジスティックスが、ASP.NET AJAXのアーキテクチャや、コアとなるASP.NET AJAX Extensions 1.0の使用方法を紹介します。「AJAX」や「ASP.NET AJAX」についての基礎知識については、前編を参照してください。

対象読者

 本稿は、次のような方を対象としています。

  • HTTP、ASP.NET、JSPなどのWeb技術を使用して開発したことがある方
  • AJAXやASP.NET AJAXについて興味がある方

必要な環境と準備

  • Visual Web Developer 2005 Express Edition、もしくはVisual Studio 2005
  • ASP.NET AJAX Extensions 1.0

 ASP.NET AJAXをインストールするには、マイクロソフトのASP.NET AJAXサイトで [Download] アイコンをクリックすると、[ASP.NET AJAX Downloads] ページが表示されるので、[Download ASP.NET Extensions v1.0] ボタンをクリックしてファイルをダウンロードします(図1)。

図1 ASP.NET AJAX 1.0ダウンロードサイト
図1 ASP.NET AJAX 1.0ダウンロードサイト

 ローカルディスクに「ASPAJAXExtSetup.msi」ファイルを保存したら、ダブルクリックし、ダイアログの指示に従ってインストールします。

 「ASP.NET AJAX 1.0」は、デフォルトでは「C:\Program Files\Microsoft\ASP.NET\ASP.NET 2.0 AJAX Extensions」フォルダにインストールされます。

ASP.NET AJAXとは

 ASP.NET AJAXは、マイクロソフトによって開発されたASP.NET 2.0用のAJAX拡張フレームワークであり、AJAXスタイルのブラウザアプリケーション開発の生産性を最大限にまで高めるためのプラットフォームです(図2)。

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

 ASP.NET AJAXには次のような特徴があります。

  • 完全なクロスブラウザとクロスプラットフォーム
  • よりスムーズなユーザー体験のための非同期アクセス
  • より良いユーザーインターフェイスとカスタマイズのためのAJAXコントロール
  • Webサービスへのアクセスが容易
  • Visual Studioでの開発やデバッグが可能
  • WindowsやOfficeへの直接アクセスを可能にするAPIを公開

 AJAXの短所であったクロスブラウザの解消や、JavaScriptでのコーディングが必要であった非同期アクセスや各処理に対するコントロールを豊富に提供しているため、JavaScriptを使用せずに(さらにはコーディングなしに)、容易にAJAXアプリケーションを開発できます。さらにVisual Studio上で開発やデバッグが行える点もAJAXを扱う上で大きなメリットとなります。

 ASP.NET AJAXには以下の技術が含まれています。

  • ASP.NET 2.0 AJAX Extensions
  • ASP.NETのAJAX拡張コントロールであり、ASP.NET AJAXのコアとなります。サーバーサイドのAJAX処理を作成する場合に必要です。
  • Microsoft AJAX Library
  • マイクロソフトが開発したクライアントサイドのAJAXコンポーネント群です。JavaScriptで作成されているため、.NET以外の言語でも使用することができます。
  • ASP.NET AJAX Control Toolkit
  • ASP.NET AJAXにおけるカスタマイズ可能なコントロール群です。今なおコントロールは増えており、執筆時点(2006年6月18日)では38種類のコントロールが存在します。
  • ASP.NET Features
  • まだ正式リリースされていない機能の総称です。この中に、ASP.NET用のSilverlightコントロールや動的データコントロール、動的言語コントロールなどが含まれています。

ASP.NET AJAXでの開発

 ASP.NET AJAXは開発時は「Atlas」と呼ばれ、サーバコントロールも<atlas:>となっていたのですが、正式リリースされた際に「ASP.NET AJAX」となり、サーバコントロールも<asp:>となりました。これが何を意味するかと言うと、ASP.NET AJAXはASP.NETと異なるアーキテクチャではなく、ASP.NETの一部のテクノロジーとして定義されたということになります。現に、.NET Framework 3.5では標準的に含まれる予定です(2006年6月18日現在)。

 ASP.NET AJAXの最終的な目的は、「ASP.NET Webアプリケーションを簡単に強化」することであり、それらを実現することで以下のメリットが生まれました。

  • AJAX技術の使用による通信負荷の軽減
  • 全ページリフレッシュを回避し、ページ更新を付加的に実行(例えば、データのナビゲーション、フォームバリデーション、オートリフレッシュなど)。
  • 既存のASP.NETコントロールをAJAXに拡張可能
  • 既知と同じコントロール、オブジェクトモデル、イベントをAJAX化。
  • ASP.NET AJAXクライアントコントロールのためのサーバラッパー
  • JavaScriptや非同期プログラミング習得の必要性を回避

 ASP.NET AJAXを使用した開発の場合、サーバサイドのASP.NET 2.0 AJAX ExtensionsとASP.NET Control Toolkit、クライアントサイドのMicrosoft AJAX Libraryによって、ASP.NETの適用範囲がクライアントサイドまで拡大することになります(図3)。これは、ASP.NETにおけるUI開発がより柔軟になったということを意味し、さらなるユーザー体験の向上を実現します。

図3 ASP.NET AJAXアプリケーションモデル
図3 ASP.NET AJAXアプリケーションモデル

サーバコントロール

 コアとなるASP.NET 2.0 Extensionsには、それぞれ以下のコントロールが存在します(図4)。

図4 ASP.NET 2.0 Extensionsサーバコントロール
図4 ASP.NET 2.0 Extensionsサーバコントロール
  • ScriptManager
  • ASP.NETページ上でASP.NET AJAXコンポーネント、部分的なレンダリング、クライアントリクエストやサーバレスポンスを管理します。
  • ScriptManagerProxy
  • 既に親要素(例えば、マスターページやユーザーコントロール)がScriptManagerコントロールを含んでいるページに、ネストされたコンポーネントがスクリプトとサービスの参照を追加することを可能にします。
  • UpdatePanel
  • Webページを全ページリフレッシュせずに更新することが可能な領域に分割します。
  • UpdateProgress
  • ポストバック中のアイコン表示の変更を可能にします。
  • Timer
  • 一定間隔でポストバックを実行するクライアントベースのタイマーを作成します。

 次からは、各コントロールを一部サンプルも交えて紹介したいと思います。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 松原 晋啓(マツバラ ノブアキ)

    アーティサン株式会社 取締役副社長兼CRM事業部長(CRMエバンジェリスト) SE、アーキテクト、コンサルタント、エバンジェリスト(Microsoft MVP for Dynamics CRM)、マイクロソフトのソリューションスペシャリスト(Dynamics CRM製品担当)を経て、現在はDy...

バックナンバー

連載:ASP.NET AJAXでリッチクライアントWebアプリケーションを作成する
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5