ASP.NET 2.0 の新機能

ASP.NET は、強力で高パフォーマンスなデータ ドリブン Web アプリケーションの構築に使用される優れたツールのセットです。ASP.NET 2.0 (ASP.NET の次のメジャー リリース) では、生産性を向上し、Web サイトを管理しやすくし、Web サイトのスケーラビリティとパフォーマンスを向上させることにより、ASP.NET の機能向上が行われています。

ASP.NET の次のリリースには、開発者の生産性を高める重要な新しい機能が含まれています。ASP.NET 2.0 では、45 個を超える新しいコントロールを使用して、従来より少ないコードと時間で、従来より強力な Web アプリケーションを構築できます。マスタ ページおよびテーマのサポートによって、ASP.NET 2.0 では、共通のページ レイアウトを持ち、共通の内容を含み、一貫したルック アンド フィールを持つアプリケーションの構築が簡単になります。

ASP.NET 2.0 は従来より強力な Web アプリケーションの開発を簡単にするだけではなく、実稼動状態になった後のアプリケーションの管理も簡単にします。ASP.NET 2.0 には、アプリケーションの配置、構成、および監視に使用する新しいツールが含まれます。まとめると、これらのツールを使用して、従来より信頼性が高く、管理しやすい Web アプリケーションを構築できます。

最後に、ASP.NET 2.0 には、実稼動 Web アプリケーションのスケーラビリティとパフォーマンスを向上させるための新しい機能が含まれます。ASP.NET 2.0 では、顧客の要求に対応するスケーラビリティを持つ、従来より柔軟な Web サイトを作成できます。

開発者の生産性の向上 

従来より多くのことを従来より少ないコードで処理します。 ASP.NET 2.0 では、最も一般的なプログラミング 処理の多くが大幅に簡略化され、従来より強力な Web アプリケーションを従来より高速に構築できます。

マスタ ページを使用した一般的なページ レイアウトの作成

ASP.NET 2.0 の新しい機能であるマスタ ページによって、Web アプリケーションの構築にかかる時間を大幅に削減できます。マスタ ページを利用すると、1 ページのテンプレートを作成し、そのテンプレートを 1 つのアプリケーション内の複数のページに対するベースとして使用できます。マスタ ページは、アプリケーション内の新しいページを個別に最初から構築しなくて済むようにします。

たとえば、アプリケーション内の各ページが、標準のヘッダーとナビゲーション メニューと共に、同一の 3 列のレイアウトを使用するように設定する場合を想定します。この場合、必要なレイアウトが設定されたマスタ ページを 1 つ作成して、そのマスタ ページをアプリケーション内のすべてのページのベースにすることができます。単一のマスタ ページを作成することによって、各ページで共通の内容を複製する作業が実行されなくなります。また、将来、すべてのページのレイアウトを変更することを決定した場合は、単一のマスタ ページを変更するだけで済みます。

マスタ ページは、.master 拡張子を使用して作成します。マスタ ページには、標準の ASP.NET ページに含めることができるものは、ほとんどすべて含めることができます。マスタ ページを特別なものにしているのは、1 つ以上の <asp:ContentPlaceHolder> コントロールを含めることができるという点です。 <asp:ContentPlaceHolder> コントロールは、マスタ ページ内の置き換え可能なコンテンツの領域を示します。

任意の ASP.NET ページにディレクティブを追加するだけで、マスタ ページ テンプレートをそのページのベースにすることができます (<%@ Page Master=”SiteLayout.Master” %> など)。すると、ASP.NET ページは、マスタ ページ内で宣言された <asp:ContentPlaceHolder> 領域のいずれかをオプションでオーバーライドできます。実行時に、単一のマージされたページが、呼び出し側のブラウザ クライアントに送信されます。

上級開発者は、複数のマスタ ページを入れ子にするように選択でき、これらのマスタ ページが サイト全体のレイアウトを作成してから、このサイトの個別のセクションに対する個別のサブレイアウトを設定することができるようにします。外部からアクセスしてくるユーザーの個人設定、またはさまざまな企業クライアントのブランド差別化に基づいて個別に設定されたサイト レイアウトを有効にするために、実行時にマスタ ページの変更および読み込みを動的に行うこともできます。

