印刷用ページ      送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
AJAX アプリケーションと ASP.NET "Atlas" を理解する

イントロダクション

AJAX (Asynchronous JavaScript and XML) は、Web アプリケーション開発のための、クロス プラットフォーム、クライアント中心アプローチとして表現できます。 AJAX において、開発者は、クライアント スクリプトを使って開発し、XML ベースのプロトコル使って、Web サーバー アプリケーションと非同期コールを行います。新しい ASP.NET 技術 (開発コード名 "Atlas") は、マイクロソフトの技術をパッケージ化したものであり、AJAX アプローチを適応し拡張したものです。

このトピックでは、Web アプリケーション開発の課題に対して、AJAX がどのように解決するかを記載し、AJAX の基本コンセプトを説明します。また、ASP.NET "Atlas" を、意義深い革新と AJAX アプローチの改善として紹介します。

AJAX によって解決できる開発の課題

ユーザーと開発者は、Web アプリケーションで使用されている典型的なリクエスト - レスポンスモデルの限界を経験しています。なぜなら Web アプリケーションは Web ページ内のデータやユーザーインターフェイス (UI) が変更される都度、すべてのページは更新のためにサーバーへ保存する必要があります。これはページのラウンドトリップを発生させます。特に巨大なデータを伴う場合のクライアントとサーバー間の通信は、ユーザーは長時間待たなくてはなりません。

別の課題として、デスクトップ アプリケーションなどのリッチな UI と比較すると、Web ブラウザの HTML コントロールは能力が限定されています。そのため多くのブラウザでは、HTML コントロールへの改善を行っています。しかし、これらの改善も、ブラウザ固有の方法で実装されている場合が多くみられます。それゆえに、HTML コントロールの改善を活かした、リッチな UI を作成する場合、Web 開発者は、ブラウザ固有のアプリケーションを開発しなければなりません。この作業は複雑であり、多くの開発者は、Web アプリケーション内にクライアントベースの機能を構築することを避けたがります。結果として、ユーザーはその他の種類のアプリケーションより Web アプリケーションに魅力を感じません。

AJAX アプローチは、これらの開発の課題の両方を解決します。

AJAX 技術コンセプト

AJAX は、次のコンセプトのコアセット上に構築(XML データ 転送とクライアント スクリプトの拡張機能を伴った非同期呼び出し)されています。

AJAX において、開発者は、XMLHTTP プロトコルを使ったクライアントから Web サービスを非同期で呼び出すことができます。XMLHTTP は、XML データとして情報をパッケージするプロトコルで、その後、ネットワーク上を転送されます。ほとんどのブラウザは、XMLHTTP クラスを実装しており、リモート コールを行い、データを送受信するための、プロキシ オブジェクトを生成するために使われます。非同期コールによって、Web ページ上のデータと UI は、ラウンドトリップすることなく、更新することができます。これは、少ないデータ転送を実現し、より優れた性能を持つアプリケーションを構築できます。非同期コールはまた、アプリケーションを制御しやすくし、ユーザーはコールを実行中でも、ブラウザ内で操作を継続することができます。

AJAX の他の機能として、クライアントサイト スクリプト(JavaScript (ECMAScript) )の拡張使用があります。JavaScript はリモート プロシジャ コールを実行するために使用され、クライアント サイトでアプリケーション処理を実行して(逆の場合は、サーバー上でハンドリングする)、改善された UI 機能を作成します。

AJAX ソリューションは、次のいくつかのクライアント技術とともに JavaScript を組み合わせて使用します。

  • ブラウザの Document Object Model (DOM) : プログラムで操作できるドキュメント、ウィンドウなどの標準セットのオブジェクトとして HTML 上の要素を公開。

  • Dynamic HTML (DHTML) : ラウンドトリップなく、クライアント スクリプト上でユーザー入力に応答するための HTML の拡張。

  • ビヘイビア : ベージ要素と一緒に使われる UI アクションをプログラムでパッケージするための方法。

  • コンポーネント : カスタム JavaScript オブジェクトで、拡張したクライアント サイドの UI 機能を提供します。

これらのクライアントサイドの技術と組み合わせた JavaScript は、開発者がデスクトップアプリケーションの機能に対抗できるレベルの機能をもった UI を Web アプリケーションで開発することができます。AJAX スタイルのアプリケーションで、2 種類の良い例があります。マイクロソフトの Virtual Earth サイト と マイクロソフトの Outlook Web Access e-mail クライアント です。どちらのアプリケーションも、このアプローチで構築された典型的なアプリケーションの例であり、拡張 UI と高い性能を示します。

しかしながら、AJAX アプリケーションを構築するための技術は、とても複雑です。最近まで開発者は、手動でイベント ハンドリング、メッセージング、その他の拡張 UI のための詳細を作成する必要がありました。さらに、JavaScript は、オブジェクト指向プログラミング (OOP) ではないので、強力なタイピング、ネームスペース、例外ハンドリング、その他の OOP 機能をもちません。開発者は、他の言語なら含まれるようなこれらの機能を、自身のインフラ コードとして書く必要がありました。

ASP.NET "Atlas" は新しいアプローチを提供

「AJAX アプリケーションのパワーをどのように利用するか」この質問に対するマイクロソフトの回答は ASP.NET "Atlas" です。ASP.NET "Atlas" は、AJAX の能力のすべてを提供しながら、しかも、コンセプトを拡張し、AJAX 開発における複雑性を軽減します。

クライアント サイドでは、"Atlas" は、次の機能を提供するスクリプトのライブラリを提供します。

  • オブジェクト指向開発 : クライアント ライブラリ群は、JavaScript に対して、たとえば、タイプシステム、データ型、ネームスペース、イベントなどのオブジェクト指向の機能を追加しています。これらの機能は、慣れ親しんだプログラミングモデルを提供し、品質の高い、管理可能な、そして再利用できるコードを書くことを可能にします。

  • ブラウザ互換性 : これらのライブラリは、ブラウザの互換性を自動的にハンドリングし、ブラウザ固有のスクリプトを記載する必要性をなくします。

  • ビヘイビアとクライアント コンポーネント : これらのライブラリは、共通に使用されるビヘイビアが含まれます。これらは、auto-completion、ドラッグ アンド ドロップ、ポップアップ、マウスハバリングなどを含みます。このライブラリはまた、データにバウンドするコンポーネントも追加し、データ ドリブンなビジネス アプリケーションの作成を簡素化することができます。

  • リモート プロシジャ コールをハンドリングするコード : これらのライブラリは、XMLHTTP 上の非同期コールを作成する複雑さや、スクリプトコードの数行のコールを軽減する複雑さを管理します。

  • 宣言方プログラミングモデル : これらのライブラリによって、ASP.NET サーバー コンポーネントを作成することと同様な宣言方のシンタックスを使った "Atlas" コンンポーネントを作成可能です。

"Atlas" はまた、サーバー コンポーネントも含んでおり、"Atlas" クライアント スクリプト ライブラリ群を補完するサーバー上の拡張機能セットを提供します。その他 "Atlas" サーバー コンポーネントは次を含みます。

  • Web サーバー コントロール : これらの ASP.NET サーバー コントロールは、"Atlas" の機能を使うクライアント スクリプトを生成します。これは、サーバー側の開発を知っている場合や "Atlas" クライアント スクリプトを手動で作成しない場合、とても有効です。

  • Web サービス : ASP.NET Web サービスがあります。たとえば、"Atlas" アプリケーションに有効なサーバーサイド機能を付け加える ASP.NET プロファイルです。

© 2008 Microsoft Corporation.All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker