ADONET统一了数据容器类编程接口无论您打算编写何种应用程序windows窗体web窗体还是web服务都可以通过同一组类来处理数据不管在后端的数据源数sql server数据库
ADO与ADONET既有相似也有区别他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序并且易于使用高速度低内存支出和占用磁盘空间较少支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能但是ADO使用OLE DB接口并基于微软的COM技术而ADONET拥有自己的ADONET接口并且基于微软的NET体系架构众所周知NET体系不同于COM体系ADONET接口也就完全不同于ADO和OLE DB接口这也就是说ADO与ADONET两种数据访问方式
数据访问方式的历史
下面简单的回顾一下微软的数据访问方式所走过的几个阶段
ODBC – (Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术使用ODBC应用程序能够通过单一的命令操纵不同的数据库而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动
DAO (Data Access Objects)不像ODBC那样是面向C/C++程序员的它是微软提供给Visual Basic开发人员的一种简单的数据访问方法用于操纵Access数据库
RDO – 在使用DAO访问不同的关系型数据库的时候Jet引擎不得不在DAO和ODBC之间进行命令的转化导致了性能的下降而RDO(Remote Data Objects)的出现就顺理成章了
OLE DB – 随着越来越多的数据以非关系型格式存储需要一种新的架构来提供这种应用和数据源之间的无缝连接ADO与ADONET基于COM(Component Object Model)的OLE DB应运而生了
ADO – 基于OLE DB之上的ADO更简单更高级更适合Visual Basic程序员同时消除了OLE DB的多种弊端取而代之是微软技术发展的趋势
ADO与ADONET对照
在开始设计NET体系架构时微软就决定重新设计数据访问模型以便能够完全的基于XML和离线计算模型两者的区别主要有
ADO以Recordset存储而ADONET则以DataSet表示Recordset看起来更像单表如果让Recordset以多表的方式表示就必须在SQL中进行多表连接反之DataSet可以是多个表的集合ADO 的运作是一种在线方式这意味着不论是浏览或更新数据都必须是实时的ADONET则使用离线方式在访问数据的时候ADONET会利用XML制作数据的一份幅本ADONET的数据库连接也只有在这段时间需要在线
由于ADO使用COM技术这就要求所使用的数据类型必须符合COM规范而ADONET基于XML格式数据类型更为丰富并且不需要再做COM编排导致的数据类型转换从而提高了整体性能
小结
ADONET为NET构架提供了优化的数据访问模型和基于COM的ADO是完全两样的数据访问方式