最大の利点は、Visual Studio 2005 のマスタ ページに対する完全なデザイン時サポートがあることであり、これによって、完成したページの外観をサイトのデザイン中に正確に確認できるようになります。

2

2 つの ContentPlaceHolder コントロールがあるマスタ   ページ

コンテンツ

コンテンツ   ページの編集

ブラウザに表示されたコンテンツ

ブラウザに表示されたコンテンツ   ページ

テーマを使用した共通のページ外観の作成

ASP.NET 2.0 のもう一つの新機能であるテーマを使用すると、アプリケーション内の複数のページに使用する同一の外観を簡単に作成できます。ASP.NET 2.0 には、SmokeAndGlass や BasicBlue などの名前が付いた、標準のテーマのセットが含まれます。特定のテーマをページに適用すると、そのページ内のすべてのコントロールの外観、およびページ自体が、そのテーマによって変更されます。

たとえば、テーマを使用して、ページに表示される Calendar コントロールの外観を変更できます。SmokeAndGlass テーマを適用すると、すべての Calendar コントロールのスタイルのプロパティに特定の値のセットが割り当てられ、BasicBlue テーマを適用すると、すべての Calendar コントロールのスタイルのプロパティに別の値のセットが割り当てられます。

テーマを使用して、ページ自体の外観を変更することもできます。テーマにはスタイル シートとイメージを含めることができるため、テーマを使用してページ内のすべての HTML 要素を変更できます。

特定のページにテーマを適用するには、そのページにディレクティブ (<%@ Theme="BasicBlue" %> など) を追加します。また、Web.Config ファイルの設定を通して、テーマをアプリケーション全体に適用できます。

Basic Blue

Basic Blue テーマを設定したカレンダー

Smoke and Glass

Smoke and Glass テーマを設定したカレンダー

リッチ データ コントロールを使用してデータ ドリブン ページを簡単に構築

ASP.NET 2.0 では、データ ドリブン Web ページを簡単に作成できます。新しいデータ コントロールを利用すると、コードを一行も記述することなく最も一般的なデータベース アクセス タスクを実行できます。

ASP.NET 2.0 には、GridView コントロールという名前の DataGrid コントロールの新しいバージョンが含まれます。<asp:GridView> コントロールは、データの表示、並べ替え、ページング、および編集に対する組み込みサポートを含めることによって、一般的なデータ アクセス シナリオを簡略化します。ページに <asp:GridView> とデータ ソース コントロールを追加し、いくつかのプロパティを設定するだけで、ユーザーがデータベース レコードの並べ替え、ページング、表示、および編集を行うことができる Web ページを作成できます。

新しい ASP.NET 2.0 <asp:DetailsView> コントロールは、自動生成されたデータ エントリ フォームのように機能し、ユーザーがデータベースの個別のレコードを編集できるページを作成できるようにします。 <asp:GridView> コントロールと <asp:DetailsView> コントロールを組み合わせて使用することによって、マスタフォームや詳細フォームをすばやく作成できます。

GridView

GridView コントロールに対するスマート タスクの使用

リッチ XML データ連結

ASP.NET 2.0 データ コントロールは、さまざまなリッチ データ連結シナリオをサポートします。新しいデータ ソース コントロールを利用すると、コードを一切記述しないでデータ ソースに連結できます。

たとえば、<asp:XmlDataSource> コントロールを使用して、階層構造の XML データ ソースを表すことができます。<asp:XmlDataSource> コントロールは、<asp:TreeView>、<asp:GridView>、<asp:DataList>、<asp:DropDownList>、<asp:Repeater> コントロールなどの任意のデータ コントロールに連結できます。

次の例は、<asp:XmlDataSource> を <asp:DataList> コントロールに対してどのように使用すると、コードを一切記述しないで MSDN Web サイトから取得される RSS ニュースを表示できるのかを示します。DataList コントロールが “DataSourceID” プロパティを通して XmlDataSource コントロールにどのように関連付けられているかに注意してください。

