ADO.NET经过长时间的发展,很多用户都很了解ADO.NET了,根据个人的一点经验,这里我发表一下个人理解,和大家讨论讨论。ADO.NET数据服务是随同微软.NET框架3.5 SP1的推出一同正式发行的一个框架,主要目的是为了简化数据中心型Web服务开发。ADO.NET数据服务框架,提供了一套完整的库,还有集成于 Visual Studio中的工具,以及一套定义良好的模式,从而使得以服务方式基于数据模型级提供相关CRUD操作变得与简单的HTTP操作一样得容易。
ADO.NET数据服务定义了一个协议,用于与基于HTTP以及当前流行的AtomPub和JSON标准的数据服务进行通信。除了支持这些标准之处, ADO.NET数据服务协议还定义了数据承载的格式及资源的寻址模式。由于它的开放与可互操作设计,各种各样的客户端和服务器已开始接纳ADO.NET数据服务协议。总之,基于ADO.NET数据服务,无论是在开发者方面还是在应用者方面都正在不断壮大。
#T#从多方面来看,ADO.NET数据服务协议模拟了微软.NET RIA服务应用程序中客户端与服务器端层间的通信技术。微软的目标是进一步密切这两种技术间的协同操作,从而使得.NET RIA服务可以使用与ADO.NET数据服务一样的协议。这样一来,对两种技术都有所收益:微软.NET RIA服务应用程序都能够与ADO.NET数据服务的相关内容进行交互(利用现有的客户端技术及开发工具),基于ADO.NET数据服务的服务也能够利用.NET RIA服务提供的业务逻辑模式,丰富的UI控件以及端对端的开发经验。
根据微软提供的消息,目前上述两种技术间的协作仍处于发展阶段。就目前情况,我们可以实现这两种技术的如下协作开发:
(1) 扩展现有的微软.NET RIA服务应用程序—通过添加一个ADO.NET数据服务端点,以支持基于ADO.NET数据服务协议的交互操作。
(2) 使用微软.NET RIA服务模式扩展现有的ADO.NET数据服务以添加业务逻辑支持。
本文中的示例仅提供针对上述***种情况的应用展示,即如何把ADO.NET数据服务端点添加一个现有的微软.NET RIA服务应用程序中。另外,由于目前上述两种技术的交互仍处于发展阶段,所以在实际开发环境下还不推荐使用这种解决方案。
1.创建Silverlight 3示例工程
(1)打开Visual Studio 2008,选择“文件|新建|项目”菜单命令,打开“新建项目”对话框。
(2)选择“Silverlight Application”模板,创建一个Silverlight 3项目,并命名为ProductsWithDataService。
(3)单点“确定”按钮,进入到下一步以选择silverlight应用的宿主网站。从“web project type”下拉列表框中选择“ASP.NET Web Application Project”。选中对话框中最下面的“Enable .NET RIA Services”复选按钮,这样便把RIA框架支持添加到当前解决方案中。
至此,我们创建了两个工程:
(1) ProductsWithDataService—此工程中包含了Silverlight代码,这个工程称为客户端工程,这是我们创建的应用程序的客户端层。
(2) ProductsWithDataService.Web—此工程中包含了ASP.NET web应用程序代码,这个工程称为服务器端工程,这是我们创建的应用程序的中间层。
至此,一个基本的集成了.NET RIA Services的Silverlight 3示例工程框架生成完毕。
2.在Web工程上添加ADO.NET实体数据模型
(1)右键单击web工程ProductsWithDataService.Web,在弹出菜单中选择“添加|新建项”命令。在随后出现的“添加新项” 对话框中选择“ADO.NET Entity Data Model”模板,命名为AdventureWorks.edmx,***单击“添加”按钮退出。
(2)在随后的ADO.NET实体数据模型向导中,选择“从数据库生成”并单击“下一步”按钮。
(3)在接下来的“选择您的数据连接”对话框中,选择已有的AdventureWorks数据库连接,并勾选最下方的“将Web.config中的实体连接设置另存为”复选按钮,并改名为AdventureWorks2008Entities。
(4)在接下来的“选择数据库对象”对话框中,仅选择一个表格Product并输入模型命名空间为AdventureWorks2008Model。***单击“完成”按钮退出ADO.NET实体数据模型,并保存生成的文件。
(3)***,选择菜单“生成|重新生成解决方案”。