講述ADO.NET架構和ADO的差異有關文章
雖然有許多人對ADO.NET架構的安全性表示懷疑,但在年復一年的不斷發(fā)展中,他的安全性也在不斷提高。保障ADO.NET架構的安全性是完全有可能的,但前提是要深入理解到底什么是ADO.NET架構,及他是怎么運作的。
ADO.NET架構可以讓.NET上的任何程式語言能夠連接並存取關聯(lián)式資料庫與非資料庫型資料來源(例如 XML,Excel或是文字檔資料),或是獨立出來作為處理應用程式資料的類別物件,其在.NET Framework中的地位是舉足輕重,許多人將ADO.NET視為ADO的下一個版本,但其實它是一個全新的架構、產(chǎn)品與概念。
ADO.NET架構
ADO.NET架構(object model)有五個主要的對象,分別是Connection對象,Command對象,DataAdpter對象,Dataset對象以及 DataReader對象.這些對象中負責建立連線和數(shù)據(jù)操作的部分我們稱為‘數(shù)據(jù)操作對象’(Managed Provider),分別由Connection對象,Command對象,DataAdpter對象以及DataReader對象所組成。數(shù)據(jù)操作對象 最主要是當作Dataset對象以及數(shù)據(jù)源之間的橋梁,負責將數(shù)據(jù)源中的數(shù)據(jù)取出後存入Dataset對象中管理,以及將數(shù)據(jù)存回數(shù)據(jù)源的工作。
Connection對象 : 可以開啟程式和數(shù)據(jù)源之間的連接。沒有利用connection對象將數(shù)據(jù)源打開,則無法從數(shù)據(jù)源中取得數(shù)據(jù)。 Command對象: 用來對數(shù)據(jù)源發(fā)出指令,如對數(shù)據(jù)源下達查詢,新增,修改,刪除數(shù)據(jù)等指令。#t#
DataAdpter對象: 主要是在數(shù)據(jù)源以及Dataset之間執(zhí)行資料傳輸?shù)墓ぷ?,它可以透過command下達命令后,將取得的資料存入dataset中管理。 Dataset對象: 可以視作一個緩沖區(qū)(cache),可以把從數(shù)據(jù)源中所查詢得到的資料保留起來,甚至可以將整個數(shù)據(jù)源內(nèi)的資料顯示出來。ADO.NET架構不但可以儲存多個table,還可以透過DataAdpter對象取得一些如主鍵等的數(shù)據(jù)表結構,并可以記錄表間的關聯(lián)。
DataReader 對象: 若只需要循序讀取數(shù)據(jù)源中的資料而不需要其他操作,ADO.NET架構可以使用DataReader對象。DataReader對象讀取是一次一筆,向下循序讀取數(shù)據(jù)源中的 資料,而且被DataReader對象所趨會的數(shù)據(jù)是唯讀的(read only),并不允許作其他操作。
各部件之間的關系如圖下圖所示:
ADO.NET架構和ADO的差異
對於 ADO 的開發(fā)人員來說,最明顯的變化在於以往 ADO 中的 Recordset 消失了,並且明確的分開為連線型的 DataReader 以及離線型的 DataSet 與 DataTable,並且發(fā)展支援離線型資料來源的瀏覽工具 DataView, 這樣的改變,讓習慣使用 ADO 的 VB/ASP 開發(fā)人員會有某種程度的不習慣,同時讓ADO.NET架構的學習會較 ADO 有較些許的複雜性,因此有部分新入門或是VB 6.0/ASP開發(fā)人員會在學習.NET Framework或是使用VB.NET開發(fā)應用程式時,在 .NET Framework 中使用 ADO 來連接資料來源。但在 .NET Framework 應用程式使用 ADO.NET架構的話,.NET Framework會因為要多一層COM和.NET資料之間的轉(zhuǎn)換,會讓應用程式效能有少部分的損耗。