<asp:xmldatasource 
  id="XmlDataSource1" 
  datafile="msdn.xml" 
  xpath="rss/channel/item" 
  runat="server"  />

<asp:datalist id="DataList1" runat="server" datasourceid="XmlDataSource1">
       <itemtemplate>
        <b><%#XPath("pubDate")%> - <%#XPath("title") %></b>
        <br />
        <%# XPath("description") %>
       </itemtemplate>
</asp:datalist>

コードを使用しないで取得された

コードを使用しないで取得された RSS の表示

ビジネス オブジェクトへのデータ連結

ASP.NET 2.0 では、データ コントロールをビジネス オブジェクトに直接連結できるようになり、従来の 3 層アプリケーションを簡単に構築できます。これによって、階層間でデータを引き渡すための明示的なコードを一切記述しないで、プレゼンテーション層とデータ層の間のビジネス層を簡単に作成できるようになります。

たとえば、顧客の買い物かごを表す ShoppingCart という名前のビジネス オブジェクトを作成する場合を想定します。このオブジェクトには、データベース テーブルから項目を格納および取得するために使用する AddItem と GetItems という名前のメソッドがあるものとします。

新しい ObjectDataSource コントロールを利用すると、データ コントロールを ShoppingCart オブジェクトに直接連結できます。次の 2 つのコントロールをページに追加して、ShoppingCart オブジェクトの GetItems メソッドを自動的に呼び出し、GridView コントロールに結果を表示することができます。

<asp:gridview id="GridView1" datasourceid="ShoppingCartDataSource"
  autogeneratecolumns="false" runat="server">
  <columnfields>
    <asp:boundfield headertext="Product" datafield="ProductName" />
    <asp:boundfield headertext="Price" datafield="UnitPrice" dataformatstring="{0:c}"/>
    <asp:boundfield headertext="Quantity"   datafield="Quantity" />
  </columnfields>
</asp:gridview>

<asp:objectdatasource id="ShoppingCartDataSource"  typename="ShoppingCart" 
  selectmethod="GetItems" runat="server"  />

ObjectDataSource コントロールの TypeName プロパティはビジネスオブジェクトの名前を指定し、SelectMethod プロパティはビジネス オブジェクトからデータを取得するときに呼び出すメソッドの名前を指定します (ObjectDataSource コントロールは、データを取得するメソッドを指定する場合に使用しますが、それ以外にデータの更新、挿入、および削除を行うメソッドを指定する場合にも使用できます)。

ビジネス

ビジネス  オブジェクトへの GridView コントロールの連結

Login コントロール

ASP.NET 2.0 Login コントロールは、Web アプリケーションで安全にユーザーを管理するために必要なすべての機能をカプセル化します。Login コントロールを利用すると、Web アプリケーションに必要な認証およびログイン コードを一切記述する必要がなくなります。ASP.NET 2.0 には、新しいユーザーの登録、ユーザーの認証、ユーザー パスワードの変更、およびパスワードのヒントの送信を簡単に実行できるようにする Login コントロールが含まれます。

たとえば、ページに <asp:CreateUserWizard> コントロールを追加するだけで、ユーザー登録フォーム全体を作成できます。<asp:CreateUserWizard> コントロールは、ユーザーに対して登録のプロセスを段階的に説明するウィザードを生成します。

ユーザーが登録を完了すると、そのユーザーは、<asp:Login> コントロールによって生成されたインターフェイスを使用して、Web アプリケーションにログインできます。このログイン フォームは、テンプレートを通して完全にカスタマイズ可能なので、Web アプリケーション全体のルック アンド フィールを一致させることができます。単純なログイン フォームのページへの追加は、次のように簡単に行うことができます。

<asp:Login id="myLogin" runat="server" /> 

Login

Login コントロールを使用したログインフォームの表示

