• 1.摘要
  • 2.简介
  • 3.发展背景
  • 4.架构
  • 5.访问方法

WCF Data Services

简介

WCF Data Services,旧称ado·net Data Services Framework(代号Astoria,以下简称WCF DS)是基于 ado·net Entity Framework 上的一个简单数据供应服务 (Data Provisioning Services),也是微软的REST(Representational state transfer) 的解决方案之一。特别为AJAX,Silverlight以及Mashup应用程序提供数据服务所设计。

目前 ado·net DSF 已经内含于 .NET Framework 3.5 Service Pack 1 中。

发展背景

以往在发展像是 AJAX 应用程序时,服务端总是需要设计一个 HTTP 接口端口 (end point),通常都会使用Web Service来实现,但是随着Mashup应用程序的成长,若每次都要为一份(或一组)数据撰写 Web Service 或 HTTP end point 的话,对开发人员也是不小的负担,而且 Web Service 只支持 XML/SOAP 的数据格式,无法兼容于 Mashup 应用程序常用的JSON数据格式,微软也发现未来的 Silverlight 应用程序也是会面临到相同问题。

当时刚好微软的 ado·net Entity Framework 也正在开发中,它的 EDM 能力刚好可以提供给WCF 数据访问的能力,因此微软特别以 ado·net Entity Framework 为基础,开发一个专门提供 HTTP 端点数据服务的数据供应层,即为 WCF DS。

架构

WCF DS 由 Entity Framework 中的 Entity Data Model (EDM) 为基底,Data Services Framework 的角色就是做为 EDM 的 HTTP 出入口,开发人员可以利用 HTTP 动词来访问 Data Services Framework,某种程度来说,WCF DS 是由 EDM + WCF 而成的一种数据供应服务,它可以被放在 WCF HTTP 通道,asp·net 以及 IIS 中。

WCF DS 的数据源,可以是 ado·net Entity Framework,但如果是来自于其他的数据源,则可以利用为该数据源所实现的LINQ Provider(有实现 IQueryable<T> 接口的组件,若要支持更新则必须要再实现 IUpdatable 接口)来做为数据源亦可。

WCF DS 除了可以将 Entity 公开到 HTTP 通道中,也可以由开发人员自行发展具商业逻辑的自定义函数来回传数据,以及利用查询的解译器 (Query Interceptor) 来将查询 Entity 的数据做过滤后再回传。

访问方法

WCF DS 开放 EDM 在 HTTP 通道中,因此访问方法都要使用 HTTP 方式,GET/POST/PUT/DELETE 都可以使用,而且每个动词所代表的意义都不同。

1.GET:查询数据。

2.PUT:更新数据,必须要和 GET 并用,由 GET 抓下数据修改后,用 PUT 更新。

3.POST:新增数据。

4.DELETE:删除数据。

除了使用 HTTP 动词以外,WCF DS 另提供了 .NET Client Library 让 .NET Framework 应用程序可以访问,它也提供了让 LINQ 可以访问到 WCF DS 的能力(即 LINQ to WCF DS)。[1]

WCF Data Services