Share via


ASP.NET および Web 開発の新機能

更新 : 2007 年 11 月

.NET Framework version 3.5 Service Pack 1 では、対象領域において ASP.NET の機能が強化されています。Visual Studio 2008 および Microsoft Visual Web Developer Express Edition でも、Web 開発をより効果的に行うための拡張機能および新機能が組み込まれています。

最も重要な進歩は、AJAX 対応 Web サイトの開発のサポート強化、および統合言語クエリ (LINQ: Language-Integrated Query) のサポートです。これには、Visual Studio 2008 と Microsoft Visual Web Developer Express Edition で ECMAScript (JavaScript または JScript) を操作するための新しいサーバー コントロールと型、新しいオブジェクト指向のクライアント タイプ ライブラリ、および IntelliSense の完全サポートが含まれています。

このトピックの以下のセクションでは、ASP.NET および Visual Web Developer の変更点について説明します。

  • SP1 での ASP.NET の機能強化

  • Version 3.5 での ASP.NET の機能強化

  • Visual Web Developer の拡張機能

SP1 での ASP.NET の機能強化

以下のセクションでは、Visual Studio 2008 および Visual Web Developer Express Edition の拡張機能と新機能についての情報を提供します。

ダイナミック データ

ASP.NET Dynamic Data は、データ ドリブン ASP.NET Web アプリケーションの迅速な作成を可能にするフレームワークです。実行時にデータ モデルを自動的に検出し、それに基づいて UI 動作を決定することで、この動作が可能になります。スキャフォールディング フレームワークは、データの表示および編集のための実用的な Web サイトを即座に提供します。このスキャフォールディングは、既定の動作をオーバーライドするメタデータやテンプレートを使用するか、または標準 ASP.NET ページを作成することで、簡単にカスタマイズできます。同時に、既存のアプリケーションでは、スキャフォールディング ロジックを既存のページに容易に統合できます。

URL ルーティング

ASP.NET の URL ルーティングを使用すると、Web サイトの特定のファイルにマップする必要がない URL を使用できます。URL をファイルにマップする必要がないため、ユーザーの操作を記述し、ユーザーにとってわかりやすい URL を Web アプリケーション内で使用できます。URL ルーティングでは、URL 要求を処理するときに使用される値のプレースホルダを含む URL パターンを定義します。実行時、アプリケーション名に続く URL の一部が、定義した URL パターンに従って個別の値に解析されます。

EntityDataSource コントロール

EntityDataSource コントロールは、Entity Data Model (EDM) に基づくデータ バインディング シナリオに対応しています。EDM の仕様では、データはエンティティとリレーションシップのセットとして表現されます。EDM は、Entity Framework によりオブジェクト リレーショナル マッピングや ADO.NET Data Services などのシナリオで使用されます。ASP.NET データ バインディング コントロールのデザイン時モデルに慣れているユーザーにとっては、EntityDataSource コントロールのプログラミング サーフェイスは他のデータ ソース コントロールのプログラミング サーフェイスに似ています。

EntityDataSource コントロールは、ページ上のデータ バインド コントロールに代わって、データ ソースに対する作成、読み取り、更新、および削除操作を管理します。EntityDataSource は、編集可能なグリッド、並べ替えおよびフィルタ処理をユーザーが制御するフォーム、二重にバインドされたドロップダウン リスト コントロール、およびマスター/詳細ページを操作します。EntityDataSource コントロールは、ページ コントロールのクエリ パラメータ値、ページ URI に追加されるクエリ パラメータ、Cookie、およびその他の ASP.NET パラメータ オブジェクトを取得できます。

新しい ASP.NET AJAX 拡張機能

SP1 では ASP.NET AJAX の新しい拡張機能により、[戻る] ボタンを使用するときに、ブラウザ履歴をより細かく制御できるようになりました。また、複数のクライアント スクリプトを自動的に 1 つの複合スクリプトに結合できるようになりました。これにより、サーバーへのラウンド トリップ回数が大きく減少するので、スクリプトの読み込み時間が短縮されます。

JScript のフォーマット

