2008年3月7日 星期五

ADO.net 2.0 vs ADO.net 3.5

ADO.net 3.5 版推出之後,許多人開始好奇,它到底變化如何? 有差很多嗎?
根據稍微軟的官方網站說明,ADO.net 3.5增加以下新功能 :
  • Language-Integrated Query (LINQ)
  • New Features in SqlClient for SQL Server 2008
根據米米貓的測試,略掉以上新功能不談,改變最多的是Visual Studio 2008的DataSet設計工具它所產生出來的程式碼與元件不太一樣。例如過去Visual Studio 2005會為XSD檔案的每個資料表產生一個對應的新類別,此新類別繼承自DataTable。而Visual Studio 2008則改為繼承自TypedTableBase泛型類別。

但嚴格說起來,DataSet設計工具是屬於Visual Studio 2008而非ADO.net函式庫的一部份,倒也不能歸類到ADO.net的新功能吧! 大家也不用太過擔心, 因為舊的Visual Studio 2005程式可直接升級Visual Studio 2008,程式還是可以正常運作,不過使用升級功能升級時,Visual Studio 2005產生的具型別資料集程式不會跟著升級喔~米米貓的解決方式是把XSD檔從檔案總管直接拖曳到專案之中,它就會產生新的具型別資料集程式碼。

另外DataSet設計工具會為專案建立一個新的物件,叫做TableAdapterManager,用來管理具型別資料集中有相關聯的資料之更新動作,例如先更新Master資料表,再更新Details資料表。

以下內容節錄自米米貓 ADO.net 3.5精研講座一書第一章
,大家會對ADO.net 3.5較為認識:

細說ADO.NET歷史
ADO.NET在 2003年推出時,內建在.NET Framework 1.0之中,當時的版本為1.0。在2005年.NET Framework 2.0版推出時,內建了ADO.NET 2.0版。

在 2006年底微軟推出一個.NET Framework 3.0版本,在此版本全面提供了更好的服務導向 (SOA) 基礎技術、更生動活潑的互動式應用程式介面,以及更嚴謹安全的網路通訊架構和企業商業流程的引擎。.NET Framework 3.0是一個附加在.NET Framework 2.0架構之上,讓程式開發者在設計應用程式的過程中能更佳得心應手的程式庫、其中主要包含了幾大部份:
• Windows Presentation Foundation (WPF) ,以新的應用程式技術架構提供程式開發人員設計具視覺效果,且畫面炫的程式介面。
• Windows Communication Foundation (WCF) ,有安全通訊能力的應用程式。
• Windows Workflow Foundation (WF) ,整合商業流程的應用程式。
• Windows CardSpace (WCS) ,代表在不同的情境下,個人的身分識別。

.NET Framework 2.0提供的功能並沒有絲毫變動,這也就是說,關於ADO.NET 2.0提供的功能是完全一樣的,版本命名也沿用2.0版。當你熟悉了.NET Framework 2.0之後,便可以利用所學知識與技能,再搭配.NET Framework 3.0的架構發展出更佳的企業級,支援網際網路能力的應用程式。

時 序邁入2007年,微軟推出了.NET Framework 3.5版。.NET Framework 3.5是以 .NET Framework 2.0為基礎,整合.NET Framework 3.0版提供的功能,再外加上新一代的LINQ、ASP.NET 3.5與其它各式各種服務,它們之間的關係,請參考圖1-1。


圖 1-1:.NET Framework 3.5

從中可看出,在 Visual Studio 2008開發工具與.NET Framework 3.5版發行時,ADO.NET核心功能部份並沒有變動,還是以ADO.NET 2.0為基礎。您可以從GAC (預設是C:\Windows\Assembly目錄) 中檢視ADO.NET 核心類別庫System.Data.dll的版本,它還是2.0版。但.NET Framework 3.5多了一些跟ADO.NET相關的擴充函式庫,如System.Data.DataExtensions.dll (3.5版)、System.Data.Linq.dll (3.5版),提供額外的資料存取功能。換句話說,ADO.NET 2.0的程式可以毫無問題的正確移轉到.NET Framework 3.5的平台上執行,也能利用新的函式庫帶來的好處。

在.NET Framework 3.5版所提供的ADO.NET就姑且稱之為ADO.NET 3.5版吧! 因為官方的文件中並沒有特別定義它的版本,但筆者身為微軟認證講師,從微軟預計出版的官方教材中與微軟出版社將推出的書籍名稱中,瞧出一些端倪,微軟將之 命為ADO.NET 3.5版。

不過在這個ADO.NET 3.5版本正式發行之前,ADO.NET 有個3.0的測試版,可惜在.NET Framework 3.5正式發行時,並不包含ADO.NET 3.0測試版中主張要提供的ADO.NET Entity Framework,也不提供Microsoft Synchronization Services for ADO.NET。ADO.NET Entity Framework主要的功能是,讓程式設計師能夠透過一個對應到資料結構描述資訊的Entity資料模型之概念層,很容易地操作資料。

Microsoft Synchronization Services for ADO.NET 是一個開發架構,著重在2層式、N-層式應用程式(即分散式應用程式),以及服務導向程式之間的資料同步動作。它提供一組API介面,和元件,讓行動裝置 應用程式、資料服務與本機資料儲存體能同步保持一致,以設計更完善的離線應用程式。

微軟打算未來正式發行時,再以擴充程式的方式提供這些新功能, 因此此部份不在本書的討論範圍。另外,雖然在作者寫稿之時,SQL Server 2008還沒有正式推出,但ADO.NET 3.5版本中也提供許多支援SQL Server 2008 的新功能,像新的date、time資料型別等等。

7 則留言:

匿名 提到...

想請問一下, 如果己經有買過您出的 2.0 的書了, 那麼這本 3.5 的書, 是否仍值得買呢??

米米貓學開發 提到...

這本ADO.net 3.5的書是使用C#語言喔!
此書前12章內容和ADO.net 2.0實戰講座大致一樣,除了工具不太一樣,與VS DataSet Designer不一樣之外,不一樣的是使用的語言是C#!

如果你對後面的13-19章內容沒興趣就可以不用考慮啦!

匿名 提到...

第一句話就切中要害, 真要命...
看來還是得看一下實際內容才有辦法決定了

米米貓學開發 提到...

哈,我就是怕被讀者追打...

Jacks 提到...

您好,首先我已拜讀過ADO.net 3.5 p.71「使用Windows整合驗証」,不過實際要在公司內的架構使用卻有點問題;
後端資料存取架構:SQL Server 2008 + IIS7 + WCF(ADO.net做資料存取)
在連接資料庫的權限上,我們想照書上說的使用AD的帳號連接資料庫,於是照著書上寫的使用Integrated Security=SSPI;

問題:我該在那裡設定AD的帳號密碼(IIS上嗎)?目前不做任何設定下,Windows認證會取得「網域\電腦名稱」;對資料庫的AD帳號和權限已確定開啟

米米貓學開發 提到...

看你的資料存取程式Host在IIS7的哪一個Application Pool之中,在IIS7管理工具中,設定Application Pool的Identity.

Jacks 提到...

感謝您,可以了!

總網頁瀏覽量