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 2008DataSet设计工具它所产生出来的程序代码与组件不太一样。例如过去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历史


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版提供的功能,再外加上新一代的LINQASP.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.NETADO.NET Entity Framework主要的功能是,让程序设计师能够透过一个对应到数据结构描述信息的Entity数据模型之概念层,很容易地操作数据。

Microsoft Synchronization Services for ADO.NET
是一个开发架构,着重在2层式、N-层式应用程序(即分布式应用程序),以及服务导向程序之间的数据同步动作。它提供一组API接口,和组件,让行动装置应用程序、数据服务与本机数据存储器能同步保持一致,以设计更完善的脱机应用程序。

微软打算未来正式发行时,再以扩充程序的方式提供这些新功能,因此此部份不在本书的讨论范围。另外,虽然在作者写稿之时,SQL Server 2008还没有正式推出,但ADO.NET 3.5版本中也提供许多支持SQL Server 2008的新功能,像新的datetime数据型别等等。

0 回复:“ADO.net 2.0 vs ADO.net 3.5”

发表评论