InfoQ

新闻

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

作者 朱永光 发布于 2008年8月13日 下午10时35分

社区
.NET
主题
.NET框架,
数据访问,
Web服务
标签
WCF,
服务设计,
ADO.NET实体框架,
ADO.NET

随着.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应用程序,实现单机运行的模式。

1 条回复

回复

ccBoy又发表了《Astoria (ADO.NET Data Service)客户端操作精粹》的博文 发表人 Kevin Chu 发表于 2008年8月17日 下午8时19分

独家内容

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。

揭示常见的重构误区

相对于Java,.NET在持续重构方面所给与的重视仍然少为人知,大多数人对于重构是否真正属于开发过程,以及如何将其应用到开发过程中持观望态度。Danijel Arsenovski试图为你揭示这些谜题。