ASP.NET Web ページの概要
更新 : 2007 年 11 月
ASP.NET Web ページは、Web アプリケーションのプログラミング可能なユーザー インターフェイスとして使用します。ASP.NET Web ページは、ブラウザまたはクライアント デバイスでユーザーに情報を表示し、サーバー側コードを使用してアプリケーション ロジックを実装します。ASP.NET Web ページの特徴を次に示します。
Microsoft の ASP.NET テクノロジに基づいており、サーバー上で動作するコードがブラウザまたはクライアント デバイスに対して動的に Web ページ出力を生成します。
すべてのブラウザまたはモバイル デバイスと互換性があります。ASP.NET Web ページは、スタイルやレイアウトなどの機能に対して正しいブラウザ準拠 HTML を自動的に表示します。または、Microsoft Internet Explorer 6 などの特定のブラウザで動作するように ASP.NET Web ページをデザインして、ブラウザ固有の機能を利用することもできます。
Microsoft Visual Basic、Microsoft Visual C#、Microsoft J#、Microsoft JScript .NET など、.NET 共通言語ランタイムによってサポートされているすべての言語と互換性があります。
Microsoft .NET Framework 上に構築されています。これにより、マネージ環境、タイプ セーフ、継承などのフレームワークの利点を利用できます。
高い柔軟性。ユーザーが作成したコントロールやサードパーティ製のコントロールを Web フォーム ページに追加できます。
ASP.NET Web ページのコンポーネント
ASP.NET Web ページでは、ユーザー インターフェイスのプログラミングがビジュアル コンポーネントとロジックという 2 つの部分に分かれています。以前に Visual Basic や Visual C++ などのツールを使用したことがあれば、このようなページの可視部分と背後でページとやり取りするコードとの区別を理解できるでしょう。
可視部分は、HTML サーバー コントロールや ASP.NET サーバー コントロールなどの静的なマークアップを含むファイルで構成されます。ASP.NET Web ページは、表示する静的テキストおよびコントロールのコンテナとして機能します。
ASP.NET Web ページのロジックは、ページとやり取りするために作成されるコードで構成されます。このコードは、ページの script ブロックまたは別個のクラスに格納できます。コードが別のクラス ファイルに格納されている場合、このファイルは分離コード ファイルと呼ばれます。分離コード ファイル内のコードは、Visual Basic、Visual C#、Visual J#、または JScript .NET で記述できます。ASP.NET Web ページの構築方法の詳細については、「ASP.NET Web ページのコード モデル」を参照してください。
ASP.NET Web ページはダイナミック リンク ライブラリ (.dll) ファイルにコンパイルされます。ユーザーが最初に .aspx ページを表示したときに、ASP.NET はページを表す .NET クラス ファイルを自動的に生成し、それをコンパイルします。.dll ファイルは、サーバー上で実行され、ページに対する HTML 出力を動的に生成します。ASP.NET アプリケーションのコンパイル方法の詳細については、「ASP.NET コンパイルの概要」を参照してください。
ASP.NET Web ページを使用して実現できること
Web アプリケーションのプログラミングでは、従来のクライアント ベースのアプリケーションのプログラミングでは一般的に発生しない問題に直面します。いくつかの例を次に示します。
豊富な Web ユーザー インターフェイスの実装 基本的な HTML 機能を使用してユーザー インターフェイスをデザインし、実装するのは困難で手間のかかる作業です。特に、ページに複雑なレイアウト、大量の動的コンテンツ、完全ユーザー対話型のオブジェクトが含まれている場合には非常に面倒になります。
クライアントとサーバーとの分離 Web アプリケーションでは、クライアント (ブラウザ) とサーバーが、多くの場合には異なるコンピュータ上で (さらには、異なるオペレーティング システム上で)、異なるプログラムを実行します。その結果、アプリケーションを構成するこれら 2 つの部分は、ごくわずかな情報しか共有しません。クライアントとサーバーは互いに通信できますが、一般には、少量の単純な情報だけを交換します。
状態を持たない実行 Web サーバーは、ページに対する要求を受け取ると、そのページを探して処理し、ブラウザに送信した後、すべてのページ情報を破棄します。ユーザーが再び同じページを要求した場合、サーバーは同じシーケンス全体を繰り返し、ページを最初から再処理します。言い換えれば、サーバーは以前に処理したページに関する情報を記憶していません。つまり、ページは状態を持ちません。したがって、アプリケーションがページに関する情報を保持する必要がある場合、この状態を持たないという性質が問題になることがあります。
未知のクライアントの機能 多くの場合、Web アプリケーションには、異なるブラウザを使用する多くのユーザーがアクセスします。ブラウザの機能はそれぞれ異なるため、すべてのブラウザで同じように動作するアプリケーションを作成するのは困難です。
複雑なデータ アクセス 従来の Web アプリケーションでは、データ ソースの読み書きが複雑で、多くのリソースを使用する場合があります。
複雑なスケーラビリティ 既存の方法でデザインされた Web アプリケーションの多くは、アプリケーションの各種コンポーネント間に互換性がないため、スケーラビリティの要件を満たすことができません。アプリケーションが急速に成長する世の中において、このように互換性のないことが、スケーラビリティの要件を満たすことができない一般的な要因となります。
Web アプリケーションにおけるこれらの問題を解決するには、かなりの時間と労力を必要とします。ASP.NET Web ページおよび ASP.NET ページフレームワークは、これらの問題に次のように対処します。
直感的な一貫したオブジェクト モデル ASP.NET ページ フレームワークが提供するオブジェクト モデルでは、ページをクライアント側とサーバー側に分かれた個別の部分としてではなく、1 つのページとして扱うことができます。このモデルでは、従来の Web アプリケーションよりも直観的な方法でページをプログラミングできます。ページの要素に対してプロパティを設定したり、イベントに応答したりする機能も利用できます。さらに、ASP.NET サーバー コントロールは、HTML ページの物理的な内容から分離されており、ブラウザとサーバーとの間の直接のやり取りからも分離されています。一般に、サーバー コントロールは、クライアント アプリケーションでコントロールを使用するときと同じ方法で使用できます。コントロールおよびその内容を表示および処理するための HTML の作成方法を考慮する必要がありません。
イベント ドリブン プログラミング モデル ASP.NET Web ページは、Web アプリケーションに対して、クライアントまたはサーバーで発生するイベントのイベント ハンドラを記述する一般的なモデルを提供します。このモデルは、クライアント上のイベントをキャプチャし、それをサーバーに送信し、適切なメソッドを呼び出すという機構に基づいています。ASP.NET ページ フレームワークは、そのような機構がすべて自動化され、開発者側から見えなくなるように、このモデルを抽象化しています。その結果、イベント ドリブン開発をサポートする明確で記述の簡単なコード構造を実現しています。
直感的な状態管理 ASP.NET ページ フレームワークは、ページとページ上のコントロールの状態を管理するタスクを自動的に処理します。また、アプリケーション固有の情報の状態を明示的に管理するための方法を提供します。これは、大量のサーバー リソースを使用することなく実現され、ブラウザに Cookie を送信してもしなくても実装できます。
ブラウザから独立したアプリケーション ASP.NET ページ フレームワークでは、すべてのアプリケーション ロジックをサーバー上で作成できるため、ブラウザ間での機能の違いに合わせた明示的なコーディングが不要になります。ただし、パフォーマンスを向上させてクライアントの機能を充実させるために、クライアント側のコードを記述してブラウザ固有の機能を利用することもできます。
.NET Framework 共通言語ランタイムのサポート ASP.NET ページ フレームワークは .NET Framework 上で構築されているため、そのフレームワーク全体をすべての ASP.NET アプリケーションで使用できます。このランタイムと互換性のある任意の言語を使用してアプリケーションを記述できます。また、.NET Framework で提供される ADO.NET などのデータ アクセス インフラストラクチャを使用して、データ アクセスを単純化できます。
.NET Framework スケーラブル サーバーのパフォーマンス ASP.NET ページ フレームワークにより、アプリケーションのロジックに複雑な変更を加えなくても、1 つのプロセッサを持つ 1 台のコンピュータから複数のコンピュータを含む Web ファームにまで、Web アプリケーションをクリーンに拡張できます。