注
データセットと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリケーションに特に役立ちます。 データセットは非常に成功したテクノロジであることが証明されていますが、新しい .NET アプリケーションでは Entity Framework Core 使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、より簡単なプログラミング インターフェイスを備えています。
N 層 データ アプリケーションは、複数の層に分割されたデータ アプリケーション です。 "分散アプリケーション" および "多層アプリケーション" とも呼ばれる n 層アプリケーションは、クライアントとサーバーの間で分散される個別の層に処理を分離します。 データにアクセスするアプリケーションを開発する場合は、アプリケーションを構成するさまざまな層を明確に分離する必要があります。
一般的な n 層アプリケーションには、プレゼンテーション層、中間層、およびデータ層が含まれます。 n 層アプリケーションでさまざまなレベルを分離する最も簡単な方法は、アプリケーションに含める階層ごとに個別のプロジェクトを作成することです。 たとえば、プレゼンテーション層は Windows フォーム アプリケーションであるのに対し、データ アクセス ロジックは中間層にあるクラス ライブラリである場合があります。 さらに、プレゼンテーション層は、Web サービスなどのサービスを介して中間層のデータ アクセス ロジックと通信する場合があります。 アプリケーション コンポーネントを別々の階層に分離すると、アプリケーションの保守性とスケーラビリティが向上します。 これは、ソリューション全体を再設計する必要なく、1 つのレベルに適用できる新しいテクノロジをより簡単に導入できるようにすることで実現します。 さらに、n 層アプリケーションでは通常、中間層に機密情報が格納され、プレゼンテーション層からの分離が維持されます。
Visual Studio には、開発者が n 層アプリケーションを作成するのに役立ついくつかの機能が含まれています。
データセットには、データセット (データ エンティティ レイヤー) と TableAdapters (データ アクセス 層) を個別のプロジェクトに分離できる DataSet Project プロパティが用意されています。
Visual Studio の LINQ to SQL ツールには、DataContext とデータ クラスを個別の名前空間に生成するための設定が用意されています。 これにより、データ アクセス層とデータ エンティティ層を論理的に分離できます。
LINQ to SQL には、アプリケーションのさまざまな層から DataContext をまとめる Attach メソッドが用意されています。 詳細については、 LINQ to SQL を使用した N 層アプリケーションとリモート アプリケーションに関するページを参照してください。
プレゼンテーション層
プレゼンテーション層は、ユーザーがアプリケーションと対話する層です。 多くの場合、追加のアプリケーション ロジックも含まれています。 一般的なプレゼンテーション層のコンポーネントは次のとおりです。
BindingSourceやBindingNavigatorなどのデータ バインディング コンポーネント。
プレゼンテーション層で使用 する LINQ to SQL エンティティ クラスなど、データのオブジェクト表現。
通常、プレゼンテーション層はサービス参照 ( Visual Studio アプリケーションの Windows Communication Foundation Services や WCF Data Services など) を使用して中間層にアクセスします。 プレゼンテーション層は、データ層に直接アクセスしません。 プレゼンテーション層は、中間層のデータ アクセス コンポーネントを使用してデータ層と通信します。
中間層
中間層は、プレゼンテーション層とデータ層が相互に通信するために使用するレイヤーです。 一般的な中間層コンポーネントは次のとおりです。
ビジネス ルールやデータ検証などのビジネス ロジック。
次のようなデータ アクセス コンポーネントとロジック。
LINQ to SQL エンティティ クラスなどのデータのオブジェクト表現。
認証、承認、パーソナル化などの一般的なアプリケーション サービス。
次の図は、Visual Studio で使用できる機能とテクノロジ、および n 層アプリケーションの中間層に収まる可能性がある機能とテクノロジを示しています。
中間層
中間層は通常、データ接続を使用してデータ層に接続します。 このデータ接続は、通常、データ アクセス コンポーネントに格納されます。
データ層
データ層 は、基本的に、アプリケーションのデータを格納するサーバー (たとえば、SQL Server を実行するサーバー) です。
次の図は、Visual Studio で使用できる機能とテクノロジ、および n 層アプリケーションのデータ層に適合する可能性がある機能とテクノロジを示しています。
データ層
プレゼンテーション層のクライアントからデータ層に直接アクセスすることはできません。 代わりに、中間層のデータ アクセス コンポーネントは、プレゼンテーション層とデータ層間の通信に使用されます。
n層開発のサポート
次のトピックでは、n 層アプリケーションの操作に関する情報を提供します。
データセットと TableAdapter を異なるプロジェクトに分割する
LINQ to SQL を使用した N 層およびリモート アプリケーション
こちらも参照ください
- チュートリアル: n 層データ アプリケーションの作成
- 階層更新
- Visual Studio のデータセットツール
- Visual Studio でデータにアクセスする