次の方法で共有


ASP.NET Dynamic Data のガイドライン

更新 : 2007 年 11 月

ASP.NET Dynamic Data では、ニーズに合ったカスタマイズのレベルを選択できます。このセクションでは、タスクの実行に役立つガイドラインおよび提案事項を紹介します。

Dynamic Data を使用すると、完全な動的機能を持つ完成された Web アプリケーションをすばやく作成できます。さらに、簡単にデータベースを Web サイトに統合したり、必要な特定の動的機能を選択したりできます。

ASP.NET Dynamic Data は、幅広いカスタマイズが可能で、プレゼンテーション層からデータ層のニーズに Web サイトを適合させることができます。

スキャフォールディングを使用した Web サイトの作成

データ ドリブン Web サイトをすばやく作成する必要がある場合は、ASP.NET Dynamic Data を使用することで、完全な動的機能を持つ完成された Web アプリケーションを簡単に作成できます。Dynamic Data は、Web スキャフォールディングをサポートしています。これにより、データ モデルに基づくアプリケーションを最小限のコードで実行でき、目標を達成できます。この Web スキャフォールディングは標準の UI を持ちますが、テーブルに対する作成 (Create)、読み取り (Read)、更新 (Update)、および削除 (Delete) という CRUD 操作に対応しています。さらに、リレーションシップが完全にサポートされます。スキャフォールディングを使用して基本的なアプリケーションを作成し、後で適切なカスタマイズを適用できます。詳細については、「チュートリアル : スキャフォールディングを使用した新しい Dynamic Data Web サイトの作成」を参照してください。

詳細については、「ASP.NET Dynamic Data の概要」を参照してください。

既存の Web サイトへの動的データの追加

ASP.NET Dynamic Data では、必要な特定の動的機能を選択することで、動的データコントロール動作を既存の Web サイトに統合できます。そのためには、次の手順を実行する必要があります。

詳細については、「チュートリアル : 既存の Web サイトへの Dynamic Data の追加」を参照してください。

検証属性の使用

System.ComponentModel.DataAnnotations 属性を使用してメタデータをデータ モデルのデータ フィールドに適用することで、追加の情報を Dynamic Data に提供できます。Dynamic Data は、この情報を使用して、たとえばデータ フィールドの表示および編集用の UI のレンダリング方法をカスタマイズすることができます。

検証属性の使用

検証属性を適用する場合は、次の使用上の制約に従う必要があります。

  • 属性は、プロパティまたはフィールドに適用できます。

  • 属性は 1 回しか適用できません。

検証属性の適用

任意の System.ComponentModel.DataAnnotations 属性をデータ フィールドに適用する場合に従う必要がある手順を次に示します。

  • Web アプリケーションの App_Code フォルダに、データ コンテキスト部分クラスを含むクラス ファイルを実装します。このクラスは、属性を適用するデータ フィールドが含まれているテーブルを表します。

  • 関連メタデータ クラスとして動作する別のクラスを作成します。このクラスには任意の名前を使用できますが、クラス名は、次に説明するように、部分クラスに適用される MetadataTypeAttribute 属性内で参照する名前と一致している必要があります。前の手順で作成したクラスと同じクラス ファイルにこのクラスを入れます。

  • 関連メタデータ クラス内で、パブリック プロパティまたはフィールドを作成し、検証属性を適用するデータ フィールドと同じ名前を付けます。

  • 部分クラス定義に MetadataTypeAttribute 属性を適用します。属性のパラメータは、関連メタデータ クラスの名前です。

検証エラーの生成

System.ComponentModel.DataAnnotations 属性を使用すると、検証が失敗したときにカスタム エラーを作成したり、組み込みのエラーを使用したりできます。このため、検証属性は、次のいずれかの名前付きエラー パラメータを受け取ることができます。

  • ErrorMessage: このパラメータは、検証コントロールに関連付けられているエラー メッセージを指定します。このパラメータを使用すると、ローカライズされないカスタム エラー メッセージを指定し、既定のローカライズ可能なメッセージを (多くの場合) オーバーライドできます。

  • ErrorMessageResourceName: このパラメータは、検証コントロールに関連付けられているエラー メッセージ リソースを指定します。このパラメータを使用して、ローカライズされないエラー メッセージが含まれているリソース ファイルを指定します。

  • ErrorMessageResourceType: このパラメータは、検証コントロールに関連付けられているエラー メッセージの種類を指定します。このパラメータを使用して、リソース ファイルに定義されているエラー メッセージを識別します。リソース ファイルは、前のパラメータを使用して指定します。

