n 層データ アプリケーションの概要

更新 : 2007 年 11 月

n 層データ アプリケーションは、複数の層に分離されるデータ アプリケーションです。n 層アプリケーションは、"分散アプリケーション" および "多階層アプリケーション" とも呼ばれ、クライアントとサーバー間に分散された別個の層に処理を分離します。データにアクセスするアプリケーションを開発する場合は、アプリケーションを構成する各種の層を明確に分離する必要があります。

一般的な n 層アプリケーションには、プレゼンテーション層、中間層、およびデータ層が含まれます。n 層アプリケーションで各層を分離する最も簡単な方法は、アプリケーションに組み込む層ごとに別個のプロジェクトを作成することです。たとえば、プレゼンテーション層を Windows フォーム アプリケーションにする一方で、データ アクセス ロジックを、中間層に配置されるクラス ライブラリにすることができます。また、プレゼンテーション層では、WCF サービスなどのサービスを通して中間層のデータ アクセス ロジックと通信できます。アプリケーション コンポーネントを別個の層に分離すると、アプリケーションの保守容易性とスケーラビリティが向上します。これは、ソリューション全体を再設計しなくても 1 つの層に適用できる、新しい技術を簡単に導入できるようにすることで実現されます。さらに、通常、n 層アプリケーションでは、機密情報が中間層に格納され、プレゼンテーション層から分離されます。

Visual Studio には、開発者が n 層アプリケーションを作成するときに役立つ機能がいくつか用意されています。

プレゼンテーション層

プレゼンテーション層は、ユーザーがアプリケーションと対話する層です。多くの場合、追加のアプリケーション ロジックも含まれています。一般的なプレゼンテーション層のコンポーネントには、次のようなものがあります。

次の図は、Visual Studio で使用できる機能および技術と、n 層アプリケーションのプレゼンテーション層においてそれらが適合する位置を示しています。

プレゼンテーション層
プレゼンテーション層コンポーネント

通常、プレゼンテーション層は、サービス参照 (Windows Communication Foundation サービスと ADO.NET データ サービス アプリケーションなど) を使用して、中間層にアクセスします。プレゼンテーション層からデータ層に直接アクセスすることはありません。プレゼンテーション層は、中間層のデータ アクセス コンポーネントを通してデータ層と通信します。

中間層

中間層は、プレゼンテーション層とデータ層が互いに通信するために使用する層です。一般的な中間層のコンポーネントには、次のようなものがあります。

  • ビジネス ロジック (ビジネス ルールやデータ検証など)

  • 次のようなデータ アクセス コンポーネントおよびロジック

次の図は、Visual Studio で使用できる機能および技術と、n 層アプリケーションの中間層においてそれらが適合する位置を示しています。

中間層
中間層コンポーネント

通常、中間層は、データ接続を使用してデータ層に接続します。一般に、このデータ接続はデータ アクセス コンポーネントに格納されます。

データ層

データ層は、基本的に、アプリケーションのデータを格納するサーバー (SQL Server を実行しているサーバーなど) です。

次の図は、Visual Studio で使用できる機能および技術と、n 層アプリケーションのデータ層においてそれらが適合する位置を示しています。

データ層
データ層コンポーネント

プレゼンテーション層のクライアントからデータ層に直接アクセスすることはできません。代わりに、プレゼンテーション層とデータ層の間の通信では、中間層のデータ アクセス コンポーネントが使用されます。

n 層開発のためのヘルプ

n 層アプリケーションを操作するための情報については、次のトピックを参照してください。

方法 : データセットと TableAdapters を別々のプロジェクトに分離する

チュートリアル : n 層データ アプリケーションの作成

チュートリアル : n 層データ アプリケーションへの検証の追加

チュートリアル : ローカル データベース キャッシュを n 層アプリケーションに追加する

LINQ to SQL を使用する n 層アプリケーションとリモート アプリケーション

参照

処理手順

チュートリアル : n 層データ アプリケーションの作成

概念

データの新機能

Visual Studio のデータセットの概要

参照

Attach

その他の技術情報

階層更新

データへのアクセス (Visual Studio)