最後に、LoginView コントロールを使用すると、各ユーザーの属するセキュリティ ロールに応じて、さまざまなユーザーに対してさまざまなコンテンツ テンプレートを表示できます。たとえば、LoginView コントロールを使用して、サイト上で “Premium Users” ロールに昇格された訪問者に対して制限された情報を提供し、“Basic Users” ロールに属する通常の訪問者に対しては制限された情報を簡単に非表示にすることができます。

メンバシップとロールの管理サービス

ASP.NET 2.0 には、ユーザーの資格情報 (ユーザー名やパスワード) およびロール グループの管理に対する組み込みサポートが含まれています。ASP.NET 2.0 をインストールした直後に、ユーザー情報を Microsoft Access データベースに格納し始めることができます。また、必要に応じて、Microsoft SQL Server データベースなどの別の種類のデータベースにユーザーおよびロールの情報が格納されるように、ASP.NET を構成することも簡単にできます。

新しい Web サイト管理ツールを利用して、ユーザーとロールを管理できます。Web サイト管理ツールを使用すると、新しいユーザーを作成し、それらのプロパティを変更できます。また、このツールを使用して、カスタム定義されたロールにユーザーを関連付けることもできます。

新しい Login コントロールをメンバシップとロールの管理サービスと組み合わせて使用すると、コードを一行も記述しないで Web アプリケーションに対するユーザー登録および認証システム全体を作成できます。すべての作業は、開発者に代わって既に実行されています。

独自のコードを記述する場合も、ユーザーとロールを管理するために必要なプログラミングが、メンバシップ クラスの新しいセットによって大幅に簡略化されました。たとえば、ASP.NET 2.0 では、次の一行のコードで新しいユーザーを作成できます。

// C#
MembershipUser newUser = Membership.CreateUser("RuthW", "Secret");

FakePre-8d620e8c43ff4b57bc8905c5580b1fab-db9be696614a4215b132a9578f8fab5a

ASP.NET 2.0 では、カスタム ロールの処理も簡単にできます。たとえば、次のコード行を使用して、特定のユーザーに関連付けられたすべてのロールを取得できます。

// C#
String[] myRoles = Roles.GetRolesForUser("RuthW");

FakePre-408ea69ccc2a4109ad582bf8fe891566-35cd8ed6b36745bc9fe1668f36ece59e

ASP.NET 1.0 では、新しいユーザーを作成し、そのユーザーのロールを取得するためのロジックをすべて自分で記述する必要がありました。ASP.NET 2.0 では、この作業が開発者に代わって実行され、開発者の作業が大幅に簡略化されました。

新しい

新しい Web サイト管理ツールの使用

サイト ナビゲーション サービス

ASP.NET 2.0 を使用すると、ハード ドライブ上にページがどのように物理的に格納されているかに関係なく、Web サイトの論理構造を簡単に定義できます。物理構造から独立したサイトの論理構造を表すことによって、サイズが大きく頻繁に変更される Web サイトの管理、およびすべてのページのコードを変更しないでサイトのレイアウトとリンクの構造の順序を再設定することが、従来より簡単になります。

ASP.NET 2.0 SiteMap を作成して、Web サイトの論理構造を表すことができます。アプリケーション内のすべてのページ間の関係を表す XML ファイルを作成するだけで、SiteMap を作成できます。また、データベースやコンテンツ管理システムなどのカスタム プロバイダから、サイト マップを容易に取得することもできます。

その後、ASP.NET 2.0 は、サイトに対して定義した論理構造の最上位に強力な SiteMap API を公開し、システム内でのブラウザ クライアントの場所、およびサイト内の現在アクティブなページに対するその他のリンクの関係を識別するためのプログラム関連のサポートを提供します。

ナビゲーション コントロール

開発者は新しい ASP.NET 2.0 ナビゲーション コントロールをサイト ナビゲーション サービスと組み合わせて使用できます。たとえば、新しい <asp:TreeView> コントロールまたは <asp:Menu> コントロールを SiteMap と組み合わせて使用して、アプリケーションのナビゲーション構造を自動的を表示できます。また、新しい <asp:SiteMapPath> コントロールを SiteMap と組み合わせて使用して、自動的にアプリケーションのブレッドクラムの経路を生成することもできます。

SiteMapPath

