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是完全兩樣的數據訪問方式
From:http://tw.wingwit.com/Article/program/net/201311/12605.html