原文:http://www.49028c.com/liuhaorain/archive/2012/02/06/2340409.html
簡單的講,ADO.NET是一組允許.NET開發人員使用標準的,結構化的,甚至無連接的方式與數據交互的技術。對于ADO.NET來說,可以處理數據源是多樣的??梢允菓贸绦蛭ㄒ皇褂玫膭摻ㄔ趦却嬷袛祿?,也可以是與應用程序分離,存儲在存儲區域的數據(如文本文件、xml、關系數據庫等)。
具體來說,ADO.NET 對 Microsoft SQL Server 和 XML 等數據源以及通過 OLE DB 和 XML 公開的數據源提供一致的訪問。數據共享使用者應用程序可以使用 ADO.NET 來連接到這些數據源,并檢索、處理和更新所包含的數據。
作為.NET框架的重要組成部分,ADO.NET 類封裝在 System.Data.dll 中,并且與 System.Xml.dll 中的 XML 類集成。當編譯使用 System.Data 命名空間的代碼時,需要引用System.Data.dll 和 System.Xml.dll。
作為一個普通的縮略詞,"ADO.NET”并只不是"ADO”的簡單升級版本。嚴格的講,ADO.NET和ADO是兩種截然不同的數據訪問方式。
ADO的全稱是Activex Data Objects,它是早期(.NET還未實施)開發人員用來訪問數據的組件。隨著.NET的發展,ADO.NET順其自然地以其顯著的優越性逐步取代ADO。從技術層面講,ADO使用OLE DB接口并基于微軟的COM技術,而ADO.NET擁有自己的ADO.NET接口并且基于微軟的.NET體系架構。
雖然大多數基于 .NET 的新應用程序將使用 ADO.NET 來編寫,但 .NET 程序員仍然可以通過 .NET COM 互操作性服務來使用 ADO。
System.Data命名空間提供了不同的ADO.NET類,它們既分工明確,又相互協作地提供表格數據的訪問服務。該類庫包含兩組重要的類:一組負責處理軟件內部的實際數據(DataSet),一組負責與外部數據系統通信(Data PRovider)。具體架構如下圖所示:
圖1.3.1 ADO.NET核心組件
DataSet 是 ADO.NET 的非連接(斷開)結構的核心組件。DataSet 的設計目的很明確:為了實現獨立于任何數據源的數據訪問。因此,ADO.NET結構可以用于多種不同的數據源,用于 XML 數據,或用于管理應用程序本地的數據。DataSet 包含一個或多個 DataTable 對象的集合,這些對象由數據行和數據列以及主鍵、外鍵、約束和有關 DataTable 對象中數據的關系信息組成。
ADO.NET 結構的另一個核心元素是 .NET 數據提供程序(Data Provider)。具體包括:
提供一致的數據訪問,是使用ADO.NET的一個關鍵的優勢。但是對于開發人員來說,更大的優勢是通過ADO.NET將管理的數據作為對象來說處理。 表中的每個字段都是強類型成員,與.NET 通用類型系統(Common Type System)完全兼容。個別的字段甚至可以作為局部變量來使用。數據行或者其他的數據集對象是標準的.NET 集合(Collections),可以用標準的迭代方法處理。
Entity Framework和LINQ是微軟為了提高ADO.NET核心功能而建立的兩個新的工具。需要注意的是,它們并不是ADO.NET的基本組成部分。
Entity Framework 利用了抽象化數據結構的方式,將每個數據庫對象都轉換成應用程序對象 (entity),而數據字段都轉換為屬性 (property),關系則轉換為結合屬性 (association),讓數據庫的 E/R 模型完全的轉成對象模型。而在抽象化的結構之下,則是高度集成與對應結構的概念層、對應層和儲存層,以及支持 Entity Framework 的數據提供者 (provider),讓數據訪問的工作得以順利與完整的進行。
LINQ允許編寫C#或者Visual Basic代碼以查詢數據庫相同的方式操作內存數據。LINQ是一個通用的數據工具,可以讓你非常容易地融合不同數據源的數據,并得到單一的數據結果集。
原文:http://www.49028c.com/liuhaorain/archive/2012/02/06/2340409.html
新聞熱點
疑難解答