SiteMapPath コントロールを使用したブレッドクラムの経路の表示

開発者は、新しい <asp:Wizard> コントロールを使用して、大きなフォームを個別のサブフォームに分割できます。たとえば、Wizard コントロールを使用して、Web サイトで製品を発注するプロセスを顧客に対して段階的に説明することができます。

Wizard

Wizard コントロールを使用して 1 つのプロセスを複数のステップに分割

パーソナライゼーション サービス

ASP.NET 2.0 パーソナライゼーション サービスを使用すると、Web サイトを訪問するユーザーに関連付けられたプロファイル プロパティの定義、保存、および取得を行うことができます。パーソナライゼーション サービスを使用して、データ アクセス コードを一切記述することなく、ユーザー プロファイル情報を永続的に格納できます。

パーソナライゼーション サービスを使用して、ユーザーに関連付けられた単純データと複合データの両方を格納できます。たとえば、次のコードを使用して、ユーザーの名前と買い物かごを保存できます。

// C#
Profile.FirstName = "Ruth";
Profile.ShoppingCart = objShoppingCart;

FakePre-6aa390c9eb4f4e11bec5646d48fd39cf-8fef80ac0b4c4d3ca6e7c5080ed98f63

後に、ユーザーがアプリケーションに戻ってきたときに、次のコードを使用して、名前と買い物かごを取得できます。

// C#
string FirstName = Profile.FirstName;
ShoppingCart objShoppingCart = Profile.ShoppingCart;

FakePre-6bf523bff9fb4b4ea5e5f42aeaf63e0a-ba4966323eda4043b8232a5edc1884ef

<profile> セクションを作成することによって、パーソナライゼーション サービスを使用して Machine.Config ファイルまたは Web.Config ファイルに格納するプロファイル プロパティを定義します。たとえば、次のプロファイル定義には、ユーザーの名前と買い物かごに対するプロパティが含まれています。

<profile>
  <property name="FirstName" />
  <property name="ShoppingCart" 
    type="MyStore.ShoppingCart, MyStore"
    serializeAs="Binary" />
</profile>

パーソナライゼーション サービスは、認証されたユーザーと匿名ユーザーの両方をサポートします。たとえば、匿名ユーザーの買い物かごの情報を格納できます。ユーザーが Web サイトで登録すると、そのユーザーの買い物かごのデータを認証されたプロファイルに自動的に転送できます。

Web Part コントロール

ASP.NET 2.0 の新しい ASP.NET Web Parts を使用すると、Web サイトのレイアウトとコンテンツを個人に合わせて詳細にカスタマイズできます。Web Parts によって、サイト上に動的な Web UI を構築するためのインフラストラクチャが提供されます。

新しい <asp:WebPartZone> コントロールを使用すると、クライアントは、クライアント ブラウザ内でドラッグ アンド ドロップするだけで、クライアントの ASP.NET ページ内の Web コンテンツを再度並べ替えることができます。その後、ASP.NET は、新しい ASP.NET パーソナライゼーション サービス内で、訪問するユーザーによって指定されたこれらのカスタム設定を自動的に記憶および格納します。

Web Parts

Web Parts を使用してユーザーによるページのカスタマイズが可能

統合されたモバイル サポート

ASP.NET 2.0 では、モバイル デバイスに対するサポートが、標準の ASP.NET コントロールに統合されました。これは、一連のコントロールの使用方法を習得するだけで、どのような種類のデバイスに対しても機能するページを開発できることを意味します。

たとえば、Calendar コントロールは、ページを要求する際に使用するデバイスに応じて、HTML、WML、CHTML、または XHTML をレンダリングします。さらに、Calendar コントロールは、デバイスの機能に応じて、カレンダー用のさまざまなユーザー インターフェイスをレンダリングします。デバイスの機能に対するこの適応機能によって、ブラウザ、携帯電話、PDA のいずれによって要求されたときにも正常に機能するページを作成できます。

デスクトップ

デスクトップ   ブラウザとモバイル   デバイスに表示された Calendar コントロール

コントロール アダプタ