Visual Studio と Visual Web Developer Express Edition では、コードのフォーマット機能が拡張され、JScript がサポートされています。ドキュメントのコードや選択項目のコードを手動でフォーマットすることも、入力時に自動的にフォーマットされるように設定することもできます。

Version 3.5 での ASP.NET の機能強化

.NET Framework version 3.5 では、次の領域において ASP.NET 向けの機能が強化されました。

  • 新しいサーバー コントロール、型、およびクライアント スクリプト ライブラリ。これらを併用することで AJAX スタイルの Web アプリケーションを開発できます。

  • Web サービス形式のサーバー ベースのフォーム認証、ロール管理、プロファイル サービスの拡張。これらは Web ベースのアプリケーションで使用できます。

  • ASP.NET データ ソース コントロールのアーキテクチャを使用して Entity Data Model を公開する新しい EntityDataSource コントロール。

  • データを表示し、自由にカスタマイズできる UI を提供する新しい ListView データ コントロール。

  • ASP.NET データ ソース コントロールのアーキテクチャを使用して統合言語クエリ (LINQ) を公開する新しい LinqDataSource コントロール。

  • コンパイル済みのアセンブリをマージし、柔軟な配置およびリリース管理をサポートする新しいマージ ツール (Aspnet_merge.exe)。この機能は、Visual Web Developer Express Edition では使用できません。

.NET Framework version 3.5 は IIS 7.0 とも統合されています。ASP.NET Web ページ (.aspx ファイル) だけでなく、ASP.NET サービス (フォーム認証、すべてのコンテンツ タイプのキャッシュなど) も使用できるようになりました。これは、ASP.NET と IIS 7.0 が同じ要求パイプラインを使用するためです。要求処理のパイプラインが統一されたことにより、マネージ コードを使用して、IIS ですべての要求を処理する HTTP パイブライン モジュールを開発できます。さらに、IIS と ASP.NET のモジュールおよびハンドラは、統一された構成をサポートするようになりました。詳細については、「IIS 7.0 における ASP.NET アプリケーションのライフ サイクルの概要」を参照してください。

AJAX の開発

.NET Framework version 3.5 を使用すると、再利用可能なクライアント コンポーネントを搭載し、次世代のユーザー インターフェイスを備えた Web アプリケーションを作成できます。サーバー ベースのアプローチ、クライアント ベースのアプローチ、またはそれらを組み合わせたアプローチを必要に応じて使用して Web ページを開発できます。AJAX のサーバー ベースおよびクライアント ベースのプログラミング モデルには、次のような特徴があります。

  • サーバー ベースの AJAX 開発をサポートするサーバー コントロール。たとえば、ScriptManagerUpdatePanelUpdateProgressTimer などのコントロールです。これらのコントロールにより、リッチ クライアント動作 (部分ページ レンダリングや非同期ポストバック時の更新の進行状況の表示など) を、クライアント スクリプトをほとんど使用せずに作成できます。

  • クライアント ベースで、ブラウザ非依存のオブジェクト指向開発をサポートする Microsoft AJAX Library。AJAX 対応の新しいサーバー コントロールをサポートするだけでなく、クライアント ライブラリによって、DOM 要素を拡張したり DOM 要素を表したりするカスタム クライアント コンポーネントを開発できます。

  • イベントとプロパティが宣言によって設定されるカスタム クライアント コンポーネントにマップされるサーバー コントロールを開発できるサーバー クラス。この機能をサポートするサーバーの種類には、ExtenderControl または ScriptControl のベース クラスから派生するコントロールや IExtenderControl または IScriptControl のインターフェイスを実装するコントロールなどがあります。

  • クライアント スクリプトを使用したスクリプトのグローバリゼーションおよびローカリゼーションのサポート。グローバリゼーションにより、日付と数値をカルチャの値 (ロケール) に基づいて表示できます。ローカリゼーションにより、ローカライズされたコンテンツ (テキストやイメージなど) を UI 要素または例外メッセージのクライアント コンポーネントに指定できます。

  • Web サービスへのアクセスと、ASP.NET の認証、ロール管理、およびプロファイル アプリケーションの各サービスへのアクセス。

