下面是 Visual Studio 2008中数据工具方面新特性的列表。首先让我们了解一些术语。
O/R Designer——对象—关系设计器
LINQ——语言集成查询
Hierarchical Update——级联更新
N –Tier——多层架构
SQL Compact Edition/ SQL CE——SQL精简版
DataSet——数据集
Typed DataSet——强类型数据集
Local Data Cache——本地数据缓存
对象—关系设计器(O/R Designer)
对象—关系映射技术允许您将关系数据库映射为对象。一旦完成映射,您就可以将他们当成普通对象来处理,无需编写复杂的数据访问逻辑就可以轻松地将更改提交回数据库。对于这种增强型的数据访问技术,目前已有许多不同的实现机制。但是,综观目前O/R 映射实现工具,并未带有易于创建和修改映射的图形设计器。
Visual Studio 中的对象-关系设计器正是Microsoft处理对象—关系到底应该如何映射的回答。图形设计器它允许您轻松地将数据库对象,如表和存储过程映射为 LINQ到SQL的类和方法。只需将数据库对象从数据库管理器拖放到设计器。设计器就会自动创建映射并生成正确的 LINQ到SQL的代码。您还可通过设计器修改映射的不同方面的配置,设计器会自动更新代码。关联和继承关系也很容易地创建。支持存储过程这一特性也很独特。对于INSERT、UPDATE和DELETE操作,您可以基于存储过程作为对象映射的方法来替代默认的操作。
如果您已经体验过三月份的LINQ的CTP版本,您可能记得那时我们提供的对象—关系设计器叫做DLinq 设计器。这就是下一代对象-关系设计器的预览版,目前更名为O/R设计器。
强类型DataSet的级联更新
持续跟踪跨多个相关的datatable的所有插入、更新和删除操作,并将更改以正确顺序提交回服务器,这在向来不是一个简单的任务。如何在确保客户的新订单被正确地添加到系统中,同时更新该客户的送货地址并删除其中一个已被取消的旧订单?
具有级联更新支持的强类型DataSet中,您只需调用我们新添加的TableAdapterManager组件的UpdateAll() 方法即可自动完成所有操作。它负责收集所有更改并将它们按正确顺序提交给服务器。当然,所有工作都会放在一个事务中。
我们相信这将极大的提高使用强类型DataSet来创建数据应用程序开发人员的工作效率。您可以在三月份的 Visual Studio Orcas CTP版本中尝试这一新特性.
强类型DataSet中多层架构(N-tier)的支持
我承认,Visual Studio 2005 中生成强类型DataSet的代码并未对多层架构提供很好的支持。如果您打开强类型DataSet的代码文件,您会注意到我们已经很好的将类型从数据访问逻辑分开。DataSet和强类型的datatables是在一个强类型DataSet中声明的,而所有 TableAdapter 类则是在单独的命名空间中声明的。但是我们将它们放在了一个代码文件中。这对于大多数应用程序来说没有多大问题。但在构建多层架构的应用程序时, 将他们放在一个文件中并没有多少帮助。对该问题更细节方面的讨论请参考Steve Lasker的Splitting Typed Datasets from TableAdapters一文。他在该文中提出的解决方案是打开生成的代码并手动的将类型声明拷贝到一个新的类文件中。尽管这的确使得您可以在 N 层架构中使用强类型的DataSet。但是这个方案最大的缺憾就是由于需要您手动修改生成的代码,任何时候您在设计器中对强类型DataSet进行了更改,您就不得不再次拷贝类型声明部分的代码,很是繁琐。
在Visual Studio 2008中,您可以指示设计器将DataSet代码生成的解决方案中的另一个项目中而无须手动的拷贝。并确保您在设计器中的进行的更改可以自动更新到指定的项目中去。同时您仍可选择保持现有的2层架构模型,设计器仍将所有内容生成到单个文件中。当您已准备好将2层变为 N 层时,只需告诉设计器哪个项目用来存放DataSet即可。简单吧!此特性的预览版在三月份的CTP of Visual Studio Orcas中就有,Beta 1版本中的该特性更加的完善。
使用SQL精简版的本地数据缓存
SQL精简版为开发人员带来了许多激动人心的方案。最有意思的情况是使用SQL 精简版数据库文件作为不经常更改的数据的本地缓存。例如,您的应用程序可能会在与远程服务器交换订单信息时,将产品列表保留在本地缓存中。在需要的时候,您可以将产品列表与远程服务器进行同步,但是大多数情况下,使用的还是还是本地缓存。
由于SQL精简版是系统开销很少的轻量级数据库,因此作为本地数据缓存正合适。可以使用 ADO.NET的同步服务来同步远程数据库服务器和本地 SQL精简版数据库文件之间的数据。不错吧?但是该如何设置呢?
Visual Studio 2008包含了一个新的项目模板,叫做“本地数据缓存”。将“本地数据缓存”添加到您的项目中将会创建.sync的XML文件,该文件用于描述什么数据将被同步。此文件带有设计器以便您可以轻松地进行同步配置。设计器还会创建 SQL精简版数据库文件作为本地数据缓存,并生成与同步服务进行交互的代码。此特性的预览版在三月份的CTP of Visual Studio Orcas中就有,Beta 1版本中的该特性更加的完善。
数据工具在其他方面的增强
上面四个是在 Visual Studio 2008中最主要的数据工具的新特性。但同时我们也大量的增强了现有的数据工具的功能。如果有机会,我单独写一篇文章描述我们所做的这些工作。