ASP.NET 2.0 は、現在使用できるデバイスをサポートするだけではなく、今後導入されるすべての新しいデバイスをサポートし続ける予定です。コントロール * * アダプタ を利用すると、任意のコントロールの既定のレンダリングをオーバーライドし、任意のデバイスに対するコントロールのレンダリングをカスタマイズできます。

独自のコントロール アダプタを記述し、既存のコントロールとカスタム コントロールの両方を含む任意の ASP.NET コントロールに関連付けることができます。ブラウザ定義ファイル内のコントロールにコントロール アダプタを関連付けます。コントロール アダプタによって、個別の必要に応じて、任意の ASP.NET コントロールの出力をカスタマイズする柔軟性が得られます。

管理機能の向上 

従来より簡単に配置、構成、および管理することができる Web アプリケーションを構築します。ASP.NET 2.0 に含まれる新しい構成ツールと管理ツールを利用すると、Web アプリケーションがさらに安定し、管理しやすくなります。

アプリケーションのプリコンパイル プリコンパイルを利用すると、最初のユーザーがページを要求する前に、ASP.NET アプリケーション全体をコンパイルできます。アプリケーションは、最初の要求時から従来より高速に動作します。プリコンパイルによって、動的にコンパイルされたページ内のエラーもすべてあらかじめ検出できます。

ASP.NET 2.0 は、サイトの埋め込み先プリコンパイル、およびサイトの配置用プリコンパイルという 2 つの形式のプリコンパイルをサポートします。これらの両方の種類のプリコンパイルによって、サーバーからページが最初に要求された時点での動的コンパイルのコストの発生が回避されます。サイトの配置用プリコンパイルには、さらに、Web アプリケーションのソース コードを非表示にできるという利点があります。

precompile.axd という名前の便利なページを要求することによって、任意の ASP.NET 2.0 アプリケーションを埋め込み先でプリコンパイルできます。このページは、開発サーバーから実稼動サーバーにアプリケーションを配置した直後などに要求できます。アプリケーションにエラーがない場合は、アプリケーション内の各ページが自動的にコンパイルされます。コンパイル中にエラーが発見された場合は、ページにエラーが表示されます。

もう 1 つのオプションは、アプリケーションの配置用プリコンパイルです。ソース コードを非表示にする必要がある場合に、このオプションを使用します。たとえば、あらかじめ作成済みの ASP.NET Web アプリケーションを販売し、顧客にコードを参照されたり変更されたりしないようにする場合などが想定されます。アプリケーションを配置用にプリコンパイルすると、すべての ASP.NET ページはスタブ ファイルに置換されます。アプリケーションを配置用にプリコンパイルするには、コマンド ライン aspnet_compiler ユーティリティを使用します。

Microsoft 管理コンソールの管理ツール

ASP.NET 2.0 には、ASP.NET 構成の設定をインターネット インフォメーション サービス マネージャから直接変更できるようにする、新しい Microsoft 管理コンソール (MMC) スナップインが含まれています。 たとえば、このスナップインを使用して、データベース接続文字列、カスタム アプリケーションの設定、セキュリティの設定、およびセッション状態の設定を構成できます。

Microsoft

Microsoft 管理コンソールを使用した ASP.NET 構成設定の変更

構成 API

ASP.NET 2.0 には、構成情報の取得および更新に使用する新しいクラスとメソッドが含まれています。これらのメソッドを使用して、ローカルまたはリモート サーバーの構成設定を変更できます。

System.Configuration.Configuration クラスを利用して、構成情報を取得できます。このクラスは、厳密に型指定されたプロパティを使用して ASP.NET 構成設定を表します。たとえば、次のコードによって、ローカル コンピュータ上にある MyApp という名前のアプリケーションに対して有効にされた認証の種類が表示されます。

// C#
Configuration cfg = Configuration.GetConfigurationForUrl("/MyApp");
Response.Write( cfg.Web.Authentication.Mode.ToString() );

FakePre-8f7df4d9263943dd917d971f8cf94239-21545d7508744eedb471b6a267dc1cf8