.NET Framework version 3.5 では、特定のページで非同期の部分ページ更新を容易に行うことができます。これによって、ページ全体のポストバックによるオーバーヘッドが回避されます。これは、既存のコントロールおよびマークアップを UpdatePanel コントロール内に配置するだけで行うことができます。UpdatePanel コントロール内からのポストバックは非同期のポストバックになり、パネル内のページの一部だけが更新されます。これにより、より滑らかなユーザー エクスペリエンスを実現できます。部分ページ更新の進行状況は、UpdateProgress コントロールを使用して表示できます。

ASP.NET での AJAX 開発についての学習

ASP.NET で AJAX スタイルの Web アプリケーションを開発する方法を学習するには、ドキュメントに記載されている詳細情報を参照してください。「AJAX およびクライアント機能の追加」で説明されているトピックの順序に従って学習してください。

Web サービスとアプリケーション サービス

.NET Framework version 3.5 では、ASP.NET (.asmx) の Web サービスと WCF ベースの Web サービスの両方を作成できます。これらのサービスは、Microsoft AJAX Library を使用することで、Web ページでクライアント スクリプトから呼び出すことができます。また、フォーム認証、ロール管理、プロファイルなど、Web サービスとして公開されているサーバー ベースのアプリケーション サービスも呼び出すことができます。これらのアプリケーション サービスは、AJAX 対応の Web ページ、Window フォーム クライアントなどの WCF 互換のアプリケーションで使用できます。これにより、これらの ASP.NET テクノロジまたは WCF テクノロジを使用して構築されたアプリケーションは、アプリケーション サービスが利用可能にする情報を共有することができます。詳細については、「ASP.NET AJAX での Web サービス」および「ASP.NET Web Services の使用」を参照してください。

ListView データ コントロール

ListView コントロールは、既存のデータ コントロールのさまざまな側面を兼ね備えています。ListView コントロールは、DataList コントロールおよび Repeater コントロールと同様に、反復構造内でデータを表示する場合に便利です。これらのコントロールとは異なり、ListView コントロールは、並べ替え機能やページング機能に加えて、編集、挿入、および削除の各操作をサポートしています。ListView には、新しい DataPager コントロールにより、ページング機能が付与されます。

ListView コントロールは自由にカスタマイズできるコントロールです。このコントロールを使用すると、テンプレートとスタイルを使用してコントロールの UI を定義できます。RepeaterDataList、および FormView の各コントロールと同様に、ListView コントロールのテンプレートは、ブラウザで特定の UI を描画するように定義されていません。詳細については、「ListView Web サーバー コントロールの概要」を参照してください。

DataPager コントロール

DataPager コントロールを使用すると、ListView コントロールなどの IPageableItemContainer インターフェイスを実装するコントロールにより表示されるデータを、ページに分けて表示できます。DataPager コントロールは、組み込みのページング UI をサポートしています。NumericPagerField オブジェクトを使用すると、ページング UI を指定できます。これにより、ユーザーはページ番号でページを選択できるようになります。また、NextPreviousPagerField オブジェクトを使用すると、ユーザーは 1 ページずつ移動したり、最初のページや最後のページに直接移動したりできるようになります。さらに、TemplatePagerField オブジェクトを使用することで、カスタム ページング UI を作成することもできます。

LinqDataSource コントロール

LinqDataSource コントロールは、ASP.NET データ ソース コントロールのアーキテクチャを使用して、統合言語クエリ (LINQ) を公開します。データの取得または変更を行う Web ページを作成する場合に、LINQ によって提供されるプログラミング モデルを利用するには、LinqDataSource コントロールを使用します。データのやり取りに使用するコマンドを LinqDataSource コントロールで自動作成できるようにすることで、Web ページのコードを単純化できます。LinqDataSource コントロールを使用してデータ操作を実行する場合、SqlDataSource コントロールまたは ObjectDataSource コントロールを使用して同じデータ操作を実行する場合と比べて、データ操作を実行するために記述するコードの量が少なくて済みます。また、LinqDataSource コントロールを使用する場合、1 つのプログラミング モデルを習得するだけで、さまざまな種類のデータ ソースとやり取りできます。

