ADO與ADO.NET既有類似也有區別,他們都可以編寫對數據庫服務器中的數據進行訪問和操做的應用程序,而且易於使用、高速度、低內存支出和佔用磁盤空間較少,支持用於創建基於客戶端/服務器和 Web 的應用程序的主要功能。可是ADO使用OLE DB接口並基於微軟的COM技術,而ADO.NET擁有本身的ADO.NET接口而且基於微軟的.NET體系架構。衆所周知.NET體系不一樣於COM體系,ADO.NET接口也就徹底不一樣於ADO和OLE DB接口,這也就是說ADO.NET和ADO是兩種數據訪問方式。 程序員
2. 數據訪問方式的歷史 數據庫
下面簡單的回顧一下微軟的數據訪問方式所走過的幾個階段: 服務器
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 – 隨着愈來愈多的數據以非關係型格式存儲,須要一種新的架構來提供這種應用和數據源之間的無縫鏈接,基於COM(Component Object Model)的OLE DB應運而生了。 設計
ADO – 基於OLE DB之上的ADO更簡單、更高級、更適合Visual Basic程序員,同時消除了OLE DB的多種弊端,取而代之是微軟技術發展的趨勢。接口
3. ADO與ADO.NET對照 內存
在開始設計.NET體系架構時,微軟就決定從新設計數據訪問模型,以便可以徹底的基於XML和離線計算模型。開發
二者的區別主要有:
ADO以Recordset存儲,而ADO.NET則以DataSet表示。Recordset看起來更像單表,若是讓Recordset以多表的方式表示就必須在SQL中進行多表鏈接。反之,DataSet能夠是多個表的集合。ADO 的運做是一種在線方式,這意味着不管是瀏覽或更新數據都必須是實時的。ADO.NET則使用離線方式,在訪問數據的時候ADO.NET會利用XML製做數據的一份幅本,ADO.NET的數據庫鏈接也只有在這段時間須要在線。
因爲ADO使用COM技術,這就要求所使用的數據類型必須符合COM規範,而ADO.NET基於XML格式,數據類型更爲豐富而且不須要再作COM編排致使的數據類型轉換,從而提升了總體性能。
4. 小結
ADO.NET爲.NET構架提供了優化的數據訪問模型,和基於COM的ADO是徹底兩樣的數據訪問方式。