ASP.NET の概要
ASP.NET は、単なる ASP (Active Server Pages) の後継バージョンではなく、エンタープライズ クラスの Web アプリケーションを作成するときに開発者に必要なサービスなどを含む、統一化された Web 開発モデルを提供します。ASP.NET は、ASP との構文の互換性をほぼ完全に維持しながら、保護の強化に役立つ、よりスケーラブルで安定したアプリケーションを作成するための新しいプログラミング モデルおよびインフラストラクチャを提供します。また、ASP.NET の機能を追加することにより、既存の ASP アプリケーションを簡単に拡張できます。
ASP.NET は、完成された .NET ベースの環境であるため、Visual Basic .NET、C#、および JScript .NET を含む .NET 互換の任意の言語でアプリケーションを作成できます。さらに、すべての ASP.NET アプリケーションで、.NET Framework の全機能が利用できます。開発者は、.NET Framework によって管理される共通言語ランタイム環境、タイプ セーフ、継承などのテクノロジを簡単に利用できます。
ASP.NET は、WYSIWYG HTML のエディタや、Microsoft Visual Studio .NET など、ほかのプログラミング ツールとシームレスに連携するように設計されています。この連携により、Web 開発が簡単になるだけでなく、これらのツールによって提供されるあらゆる機能 (たとえば、開発者が Web ページにサーバー コントロールをドロップするために使用する GUI や、完全に統合されたデバッグ サポートなど) を利用できます。
ASP.NET アプリケーションを作成する場合は、Web フォームまたは XML Web サービスを使用できます。2 つの機能を組み合わせることが適切と思われる場合は、両方の機能を使用することもできます。いずれの機能も、認証方式の使用、使用頻度の高いデータのキャッシュ、アプリケーション設定のカスタマイズを可能にするなどの限られた場合にだけ、同じインフラストラクチャによってサポートされます。
- Web フォーム。フォーム ベースの強力な Web ページを作成できます。フォーム ベースの Web ページを作成するときは、ASP.NET サーバー コントロールを使用して、共通の UI 要素を作成し、それらの要素を共通のタスクとしてプログラムできます。ASP.NET サーバー コントロールを使用すると、再利用可能な組み込みコンポーネントまたはカスタム コンポーネントからすばやく Web フォームを作成でき、ページのコードが簡単になります。詳細については、「Web フォーム ページ」を参照してください。ASP.NET サーバー コントロールを開発する方法については、「ASP.NET サーバー コントロールの開発」を参照してください。
- XML Web サービス。リモートのサーバー機能にアクセスする手段を提供します。XML Web サービスを使用すると、企業は、企業データまたはビジネス ロジックに対するプログラム インターフェイスを公開できます。これにより、クライアント アプリケーションとサーバー アプリケーションは、それらのインターフェイスを取得し、操作できるようになります。XML Web サービスを使用すると、ファイアウォールを越えてデータを転送する HTTP および XML メッセージングなどの標準を使用した、クライアントとサーバー間またはサーバーとサーバー間でのデータ交換が可能になります。XML Web サービスは、特定のコンポーネント テクノロジまたはオブジェクト呼び出し規約に結び付けられていません。そのため、プログラムがどの言語で記述されているか、どのコンポーネント モデルを使用しているか、どのオペレーティング システムで実行されているかに関係なく、あらゆるプログラムから XML Web サービスにアクセスできます。詳細については、「ASP.NET を使用して作成した XML Web サービスと XML Web サービス クライアント」を参照してください。
それぞれのモデルで、ASP.NET のすべての機能と、.NET Framework および .NET Framework 共通言語ランタイムの機能を最大限に利用できます。ASP.NET、.NET Framework、および .NET Framework 共通言語ランタイムの機能とその使用方法の概要を次に示します。
- ASP での開発経験があれば、新しい ASP.NET プログラミング モデルも簡単に理解できます。しかし、ASP.NET オブジェクト モデルは、ASP からは大幅に変更されており、一段と構造化が進み、オブジェクト指向性も強くなっています。そのため、ASP.NET は完全な下位互換性を維持していません。既存の ASP ページを ASP.NET で実行するには、そのほとんどすべてをある程度変更する必要があります。また、Visual Basic .NET が大幅に変更されたことで、Visual Basic Scripting Edition で記述されている既存の ASP ページは ASP.NET では直接には使用できません。しかし、ほとんどの場合、コードを数行変更するだけで使用できるようになります。詳細については、「ASP ページから ASP.NET への移行」を参照してください。
- ASP.NET アプリケーションからデータベースへのアクセスは、Web サイトの閲覧者に対してデータを表示する場合に頻繁に使用される手法です。この目的でのデータベースへのアクセスは、ASP.NET では、以前に比べて非常に簡単になっています。また、ASP.NET では、コード内からデータベースを管理できます。詳細については、「ASP.NET でのデータ アクセス」を参照してください。
- ASP.NET には、Web 開発者が、アプリケーション レベルで実行されるロジックを記述するために使用できる簡単なモデルが用意されています。開発者は、このようなコードを Global.asax テキスト ファイル内かまたはアセンブリとして配置されるコンパイル済みのクラスに記述できます。このロジックには、アプリケーション レベルのイベントをインクルードできますが、開発者は、このモデルを Web アプリケーションの要件に合わせて簡単に拡張できます。詳細については、「ASP.NET アプリケーション」を参照してください。
- ASP.NET には、ASP 開発者にとって使い慣れた、ほかのすべての .NET Framework API と互換性を持つ使いやすいアプリケーション状態機能およびセッション状態機能が用意されています。詳細については、「ASP.NET の状態管理」を参照してください。
- ASP の以前のバージョンに含まれていた ISAPI プログラミング インターフェイスに負けない強力なプログラミング インターフェイスとして API を使用する必要がある高度開発者に対しては、ASP.NET は IHttpHandler インターフェイスおよび IHttpModule インターフェイスを用意しています。IHttpHandler インターフェイスを実装すると、IIS Web サーバーの下位レベルの要求および応答サービスと対話できるようになり、より簡単なプログラミング モデルで ISAPI の拡張機能とほぼ同程度の機能性を得ることができます。IHttpModule インターフェイスを実装すると、アプリケーションに対するすべての要求に関係するカスタム イベントを含めることができます。詳細については、「HTTP ランタイム サポート」を参照してください。
- ASP.NET には、.NET Framework および共通言語ランタイムに見られるパフォーマンス向上機能が活かされています。さらに、ASP.NET は、ASP およびその他の Web 開発プラットフォームで大幅なパフォーマンス向上を実現できるように設計されています。すべての ASP.NET コードは、解釈されるのではなく、コンパイルされます。そのため、たとえば、事前バインディング、厳密な型指定、ネイティブ コードへのジャスト イン タイム (JIT) コンパイルなどができます。また、ASP.NET では、簡単に要素を分解できるようになっているため、開発者は、開発中のアプリケーションに関係のないモジュール (たとえば、セッション モジュール) を削除できます。また、ASP.NET は、拡張キャッシュ サービス (組み込みのサービスとキャッシュ API の両方) も提供します。ASP.NET には、パフォーマンス カウンタも付属しており、開発者やシステム管理者は、新しいアプリケーションをテストしたり、既存のアプリケーションについてのデータを収集したりするためにこのカウンタを使用できます。詳細については、「ASP.NET のキャッシュ機能」および「ASP.NET の最適化」を参照してください。
- Web ページにカスタムのデバッグ ステートメントを記述すると、アプリケーション コードのトラブルシューティグに非常に便利です。ただし、デバッグ ステートメントを削除しないと、パフォーマンスが低下する場合があります。問題なのは、アプリケーションを製品サーバーに移植する直前にページからデバッグ ステートメントを削除するのにかなりの労力を要する場合があることです。ASP.NET は、ページ開発時にカスタムのデバッグ ステートメントを記述できるように、TraceContext クラスを用意しています。カスタム デバッグ ステートメントは、ページまたはアプリケーション全体のトレースを有効にしたときだけ表示されます。また、トレースを有効にすると、ページまたはアプリケーションのルート ディレクトリ (そのように指定した場合) に格納されているカスタム トレース ビューアに詳細が付加されます。詳細については、「ASP.NET トレース」を参照してください。
- .NET Framework および ASP.NET は、Web アプリケーションに既定の認証および認証スキーマを提供します。アプリケーションの要件に合わせて、これらのスキーマの削除、スキーマへの追加、またはスキーマの置き換えを簡単に行うことができます。詳細については、「ASP.NET Web アプリケーションのセキュリティ」を参照してください。
- ASP.NET 構成設定は、人間が判読および記述できる XML ベースのファイルに格納されます。アプリケーションごとに別の構成ファイルを持つこともできます。各アプリケーションの要件に合わせて、構成スキーマを拡張できます。詳細については、「ASP.NET の構成」を参照してください。
- アプリケーションの side-by-side 実行とは、同一のコンピュータにインストールされた複数のアプリケーションが異なるバージョンの .NET Framework を使用することを意味します。サーバー上の複数のアプリケーションで異なるバージョンの ASP.NET を使用する方法については、「ASP.NET での side-by-side 実行のサポート」を参照してください。
- IIS 6.0 では、ワーカー プロセス分離モードと呼ばれる新しいプロセス モデルを使用します。このプロセス モデルは、以前のバージョンの IIS で使用されていたプロセス モデルとは異なります。Windows Server 2003 で実行される ASP.NET は、既定でこのプロセス モデルを使用します。ASP.NET のプロセス モデルの設定をワーカー プロセス分離モードに移行する方法については、「IIS 6.0 のアプリケーション分離モード」を参照してください。