宣言型マークアップを使用すると、データベースのデータや、コレクションなどのデータ コレクションのデータに接続する LinqDataSource コントロールを作成できます。マークアップで、データを表示、フィルタ処理、並べ替え、およびグループ化するための基準を指定できます。また、データ ソースが SQL データベースのテーブルの場合、LinqDataSource コントロールを構成してデータを更新、挿入、および削除することもできます。これらのタスクを実行するために、SQL コマンドを記述する必要はありません。LinqDataSource クラスには、表示動作と更新動作をカスタマイズできるようにするイベント モデルが用意されています。詳細については、「LinqDataSource Web サーバー コントロールの概要」を参照してください。

ASP.NET マージ ツール

ASP.NET マージ ツール (Aspnet_merge.exe) を使用すると、ASP.NET プリコンパイル ツール (Aspnet_compiler.exe) で作成したアセンブリを結合および管理することができます (このマージ ツールは、Visual Studio 2005 のアドオンとして以前にリリースされたものです)。このマージ ツールでは、サイトの単一のアセンブリが作成されます。Web サイト全体のアセンブリ、Web サイトのフォルダごとのアセンブリ、または Web サイトの UI (ページおよびコントロール) を構成するファイルのみのアセンブリを作成できます。

s57a598e.alert_note(ja-jp,VS.90).gifメモ :

この機能は、Visual Web Developer Express Edition では使用できません。

詳細については、「ASP.NET マージ ツール (Aspnet_merge.exe)」を参照してください。ASP.NET コンパイラ ツールの詳細については、「ASP.NET コンパイル ツール (Aspnet_compiler.exe)」を参照してください。

Visual Web Developer の拡張機能

以下のセクションでは、Visual Studio 2008 および Visual Web Developer Express Edition の拡張機能と新機能についての情報を提供します。

新しいデザイン ビューおよび CSS デザイン ツール

Web ページ デザイナでは、デザイン ビュー、ソース ビュー、またはデザイン ビューとソース ビューが同時に表示される分割ビューで作業できるようになりました。

Visual Studio では、カスケード スタイルシート (CSS) を簡単に操作できるツールが用意されています。[CSS のプロパティ] ウィンドウなどの新しい UI ツールを使用して、デザイン ビューのレイアウトおよびスタイルのコンテンツをデザインできます。またデザイン ビューでは、WYSIWYG ビジュアル レイアウト ツールを使用して、配置、埋め込み、およびマージンの変更を直接行うことができます。

詳細については、次のトピックを参照してください。

JScript および ASP.NET AJAX 用の IntelliSense

Visual Studio 2008 と Visual Web Developer Express Edition には、大幅の強化された IntelliSense が搭載されており、これは ECMAScript (JScript または JavaScript) でコーディングする場合、および Microsoft AJAX Library を使用する AJAX スタイルの Web アプリケーション用のクライアント スクリプトを記述する場合に使用できます。IntelliSense は、script 要素のクライアント スクリプト、および参照される .js スクリプト ファイルに対して使用できます。

また、IntelliSense で XML コード コメントが表示されます。XML コード コメントは、クライアント スクリプトの概要、パラメータ、および戻り値の詳細を記述するために使用されます。また、ASP.NET AJAX では、IntelliSense に ASP.NET AJAX の型およびメンバを指定するためにも XML コード コメントが使用されます。IntelliSense は、XML コード コメントを使用する外部スクリプト ファイルの参照でもサポートされます。

詳細については、次のトピックを参照してください。

Web アプリケーション プロジェクト

以前に Visual Studio 2005 のアドインとしてリリースされた Web アプリケーション プロジェクトは、Visual Studio および Visual Web Developer Express Edition に統合されました。Web アプリケーション プロジェクト モデルを使用することで、Web サイトを Bin フォルダ内の単一のアセンブリにコンパイルし、明示的にプロジェクト リソースを定義することができます。

