1、ADO與ADO.NET 百度百科定義
1)ADO(ActiveX Data Objects)是基於組件的資料庫編程介面,它是一個和程式設計語言無關的COM組件系統。
2)ADO.NET的名稱起源於ADO(ActiveX
Data Objects),這是一個廣泛的類組,用於在以往的Microsoft技術中訪問資料。之所以使用ADO.NET名稱,是因為Microsoft希望表明,這是在NET編程環境中優先使用的資料提供者。
2、ADO與ADO.NET簡介
ADO與ADO.NET既有相似也有區別,他們都能夠編寫對資料庫伺服器中的資料進行訪問和操作的應用程式,並且便於使用、高速度、低記憶體支出和佔用磁碟空間較少,支援用於建立基於用戶端/伺服器和 Web 的應用程式的主要功能。但是ADO使用OLE DB介面並基於微軟的COM技術,而ADO.NET擁有自己的ADO.NET介面並且基於微軟的.NET體系架構。眾所周知.NET體系不同於COM體系,ADO.NET介面也就完全不同於ADO和OLE DB介面,這也就是說ADO.NET和ADO是兩種資料訪問方式。
3、 資料訪問方式的曆史
下面簡單的回顧一下微軟的資料訪問方式所走過的幾個階段。
ODBC – (Open DatabaseConnectivity)是第一個使用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的多種弊端,取而代之是微軟技術發展的趨勢。
ADO架構圖表
4、 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編排導致的資料類型轉換,從而提高了整體效能。
下面就是以圖表的形式描繪了ADO.NET體系
ADO.NET架構圖表
5、小結
ADO.NET為.NET構架提供了最佳化的資料訪問模型,和基於COM的ADO是完全兩樣的資料訪問方式。