Data Service for .NET 3.5 SP1 更新“再次”发布

  • 朱永光

2010 年 3 月 12 日

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

1 月底,ADO.NET Data Service 团队“再次”发布了 ADO.NET Data Service for .NET 3.5 SP1 的更新。这次的更新实际上是所谓的 1.5 CTP 的正式发布。这个更新在 2009 年 12 月 17 日曾经发布过一次,不过由于遇到安装问题,很快就被下线了。这个更新带来了诸多新特性和功能加强。

  • 投射(Projections)。让客户端可以通过投射功能,只获得实体对象中所需的属性;或者组合多个实体对象中的属性成为一个新的动态对象。有了投射,在客户端使用 Data Service 和在服务器端使用实体框架就很接近了。
  • 加强了的数据绑定。现在支持双向的数据绑定。
  • 行数量统计。之前的版本一直缺少一个重要的也是被大家强烈期待的特性,就是获取数据行的数量。没有这个特性,要知道某个数据的总数,只有把数据全部获取到客户端进行统计或者自己编写一个服务器端接口来单独计算。
  • 自定义 feed。通过这个特性,开发人员可以自定义 feed 中的数据结构。
  • 服务端驱动的分页。从字面上理解,通过使用这个特性,客户端就可以直接获取到已经在服务器端分好页的数据。对性能的提高不言而喻。
  • 加强了 BLOB 的支持。虽然对 BLOB 的支持在第一个版本中已经支持,但是现在支持任意大小的 BLOB 数据,可以把元数据和 BLOB 的内容分离等。
  • 请求管道。服务器端在获取到客户端请求的时候,利用请求管道可以控制对 Data Service 的访问,可以实现自定义的 HTTP 响应缓存等等。
  • “Data Service Provider”接口。新添了一个数据服务提供程序的接口,让开发人员可以编写自己的提供程序。在之前的版本中,Data Service 只能暴露实体框架(EF)和任意.NET 类;不过现在有这个接口,理论上可以把任意数据源暴露为 Data Service 了。

当然这个版本也不是尽善尽美,比如还不支持诸如 First() 这样的很多扩展方法。

同时,ADO.NET Data Service 团队为这个更新提供了一个入门向导:

  • 第一部分,主要讲述了如何安装这个更新,并用新版本创建一个项目,在这个项目中用OData 协议把实体框架的数据暴露出来。
  • 第二部分,创建一个 WPF 应用程序来使用第一部分中创建的 Data Service。

这个更新不仅用于.NET 3.5 SP1,也提供给了 Silverlight 3,不过暂时处于 CTP 阶段,正式版会和 Silverlight 4 一起发布。

值得一提的是,虽然 ADO.NET Data Service 现在已经更名为 WCF Data Service,但由于这个更新是针对之前的老版本而发布的,所以名称依旧是“ADO.NET Data Service”。

.NETRESTDevOps语言 & 开发架构