ASP.NET モバイル Web 開発の概要
更新 : 2007 年 11 月
モバイル デバイス用ブラウザのための ASP.NET ページの開発は、デスクトップ ブラウザ用のページの開発とそれほど大きな違いはありません。モバイル デバイス用のアプリケーションの作成を支援するために、ASP.NET はモバイル Web 開発に特化した System.Web.Mobile 名前空間を提供します。
Web ページは MobilePage 基本クラスから作成し、コントロールは System.Web.Mobile 名前空間から追加できます。この名前空間は、携帯電話などのさまざまなモバイル デバイスで使用できるアプリケーションを作成する際に特に便利な一連の Web サーバー コントロールとアダプタを定義します。
ASP.NET 2.0 は、ASP.NET 2.0 Web サーバー コントロール用のカスタムのデバイス アダプタを使用するためのコントロール アダプティブ アーキテクチャも提供します。この種のアダプタは、要求元のブラウザに基づいたコントロールのためのカスタム レンダリングを生成できます。アダプティブ アーキテクチャを使用して、ASP.NET Web サーバー コントロールのカスタム アダプタを作成し、デスクトップ ブラウザのアプリケーションにアクセスするデバイスに固有の出力をレンダリングします。
デスクトップ ブラウザとモバイル デバイスのどちらの開発の場合も、開発モデルはアプリケーションがユーザーの要求、ボタンのクリックなどに応答する標準の .NET イベント ドリブン モデルに従います。
モバイル アプリケーションのアーキテクチャ
ASP.NET では、モバイル Web アプリケーションの開発が従来の Web アプリケーションの開発と同じパラダイムに従うようにテクノロジを統合していますが、アーキテクチャの主要な目的はデスクトップとモバイル デバイスの両方のブラウザを対象とする単一のページを作成することではありません。多くの場合、モバイル デバイスのブラウザの制約とは、デスクトップ ブラウザ用にデザインされたページをモバイル デバイス ブラウザ用に変換できないことです。
たとえば、サイト ヘッダーを含む ASP.NET Web ページを作成すると、ページの最上部に表示されるナビゲーション バー、ページの側面に表示される 2 番目のナビゲーション構造、およびページの残りの部分に表示されるコンテンツがデスクトップ ブラウザ用にレンダリングされます。そのような場合、通常はすべてのコントロールをレンダリングし、さらにスクロール可能なコンテンツ領域を表示するために十分な領域を確保できます。ただし、多くのモバイル デバイスのブラウザでは、このレイアウトは不可能です。多くのモバイル デバイスの画面はデスクトップ モニタより小さいため、ナビゲーションに複数回の操作が必要になり、ユーザーはページのコンテンツを表示するだけのためにコントロールを数回クリックしなければならなくなります。
プレゼンテーション ロジックも同様のパターンに従います。たとえば、デスクトップ ブラウザを使用して Web フォームに入力すると、画面に多くのコントロールが表示されます。フォームがサーバーで検証されると、検証エラーがコントロールの横に表示されます。モバイル デバイスでは、フォームの入力と検証を使いやすい形式で表示することがはるかに困難です。さらに、モバイル デバイスでは簡単に入力できない場合があるため、より少ない入力で情報を入力するためのショートカットを提供することも必要です。
このような理由により、ASP.NET Web アプリケーションでデスクトップとモバイル デバイスのブラウザ用に個別のページを作成する必要があります。モバイル デバイスのブラウザ専用のページを作成することにより、デバイスの表示領域と入力ハードウェアに合わせて、プレゼンテーション ロジックをより小さい部分に分割できます。
モバイル Web サーバー コントロール
ASP.NET 2.0 System.Web.Mobile 名前空間は、モバイル Web 開発専用です。モバイル Web ページは MobilePage 基本クラスから作成し、モバイル Web サーバー コントロールは System.Web.Mobile 名前空間から追加します。モバイル Web サーバー コントロールには .NET フレームワークに一連の専用アダプタがあるため、さまざまなモバイル デバイスを対象にするモバイル Web アプリケーションの開発に特に適しています。
ASP.NET Web サーバー コントロールとアダプタ アーキテクチャ
ほとんどの ASP.NET 2.0 Web サーバー コントロールは、統合されたアダプタ アーキテクチャに準拠します。つまり、すべてのコントロールは、要求元のデバイスによって動作が異なります。これは、適切なマークアップ言語を作成するなど、各デバイスに適した動作を提供するカスタム アダプタを呼び出すことによって実現します。ブラウザ定義ファイルでアダプタを要求元のデバイスまたはブラウザ用に構成すると、ASP.NET は Web サーバー コントロールのライフサイクルの該当する段階でアダプタを呼び出します。たとえば、アダプタはレンダリングされた出力を調整し、デバイス固有のビューステート ロジックやデバイス固有の特性を処理できます。ブラウザ定義ファイルは、.NET Framework Config ディレクトリの Browsers フォルダまたは Web アプリケーションの App_Browsers フォルダにあります。
ASP.NET コントロール用に用意されているアダプタは現在ありません。ただし、ASP.NET モバイル コントロール用には豊富なアダプタがあり、多様なデバイスとブラウザに対応しています。
カスタム アダプタは各デバイスに対して作成でき、ASP.NET ページ フレームワークは特定のデバイスがページにアクセスしたときにアダプタを使用できます。詳細については、「アダプティブ コントロール動作のアーキテクチャの概要」を参照してください。
カスタム アダプタとモバイル コントロールの選択
モバイル デバイスを対象にしたページの場合、モバイルの Web サーバー コントロールを使用し、MobilePage から継承したページを作成します。このコントロールは、携帯電話などの多くのモバイル デバイスをサポートします。ASP.NET には、一般的な Web 開発とモバイル固有のニーズを満たすための各種のモバイル Web サーバー コントロールが含まれます。さらに、主なデバイスおよびそのマークアップ言語のためのモバイル コントロール デバイス アダプタが既に用意されています。
マイクロソフトは、マークアップ言語の主要な更新の際に、モバイル Web サーバー コントロールのアダプタの更新プログラムを継続的に提供します。これによって、使用しているコントロールと同じコントロールによって新しいマークアップ言語をサポートできます。たとえば、デスクトップ ブラウザおよび各種のモバイル デバイスをサポートする e コマース サイトを作成する場合、Page クラスから継承する一連の ASP.NET ページ、および MobilePage 基本クラスから継承し、モバイル コントロールを使用する一連のページを個別に作成します。
この処理が必要な場合、カスタム アダプタを作成するか、新しいデバイスが Web サーバー コントロールの新しい動作要件を決定する既存のアダプタを変更します。
ASP.NET Web サーバー コントロールを使用し、カスタム アダプタを記述する方法が適している場合もあります。これには、機能が豊富で、多様なブラウザの動作を必要とするデスクトップ ブラウザ用のアプリケーション、モバイル コントロールおよびその一連の機能が保証されていない機能が制限されたデバイス クラスを対象とするアプリケーションが含まれます。たとえば、社内で使用するブラウザベースのインターフェイスと出先で使用するリッチ デバイス インターフェイスを含む保険金請求アプリケーションを作成するとします。このアプリケーションには、通常のページとリッチ デバイスのページに同じ基本クラスのページを使用できます。その後に、出先で使用するデバイス専用のカスタム アダプタを作成する必要があります。