迈向 Data 2.0——学习使用 ADO.NET 数据服务框架

  • 朱永光

2008 年 8 月 13 日

话题:.NETDevOps语言 & 开发架构

随着.NET Framework 3.5 SP1 和 Visual Studio 2008 SP1 的正式发布ADO.NET 数据服务框架(ADO.NET Data Services Framework)也正式来到了我们的面前。近日,MSDN Magazine 发布了标题为《在 Web 服务领域公开和使用数据》的文章,阐述了 ADO.NET 数据服务框架的基本理念、体系结构、服务端数据模型、访问协议、安全性和客户端访问。

在本文中,作者把 ADO.NET 数据服务框架定义为:

总的来说,ADO.NET 数据服务框架的目标是为那些公开和使用以数据为中心的服务,创建基于具象状态传输 (REST) 的简单框架。此类服务使用统一的界面公开数据,以供整个企业 Intranet 或 Internet 范围内的所有 Web 客户端使用。该框架由一个服务器库和一组客户端库组成,前者用于将数据作为服务安全公开,后者是为一系列 Microsoft 应用程序和技术(Microsoft? .NET Framework 和 Silverlight 等)能够使用服务而构建的。

ADO.NET 数据服务框架在对数据模型的处理上,充分使用了 ADO.NET 实体框架(ADO.NET Entity Framework)的功能,尤其基于实体数据模型(Entity Data Model,EDM)对关系数据库进行映射和访问;而对于非关系数据,则依靠 IQueryable 接口来公开。

在讨论 Web 的技术时,安全性是重点需要关注的问题,而 ADO.NET 数据服务框架则依靠 ASP.NET 和 WCF 现存的大量安全性机制,来实现身份验证、访问授权等功能。

文章的后半段,着重讲解了对 ADO.NET 数据服务框架进行访问的知识。要访问 ADO.NET 数据服务和访问常规的 WCF Services 是一致的。不过 ADO.NET 数据服务框架已经提供了相应的程序集或工具包,这些客户端库来帮助我们更容易地编写访问 ADO.NET 数据服务的代码。其中包括:

  • .NET 客户端库:为 Windows Forms、WPF、Web 应用程序提供 System.Data.Services.Client.dll 程序集。
  • Silverlight 客户端库:已经和 Silverlight 2 Beta 2 一起发布,同样还是在 Silverlight 项目中引用 System.Data.Services.Client.dll 程序集。
  • AJAX 客户端库:在 CodePlex 上 ASP.NET 项目中下载

通过对 ADO.NET 数据服务框架学习和使用,并结合相关技术,对于以数据(Data)为中心的应用,我们就可以从之前在 Client-Server 的模型下直接对数据库(即所谓的 Data 1.0)的访问,转变为在 Rich Internet Application(RIA)的模型下对数据服务(即所谓的 Data 2.0)的访问,从而迈向 Data 2.0。

另外,ccBoy 在他的一篇博客文章中也对 ADO.NET 数据服务框架给予了很高的评价:

ADO.NET 数据服务逐渐成为一个非常不错的工具和武器,它完美地和 ADO.NET 实体框架相结合,可以说很大程度上弥补了 EF 目前分布式开发的短板,同时 Data Services 本身也成功地削弱了 WCF 原来基于 SOAP 的组件通信的沉重,可以说利用了 WCF 最好的部分。

同时,他也提供了一个 Self-Hosting 实例,这种模式让以数据为中心的 RIA 应用程序,实现单机运行的模式。

.NETDevOps语言 & 开发架构