ADO
对于用本机代码编写的应用程序,ADO 为 OLE DB 数据提供程序提供基于 COM 的应用程序级别接口。与 ADO.NET 相似,ADO 支持各种开发需要,包括使用与关系数据库和其他存储区中的数据的活连接来创建前端数据库客户端和中间层业务对象。而且,像 ADO.NET 一样,ADO 可构建客户端记录集、使用松耦合记录集、处理 OLE DB 的数据整形行集合。
ADO 还支持一些不通过 ADO.NET 公开的行为,如可滚动的服务器端游标。然而,因为服务器端游标需要保存数据库资源,所以使用它们可能会对应用程序的性能和可缩放性产生极大的负面影响。为了通过防火墙传输 ADO 记录集,您需要配置防火墙以启用 COM 封送请求,并考虑相关的安全后果。COM 封送处理还将数据类型限制为 COM 标准定义的那些数据类型。可选择以 XML 格式保持 ADO 记录集并传输 XML 文本。
ADO.NET
是重要的应用程序级接口,用于在 Microsoft .NET 平台中提供数据访问服务。在 ADO.NET 中,可以使用新的 .NET Framework 数据提供程序来访问数据源。这些数据提供程序包括:
SQL Server .NET Framework 数据提供程序。
OLE DB .NET Framework 数据提供程序。
ODBC .NET Framework 数据提供程序。
Oracle .NET Framework 数据提供程序。
这些数据提供程序可以满足各种开发要求,包括中间层业务对象(它们使用与关系数据库和其他存储区中的数据的活动连接)。
ADO.NET 是专为基于消息的 Web 应用程序而设计的,同时还能为其他应用程序结构提供较好的功能。通过支持对数据的松耦合访问,ADO.NET 减少了与数据库的活动连接数目(即减少了多个用户争用数据库服务器上的有限资源的可能性),从而实现了最大程度的数据共享。
ADO.NET 提供几种数据访问方法。在有些情况下,Web 应用程序或 XML Web services 需要访问多个源中的数据,或者需要与其他应用程序(包括本地和远程应用程序)进行互操作,或者可受益于保持和传输缓存结果,这时使用数据集将是一个明智的选择。作为一种替换方法,ADO.NET 提供数据命令和数据读取器以便与数据源直接通信。使用数据命令和数据读取器直接进行的数据库操作包括:运行查询和存储过程、创建数据库对象、使用 DDL 命令直接更新和删除。
ADO.NET 还通过对分布式 ADO.NET 应用程序的基本对象“数据集”(Dataset) 支持基于 XML 的持久性和传输格式,来实现最大程度的数据共享。数据集是一种关系数据结构,可使用 XML 进行读取、写入或序列化。ADO.NET 数据集使得生成要求应用程序层与多个 Web 站点之间进行松耦合数据交换的应用程序变得很方便。
因为数据集被远程处理为 XML 形式,所以任何两个组件都可共享数据并使用 XML 架构来定义数据集的关系结构。而且,因为数据集的序列化格式是 XML,所以 DataSet 对象可轻松穿过防火墙,而不受任何限制。除了从 XML 加载数据以外,数据集还可用 SQL Server 中的数据以及通过 OLE DB 公开的数据源中的数据来填充,并可保存对这些数据的更改。
数据集的一个主要特性是可用两种方式访问和操作本地数据集内的数据:
作为关系数据库中的表 数据集可以包含一个表或表的集合。数据集的一个重要特征是,它会跟踪其所包含的表之间的关系,就好像它是内存中的关系数据存储区。
作为 XML(可扩展标记语言)结构 数据集中的数据还可按照 XML 数据的形式访问。提供了完成以下操作的方法:以 XML 形式读取和写入数据;以 XML 架构形式读取和写入数据集的结构。此外,为了允许进行同步查看、查询和修改 XML 形式的数据,可将 XmlDataDocument 与数据集相关联。
数据共享 ADO.NET 为组件间以及跨层的数据交换提供基础:数据集可以 XML 的形式在 Internet 上传递,并可通过防火墙。可以在您的应用程序内以关系表的形式查看数据集,而在其他一些应用程序中以 XML 数据结构的形式查看同一数据集。数据集提供方便的双向转换:从数据集表到 XML 文档,以及从 XML 文档到数据集表。
如果使用 COM 封送处理传输 ADO 记录集,目标应用程序必须编写成使用记录集数据结构。与只读取 XML 数据相比较,它所要求的编程难度更大。或者,可以将 ADO 记录集保持为 XML,这样可以更方便地与其他应用程序和服务共享数据。