Configuration を利用すると、構成設定の更新も簡単に行うことができます。たとえば、次のコードを使用して、MyApp という名前のローカル Web アプリケーションに対する Forms 認証を有効にすることができます。

// C#
Configuration cfg = Configuration.GetConfigurationForUrl("/MyApp");
cfg.Web.Authentication.Mode = HttpAuthenticationMode.Forms;
cfg.Update();

FakePre-91bbc13e72f34edfbc9ae2b1d3402f04-9e802b3584174876aba43aa5543c39d2

MyApp Web アプリケーションに Web.Config ファイルが無い場合は、新しい Web.Config ファイルが自動的に作成されます。

構成の暗号化

ASP.NET 2.0 では、構成ファイルのほとんどすべてのセクションを簡単に暗号化できるようになります。暗号化を利用することにより、アプリケーション内に従来より安全にプライベートな情報を格納できます。たとえば、アプリケーション Web.Config ファイルの新しい <connectionStrings> セクションを暗号化して、すべてのデータベース接続文字列を保護できます。

構成セクションの暗号化を行う場合は、Triple DES などの米国政府の標準の暗号化アルゴリズムを利用できます。暗号化されたデータは構成ファイルに格納されるため、構成セクションの暗号化によって、アプリケーションがレジストリに依存することはありません。

リッチ トレーシング

Windows イベント トレーシングを利用して、実稼動 ASP.NET 2.0 アプリケーションのパフォーマンスのプロファイルとデバッグを行うことができます。Windows イベント トレーシングは、実稼動アプリケーションに対する影響が最小限に抑えられるように最適化されます。イベント トレーシングは、ディスクの容量を計画したり、アプリケーションのボトルネックを検出したりするために使用できます。

ASP.NET 2.0 では、ライフサイクル全体を通して各ページ要求の実行をトレースできるようにする、多くの新しいイベントが公開されます。たとえば、アプリケーション内の各ページが、いつ、どのような頻度で、解析、コンパイル、およびレンダリングされるかを正確にトレースできます。

状態モニタリング

ASP.NET 2.0 では、ユーザーが問題に遭遇する前に Web サイトに問題が発生したことを知らせる電子メールを受信できます。この機能により、アプリケーションに問題が発生した場合に通知されることがわかっているため、別のプロジェクトに集中して取り組めるようになります。

状態モニタリングによって、実稼動アプリケーションでの問題をすばやく識別できます。状態モニタリングを使用して、アプリケーションにハンドルされていない例外などの問題が発生すると、そのたびに自動的に通知されるように設定できます。通知は、電子メールで送信したり、イベント ログに保存したり、データベース テーブルに保存したり、ログ ファイルに書き込んだりすることができます。通知によって、スタック トレース、要求ヘッダー、およびブラウザ データを含む詳細なエラー情報が提供されます。

Machine.Config ファイルまたは Web.Config ファイルの新しい <healthMonitoring> セクションを使用して、状態モニタリングを構成します。<healthMonitoring> セクションは、Web ハート ビートも構成できるため、定期的にアプリケーションの状態に関する情報を自動的に受信できます。

監査サポート

ASP.NET 2.0 によって、従来より簡単に Web サイトでの悪質な行動を検出できるようになります。ASP.NET 2.0 アプリケーションは、セキュリティ関連のイベントを対象に監査を生成するように構成できます。たとえば、監査を利用することにより、Forms 認証とメンバシップ API. を使用して Web サイトにユーザーがログインしたときに、成功または失敗を伝える通知を管理者は受信できます。監査情報は、サーバー イベント ログにも格納できます。

パフォーマンスとスケーラビリティの向上 

従来より高速に実行し、従来より多くのユーザーのサポートに対応できるスケーラビリティを持つ、Web ページを構築します。ASP.NET 2.0 では、最新のハードウェアを利用する高パフォーマンスなデータ ドリブン Web サイトを開発できます。

SQL キャッシュ無効化

SQL キャッシュ無効化によって、メモリ内にデータベース データをキャシュし、基盤となるデータベースが変更されるたびに、そのデータを自動的に再読み込みすることができます。この機能は、ASP.NET に追加された機能の中でも、最も画期的かつ期待されているものの 1 つです。

たとえば、常時商品の品揃えを変更し続けている電子商取引 Web サイトを構築している場合を想定します。ASP.NET キャッシュを利用し、Web サーバーのメモリに商品カタログを格納することによって、Web サイトのパフォーマンスを大幅に向上できます。SQL キャッシュ無効化によって、データベース内の任意の商品情報が変更されるたびに、商品カタログを自動的に再読み込みすることができます。まとめると、SQL キャッシュ無効化によって、キャッシュされたデータが古くなることを心配しないで、データベースのデータに非常にすばやくアクセスできるようになります。

64 ビットのサポート

最大限のスケーラビリティとパフォーマンスをサポートするために、ASP.NET 2.0 では、Intel と AMD の 64 ビット プロセッサを完全にサポートします。アプリケーションを再コンパイルしたり、コードを一行も変更することなく、既存の ASP.NET 1.0 アプリケーションを利用して、64 ビット プロセッサ サーバー上で実行できます。

拡張性の向上

ASP.NET 2.0 は、開発者が既存の ASP.NET 機能を簡単に変更または拡張できるようにする新しいプログラミング モデルをサポートします。ASP.NET 2.0 は、プロバイダの用途を拡張します。プロバイダは、ASP.NET によって使用される特定のアプリケーション プログラミング インターフェイス (API) を実装するコンポーネントです。

たとえば、サイト ナビゲーション サービスでは、プロバイダ モデルを使用して、Web サイトの構造に関する情報を格納します。サイト ナビゲーション サービスによって使用される既定のプロバイダは、XML ファイルにサイト情報を格納する AspNetXmlSiteMapProvider です。ただし、必要に応じて、この既定のプロバイダを、データベース テーブルにサイト情報を格納する新しいプロバイダに置き換えることができます。

プロバイダ モデルは、メンバシップとロールの管理サービスによっても使用されます。既定のメンバシップ プロバイダである AccessMembershipProvider は、Microsoft Access データベースにユーザー情報を格納します。また、ユーザー情報を Microsoft SQL Server データベースに格納する SqlMembershipProvider を選択するオプションもあります。必要に応じて、Oracle データベースにユーザー情報を格納するカスタム プロバイダを作成できます。また、静的 XML ファイルにユーザー情報を格納するプロバイダを作成することもできます。

Web.Config ファイルまたは Machine.Config ファイル内で、特定のプロバイダを宣言および構成できます。たとえば、Machine.Config ファイル内の Site Navigation Service セクションと Membership セクションの両方には、defaultProvider 属性があります。この属性の値を変更するだけで、新しい既定のプロバイダをどちらかの種類のサービスに関連付けることができます。

カスタム プロバイダを作成する事も簡単です。各種類のプロバイダには、関連付けられたインターフェイスがあります。カスタム プロバイダを作成するには、そのインターフェイスを実装するだけで済みます。たとえば、メンバシップ サービスに対する新しいプロバイダを実装するには、CreateUser()、DeleteUser()、GetUser() などのメソッドを持つ IMembershipProvider インターフェイスを実装します。

新しいプロバイダ モデルによって、ASP.NET の基盤となる基礎機能が非常にカスタマイズしやすくなります。提供されている高度な機能を犠牲にすることなく、開発者の要求を満たすように、データの表示方法および格納方法を変更できます。

まとめ 

ASP.NET 2.0 により、従来より強力で、安定し、スケーラビリティが向上した Web アプリケーションを構築できるようになります。45 個を超える新しいコントロールにより、ASP.NET 2.0 では、従来より強力な Web サイトを従来より少ないコードで構築できます。Web サイトを管理するための新しいツールを使用して、ASP.NET では、従来より信頼性の高い Web サイトを構築できます。キャッシングの新機能により、ASP.NET では、顧客の要求に対応できるスケーラビリティを持つ Web サイトを構築できます。ASP.NET 2.0 では、すばらしい Web サイトを構築するために必要なあらゆるツールが提供されます。