嘗試ADO.NET好處三點(diǎn)總結(jié)
用過ADO.NET的朋友都知道它比ADO用著順手,因?yàn)樗墓δ軓?qiáng)大了,與 ADO 的早期版本和其他數(shù)據(jù)訪問組件相比,這里和大家一起談?wù)凙DO.NET好處。這些ADO.NET好處分成以下幾個(gè)類別:
#T#互操作性
ADO.NET 應(yīng)用程序可以利用 XML 的靈活性和廣泛接受性。由于 XML 是用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù)集的格式,因此可以讀取 XML 格式的任何組件都可以處理數(shù)據(jù)。實(shí)際上,接收組件根本不必是 ADO.NET 組件:傳輸組件可以只是將數(shù)據(jù)集傳輸給其目標(biāo),而不考慮接收組件的實(shí)現(xiàn)方式。目標(biāo)組件可以是 Visual Studio 應(yīng)用程序或無論用什么工具實(shí)現(xiàn)的其他任何應(yīng)用程序。唯一的要求是接收組件能夠讀取 XML。作為一項(xiàng)工業(yè)標(biāo)準(zhǔn),XML 正是在謹(jǐn)記這種互操作性的情況下設(shè)計(jì)的。
可維護(hù)性
在已部署系統(tǒng)的生存期中,適度的更改是可能的,但由于十分困難,所以很少嘗試進(jìn)行實(shí)質(zhì)的結(jié)構(gòu)更改。這是很遺憾的,因?yàn)樵谑录淖匀贿^程中,這種實(shí)質(zhì)上的更改會(huì)變得很有必要。例如,當(dāng)已部署的應(yīng)用程序越來越受用戶歡迎時(shí),增加的性能負(fù)荷可能需要進(jìn)行結(jié)構(gòu)更改。隨著已部署的應(yīng)用程序服務(wù)器上的性能負(fù)荷的增長,系統(tǒng)資源會(huì)變得不足,并且響應(yīng)時(shí)間或吞吐量會(huì)受到影響。面對該問題,軟件設(shè)計(jì)者可以選擇將服務(wù)器的業(yè)務(wù)邏輯處理和用戶界面處理劃分到單獨(dú)計(jì)算機(jī)上的單獨(dú)層上。實(shí)際上,應(yīng)用程序服務(wù)器層將替換為兩層,緩解了系統(tǒng)資源缺乏。
該問題并不是要設(shè)計(jì)三層應(yīng)用程序。相反,它是要在應(yīng)用程序部署以后增加層數(shù)。如果原始應(yīng)用程序使用數(shù)據(jù)集以 ADO.NET 實(shí)現(xiàn),則該轉(zhuǎn)換很容易進(jìn)行。請記住,當(dāng)用兩層替換單個(gè)層時(shí),將安排這兩層交換信息。由于這些層可以通過 XML 格式的數(shù)據(jù)集傳輸數(shù)據(jù),所以通信相對較容易。
可編程性
Visual Studio 中的 ADO.NET 數(shù)據(jù)組件以不同方式封裝數(shù)據(jù)訪問功能,幫助您加快編程速度并減少犯錯(cuò)幾率。例如,數(shù)據(jù)命令提取生成和執(zhí)行 SQL 語句或存儲(chǔ)過程的任務(wù)。同樣,由這些工具生成的 ADO.NET 數(shù)據(jù)類導(dǎo)致類型化數(shù)據(jù)集。這又使您可以通過已聲明類型的編程訪問數(shù)據(jù)。例如,請考慮下面這行代碼(它訪問未聲明類型的數(shù)據(jù)集內(nèi)的數(shù)據(jù)成員):
- ' Visual Basic
- If TotalCost > DataSet1.Tables("Customers").Rows(i)("AvailableCredit") Then
- // C#
- if (TotalCost > DataSet1.Tables["Customers"].Rows[i]["AvailableCredit"]) { }
訪問已聲明類型的數(shù)據(jù)集內(nèi)的數(shù)據(jù)成員的等效代碼行如下所示:
- ' Visual Basic
- If TotalCost > DataSet1.Customers("Jones").AvailableCredit Then
- // C#
- if(TotalCost > DataSet1.Customers("Jones").AvailableCredit) { }
已聲明類型的數(shù)據(jù)集的代碼更易閱讀。因?yàn)樘峁┝苏Z句結(jié)束,所以它還便于編寫。例如,“AvailableCredit”在完成以下語句的選擇列表中:
- IF TotalCost > Customer.
最后,已聲明類型的數(shù)據(jù)集的代碼更安全,原因在于它提供對類型的編譯時(shí)檢查。例如,假定 AvailableCredit 表達(dá)為貨幣值。如果程序員誤向 AvailableCredit 分配了字符串值,則環(huán)境會(huì)在編譯時(shí)向程序員報(bào)告該錯(cuò)誤。當(dāng)使用未聲明類型的數(shù)據(jù)集時(shí),程序員直到運(yùn)行時(shí)才會(huì)知道該錯(cuò)誤。以上就是ADO.NET好處的好處的三分之一,以后還會(huì)技術(shù)介紹的。