N 层 .NET Framework 数据应用程序概述
注意
数据集和相关类是 2000 年代初的旧 .NET Framework 技术,使应用程序能够在应用程序与数据库断开连接时处理内存中的数据。 这些方法对于使用户能够修改数据并持续更改回数据库的应用程序特别有用。 虽然数据集已被证明是一项非常成功的技术,但我们建议新的 .NET 应用程序使用 Entity Framework Core。 实体框架提供了一种更自然的方式来将表格数据作为对象模型,并且具有更简单的编程接口。
N 层数据应用程序是分为多个层的数据应用程序 。 n 层应用程序亦称为“分散式应用程序”和“多层应用程序”,可以将处理操作分离到独立的层中,这些层分散在客户端和服务器之间。 开发访问数据的应用程序时,应在构成应用程序的各个层之间进行明确的分离。
典型的 n 层应用程序包括一个表示层、一个中间层和一个数据层。 在 n 层应用程序中,分离各层的最简单的方法是为要包括在应用程序中的每一层创建相互独立的项目。 例如,表示层可能是 Windows 窗体应用程序,而数据访问逻辑可能是位于中间层的类库。 此外,表示层可通过 Web 服务等服务与中间层中的数据访问逻辑进行通信。 将应用程序组件分离到不同的层可提高应用程序的可维护性和可伸缩性。 该结构之所以具有这种优点,是因为它能轻松采用可应用于单个层而无需重新设计整个解决方案的新技术。 此外,n 层应用程序通常将敏感信息存储在中间层中,从而与表示层保持隔离。
Visual Studio 包含多个功能,可帮助开发人员创建 n 层应用程序:
数据集提供“数据集项目”属性,支持将数据集(数据实体层)和 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 服务和 WCF 数据服务)来访问中间层。 表示层无法直接访问数据层。 表示层通过中间层中的数据访问组件与数据层进行通信。
中间层
中间层是表示层和数据层用来相互通信的层级。 典型的中间层组件包括以下内容:
业务逻辑,例如业务规则和数据验证。
数据访问组件和逻辑,例如:
数据的对象表示形式,如 LINQ to SQL 实体类。
常用应用程序服务,如身份验证、授权和个性化。
下图显示 Visual Studio 中可用的功能和技术,以及它们在哪些场景下可能适用于 n 层应用程序的中间层。
中间层
中间层通常通过使用数据连接来连接到数据层。 此数据连接通常存储在数据访问组件中。
数据层
数据层是存储应用程序数据的服务器(例如运行 SQL Server 的服务器)。
下图显示 Visual Studio 中可用的功能和技术,以及它们在哪些场景下可能适用于 n 层应用程序的数据层。
数据层
无法直接从表示层中的客户端访问数据层。 取而代之的是,中间层的数据访问组件用于表示层和数据层之间的通信。
帮助进行 n 层开发
以下主题提供有关开发 n 层应用程序的信息: