注释
此类 DataSet 和相关类是 2000 年代初的旧版 .NET Framework 技术,使应用程序能够在应用与数据库断开连接时处理内存中的数据。 这些技术对于使用户能够修改数据并将更改保留回数据库的应用特别有用。 尽管数据集是经过证实的成功技术,但新 .NET 应用程序的建议方法是使用 Entity Framework Core。 Entity Framework 提供了一种更自然的方式来将表格数据用作对象模型,并且具有更简单的编程接口。
N 层 数据应用程序是拆分为多个 层的数据应用程序。 也称为“分布式应用程序”和“多层应用程序”,n 层应用程序将处理分为在客户端和服务器之间分布的离散层。 开发访问数据的应用程序时,应在构成应用程序的各个层之间明确分离。
典型的 n 层应用程序包括演示层、中间层和数据层。 在 n 层应用程序中分离各个层的最简单方法是为要包括在应用程序中的每个层创建离散项目。 例如,呈现层可能是 Windows 窗体应用程序,而数据访问逻辑可能是位于中间层中的类库。 此外,呈现层可能通过 Web 服务等服务与中间层中的数据访问逻辑通信。 将应用程序组件分离为单独的层可以提高应用程序的可维护性和可伸缩性。 它通过使新技术更易于被单个层应用,从而无需重新设计整个解决方案。 此外,n 层应用程序通常将敏感信息存储在中间层中,从而保持与呈现层的隔离。
Visual Studio 包含多个功能,可帮助开发人员创建 n 层应用程序:
- 该数据集提供了 一个 DataSet Project 属性,可用于将数据集(数据实体层)和 TableAdapters(数据访问层)分隔到离散项目中。 
- Visual Studio 中的 LINQ to SQL 工具提供设置,用于将 DataContext 和数据类生成到单独的命名空间中。 这可实现数据访问和数据实体层的逻辑分离。 
- LINQ to SQL 提供了 Attach 一种方法,使你能够将来自应用程序中不同层的 DataContext 组合在一起。 有关详细信息,请参阅 使用 LINQ to SQL 的 N 层和远程应用程序。 
表示层
呈现层是用户与应用程序交互的层。 它通常还包含其他应用程序逻辑。 典型的演示层组件包括:
- 数据绑定组件,如 BindingSource 和 BindingNavigator。 
- 数据的对象表示形式,例如用于表示层的 LINQ to SQL 实体类。 
呈现层通常通过使用服务引用(例如 Visual Studio 应用程序中的 Windows Communication Foundation Services 和 WCF 数据服务 )访问中间层。 呈现层不直接访问数据层。 呈现层通过中间层中的数据访问组件与数据层通信。
中间层
中间层是表示层和数据层用于相互通信的层。 典型的中间层组件包括:
- 业务逻辑,例如业务规则和数据验证。 
- 数据访问组件和逻辑,例如: 
- 数据的对象表示形式,例如 LINQ to SQL 实体类。 
- 常见的应用程序服务,例如身份验证、授权和个性化。 
 
下图显示了 Visual Studio 中提供的功能和技术,以及它们可能适合 n 层应用程序的中间层的位置。

中间层
中间层通常使用数据连接连接到数据层。 此数据连接通常存储在数据访问组件中。
数据层
数据层是存储应用程序数据的服务器(例如运行 SQL Server 的服务器)。
下图显示了 Visual Studio 中可用的功能和技术,以及它们可能适合 n 层应用程序的数据层的位置。

数据层
无法直接从呈现层中的客户端访问数据层。 相反,中间层中的数据访问组件用于表示和数据层之间的通信。
帮助进行 n 层开发
以下主题提供有关使用 n 层应用程序的信息:
另请参阅
- 演练:创建 n 层数据应用程序
- 分层更新
- Visual Studio 中的 数据集工具
- 在 Visual Studio 中访问数据