天天看点

WCF Data Services 与 WCF RIA Services 的比较

在最新的 VS2010 SP1 中 WCF RIA Services 被正式加入, 对于WCF的初学者来说, 这两个概念经常搞混。 都是Services究竟有什么区别呢?来看看下表:

原文 http://jack.ukleja.com/wcf-data-services-vs-wcf-ria-services/

WCF Data Service WCF RIA Service
通过RESTful Web Service暴露的数据模型 MS提供的一种n层应用开发方式
以跨平台访问作为目标
  • 解除数据孤岛
  • 被MS未来的产品所支持,比如:SQL2008,Azure,

    Excel 2010,SharePoint 2010

专为终端到终端的Silverlight和ASP.NET设计的解决方案
  • 一些专有技术的Silverlight(不支持WPF)
  • 使用ASP.NET角色/验证
  • ASP.NET/AJAX也可以访问服务层
松耦合的客户端和服务端 客户端和服务端设计部署在一起(不支持跨域)
服务层暴露出“原始”数据源 可以轻松地添加业务逻辑
  • 强调"域"的概念
  • 强大的验证框架
  • 支持脱机/同步
服务可以被不同的语言平台调用:Silverlight,AJAX,PHP和Java 服务可以很容易被SL,AJAX所使用
服务的数据源必须:
  • 至少暴露一个IQueryable的属性
  • 按需实现IUpdateable
服务端通过协议公开域对象:
  • IQueryable GetX
  • UpdateX/InsertX/DeleteX
  • 使用OData协议
  • 基于OData协议的多种格式:JSON,XML等
  • SL:SOAP(二进制)
  • AJAX:JSON
  • 其他客户端:SOAP(XML)
服务可被发现(Discoverable) 服务不可发现
寄宿于WCF服务(.svc)

旧版本寄宿于WebApp中自定义的Web Handler(.axd),

新版本独立为WCF Service

标准化的OData协议 将支持OData协议

PS:OData:开放数据协议(OData)是一个查询和更新数据的Web协议。OData应用了web技术如HTTP、Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务和存储的信息访问。

共同特点

- 基于WCF的

- 使用REST风格的架构

- 可用于公开任何数据源(SQL,XML和POCO(plain old CLR object)/对象等)

- 客户端库(代理)可采用LINQ查询

其他

- RIA Service 并不是基于 Data Service  

- RIA Service 将向 Data Service 看齐 

- OData 将成为 WCF 一个基础协议

参考

http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx

http://mschannel9.vo.msecnd.net/o9/mix/09/pptx/t36f.pptx

http://blogs.msdn.com/endpoint/archive/2009/11/18/the-wcf-services-ecosystem.aspx

http://www.douglaspurdy.com/2009/11/20/on-odata-open-data-protocol/

http://msdn.microsoft.com/en-us/data/ee844254.aspx

http://blogs.msdn.com/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx

继续阅读