検証属性エラー メッセージを使用する場合、次のような選択肢があります。

  • 必ずローカライズされる既定のエラー メッセージを使用できます。この場合は、前に示したどのパラメータも指定する必要はありません。

  • ErrorMessage パラメータを使用して、既定のメッセージをオーバーライドする、ローカライズされないカスタム エラー メッセージを提供できます。

  • ErrorMessageResourceName パラメータを使用して、ローカライズされないリソース エラー メッセージ ファイルを提供できます。次に、ErrorMessageResourceType パラメータを使用して、リソース ファイルに含まれているエラー メッセージを指定します。

データ モデルの選択

LINQ to SQL と Entity Framework には共通する機能が多くありますが、それぞれ異なるシナリオを対象にした機能を持ちます。LINQ to SQL は、既存の Microsoft SQL Server スキーマに対してアプリケーションを迅速に開発することを主な目標としています。Entity Framework は、既存のリレーショナル スキーマへの疎結合の柔軟なマッピングを介して、Microsoft SQL Server およびサードパーティのデータベースへのオブジェクトおよびストレージ層アクセスを提供します。

LINQ to SQL

LINQ to SQL は、Microsoft SQL Server データベースを対象とする機能を備えています。既存のデータベース スキーマの厳密に型指定されたビューを実現します。

LINQ to SQL は、既存のデータベース スキーマと .NET Framework クラスとの直接の一対一のマッピングをサポートしています。1 つのテーブルは 1 つのクラスにマップでき、外部キーは厳密に型指定されたリレーションシップとして公開できます。

テーブル、ビュー、テーブル値関数に対する LINQ クエリを作成し、厳密に型指定されたオブジェクトとして結果を返し、厳密に型指定されたメソッドを介して厳密に型指定された結果を返すストアド プロシージャを呼び出すことができます。LINQ to SQL の重要なデザイン上の原則は、ほとんどの一般的なケースに対応することです。したがって、たとえば、顧客の Orders プロパティを介して注文のコレクションにアクセスしたときにその顧客の注文が以前に取得されていない場合、LINQ to SQL は注文を自動的に取得します。

ADO.NET Entity Framework

ADO.NET Entity Framework は、エンタープライズ シナリオを対象とする機能を備えています。通常、企業のデータベースは、データベース管理者によって管理されています。このスキーマは、通常、優れたアプリケーション モデルを示す代わりに、ストレージに関する検討事項 (パフォーマンス、一貫性、パーティション分割) に最適化され、使用データや使用パターンがやがて変化するのに合わせて変更されます。

Entity Framework は、疎結合のアプリケーション指向のデータ モデルの公開を対象に設計されており、既存のデータベース スキーマとは大きく異なります。

たとえば、単一のクラス (またはエンティティ) を複数のテーブル/ビューにマップしたり、複数のクラスを同じテーブル/ビューにマップしたりできます。継承階層を (LINQ to SQL の場合と同様に) 単一のテーブル/ビューや複数のテーブル/ビューにマップできます。この柔軟なマッピングは、時間の経過と共に変化するデータベースのスキーマに、アプリケーションを再コンパイルする必要なく対応するために、宣言的に指定されます。

Entity Framework には、アプリケーション データ モデルに対して多くの LINQ to SQL と同じ機能を公開する LINQ to Entities が含まれます。

詳細については、「Introducing LINQ to Relational Data」を参照してください。

参照

処理手順

チュートリアル : 既存の Web サイトへの Dynamic Data の追加

チュートリアル : 既存の Web サイトへの Dynamic Data の追加

概念

ASP.NET Dynamic Data のフィールド テンプレートの概要

ASP.NET Dynamic Data スキャフォールディングとページ テンプレートの概要

ASP.NET Dynamic Data の概要

参照

部分クラスと部分メソッド (C# プログラミング ガイド)

その他の技術情報

LINQ to SQL

ADO.NET Entity Framework