ADO.NET
ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在NET编程环境中优先使用的数据访问接口。
基本信息
- 外文名
ActiveX Data Objects
- 发布单位
微软公司
- 分类
数据访问接口
- 特点
平台互用性
- 起源
ADO(ActiveX Data Objects)
- 性质
COM组件库
功能
ado.net可让开发人员以一致的方式存取资料来源(例如SQL Server与XML),以及透过OLE DB和ODBC所公开的资料来源。资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取、处理及更新其中所含的资料。
ado.net可将资料管理的资料存取分成不连续的元件,这些元件可分开使用,也可串联使用ado.net也包含.NET Framework资料提供者,以用于连接资料库、执行命令和撷取结果。这些结果会直接处理、放入ado.net DataSet 物件中以便利用机器操作 (Ad Hoc)的方式公开给使用者、与多个来源的资料结合,或在各层之间进行传递。DataSet物件也可以与.NET Framework 资料提供者分开使用,以便管理应用程序本机的资料或来自 XML 的资料。
ado.net类别 (Class) 位于 System.Data.dll 中,而且会与 System.Xml.dll 中的XML 类别整合。
ado.net可为撰写 Managed 程式码的开发人员提供类似于ActiveX Data Objects(ADO)提供给原生元件物件模型 (Component Object Model,COM)开发人员的功能。建议使用ado.net而非ADO来存取.NET 应用程序中的资料。
ADO .NET会提供最直接的方法,让开发人员在 .NET Framework 中进行资料存取。
隐私权声明:
System.Data.dll、System.Data.Design.dll、System.Data.OracleClient.dll、System.Data.SqlXml.dll、System.Data.Linq.dll、System.Data.SqlServerCe.dll 和 System.Data.DataSetExtensions.dll 组件无法区分使用者的私用资料与非私用资料。这些组件不会收集、储存或传输任何使用者的私用资料。不过,协力厂商应用程序可能会使用这些组件来收集、存储或传输使用者的私用资料。
发展
1998年起,因为Web应用程序的窜起,大大改变了许多应用程序的设计方式,传统的数据库连线保存设计法无法适用于此类应用程序,这让ADO应用程序遇到了很大的瓶颈,也让微软开始思考让资料集(Resultset,在ADO中称为Recordset)能够离线化的能力,以及能在用户端创建一个小型数据库的概念,这个概念就是ado.net中离线型资料模型 (disconnected data model) 的基础,而在ADO的使用情形来看,数据库连线以及资源耗用的情形较严重(像是 Server-side cursor 或是 Recordset.Open 会保持连线状态),在ado.net中也改良了这些物件,构成了能够减少数据库连线和资源使用量的功能。XML的使用也是这个版本的重要发展之一。2000年,微软的Microsoft .NET计划开始成形,许多的微软产品都冠上.NET的标签,ADO+也不例外,改名为ado.net并包装到.NET Framework类别库中,成为.NET平台中唯一的资料存取元件。
架构
传统的资料处理主要是依赖相互连接的双层式模型。随着资料处理朝多层次架构发展,程式设计人员也逐渐改用中断连接的方式,使应用程序更具延展性(Scalability)。
ADO .NET3.0 中用于存取和管理资料的两个主要元件是 .NET Framework 资料提供者和DataSet。
资料提供者
.NET Framework 资料提供者是一种明确设计用于管理资料以及快速存取顺向只读资料的元件。Connection 物件会提供资料来源的连接。Command 物件可让开发人员存取资料库命令,以便传回资料、修改资料、执行预存程序 (Stored Procedure),并且传送或撷取参数资讯。DataReader则可提供来自资料来源的高效能资料流。最后,DataAdapter会提供 DataSet 物件与资料来源之间的桥接器 (Bridge)。DataAdapter 会使用 Command 物件与资料来源处执行 SQL 命令,以便将资料载入 DataSet,并且将 DataSet 内的资料变更调节回资料来源。
DataSet
ado.net DataSet 的设计已明确指出它可独立于任何资料来源外而存取资料。因此,它可与多个不同的资料里来源搭配使用、与 XML 资料搭配使用,或用于管理应用程序的本机资料。DataSet 包含一或多个由资料列和资料行所组成的DataTable物件集合,以及 DataTable 物件中的主索引键、外部索引键、条件约束 (Constraint) 及资料的相关资讯。
右图说明 .NET Framework 资料提供者与 DataSet 之间的关联性。