この Web アプリケーション プロジェクト モデルでは、Visual Studio .NET 2003 の Web プロジェクトと同じプロジェクト セマンティクス、ビルド セマンティクス、およびコンパイル セマンティクスが使用されます。これにより、Visual Studio .NET 2003 の Web サイトを現在のバージョンの Visual Studio または Visual Web Developer Express Edition に簡単に移行できます。

Web アプリケーション プロジェクトは、Visual Studio 2005 で導入された Web サイト プロジェクトを置き換えるものではありません。その代わりに、別のプロジェクト モデルを用意することで、Web アプリケーションの配置方法と維持方法に関する多くのオプションを提供します。

詳細については、次のトピックを参照してください。

マルチターゲット Web アプリケーション

Visual Studio では、.NET Framework の特定バージョンを Web アプリケーションの対象にすることができるようになりました。Visual Studio の 1 つのインスタンスを使用して、.NET Framework Versions 2.0、3.0 (Windows Vista)、および 3.5 対応の Web アプリケーションを開発できます。Visual Web Developer Express Edition では、.NET Framework 3.5 を対象とするアプリケーションしか作成できません。ただし、後で関連するプロジェクト プロパティを変更することで、対象となる .NET Framework のバージョンを 2.0、3.0、または 3.5 にすることができます。

詳細については、次のトピックを参照してください。

デザイナと IntelliSense が LINQ をサポート

Visual Studio 2008 の一連の新機能は、統合言語クエリ (LINQ) をサポートしており、強力なクエリ機能を C# および Visual Basic の言語構文に拡張しています。LINQ により、標準的で学習しやすいデータのクエリと変換のためのパターンが提供されます。また、LINQ は、すべての種類のデータ ソースをサポートするように拡張できます。デザイナでは、データ クラスが視覚的に表現されるので、データベース内のオブジェクトにマップするクラスをすばやく作成および編集できます。IntelliSense のサポートにより、LINQ 言語の構文に関する情報、および LinqDataSource コントロールの使用に関する情報がソース ビューに提示されます。詳細については、「LinqDataSource Web サーバー コントロールの概要」を参照してください。

Web プロジェクトでの WCF サービスの作成と使用のサポート

Visual Studio では、ASP.NET Web サービス (.asmx ファイル) と WCF Web サービス (.svc ファイル) をプロジェクトに追加できます。マネージ コードで記述されたクライアント アプリケーションは、通常はプロキシ クラスを介してこれらの Web サービスにアクセスします。たとえば、[Web 参照の追加] ダイアログ ボックスを使用すると、これらのアプリケーションは Visual Studio が生成するプロキシ クラスを使用します。AJAX アプリケーションは、クライアント スクリプトで自動的に生成されるプロキシ クラスを使用することで、ブラウザから Web サービスにアクセスできます。詳細については、「ASP.NET アプリケーション サービスの概要」を参照してください。

ASP.NET AJAX エクステンダ コントロールのサポート

AJAX エクステンダ コントロールは、ASP.NET Web アプリケーションにおいて、標準の Web サーバー コントロールのクライアント機能を拡張します。TextBox コントロール、Button コントロール、Panel コントロールなどの Web サーバー コントロールに 1 つ以上のエクステンダをバインドすることで、より高機能な Web ベースのユーザー エクスペリエンスを提供できます。

Visual Studio は、すべての ASP.NET AJAX エクステンダ コントロールをサポートしています。これには、自分で作成したエクステンダ コントロールが含まれるほか、ASP.NET Web サイトで入手できる ASP.NET AJAX Control Toolkit などのソースから追加したエクステンダ コントロールも含まれます。

s57a598e.alert_note(ja-jp,VS.90).gifメモ :

ASP.NET AJAX Control Toolkit は、コミュニティでサポートされているライブラリであり、Microsoft はサポートしていません。

詳細については、次のトピックを参照してください。

参照

概念

ASP.NET の主要チュートリアル

Visual Studio 2008 の新機能

Web アプリケーション プロジェクトの概要

AJAX およびクライアント機能の追加

ASP.NET コントロールへの AJAX 機能の追加

Visual Studio と Visual Web Developer Express Edition の比較

その他の技術情報

AJAX サーバー コントロール