WCF数据服务与WCF RIA服务

问题描述:

我需要评估WCF数据服务WCF RIA服务之间的SOA体系结构。以下是我的一些参数:WCF数据服务与WCF RIA服务

  1. 多个客户端(HTML5 /的iOS /安卓/ Windows 8的地铁/ Windows Phone 7的)
  2. 断开和离线操作
  3. 验证引擎
  4. 性能
  5. 网络数据压缩
  6. 支持云环境

任何人都可以帮助我收集一些数据用于评估。另外,还有没有其他可用于SOA实施的好选择。

我知道DevForce。

双方通过OData的暴露实体,但RIA服务是专门针对于:

  • Silverlight的消费
  • 穷人的服务 - 他们更容易得到启动和运行毫不费力

WCF数据服务功能强大且可配置。最大的区别(IMO)是RIA服务每个实体需要一种主机类型,而WCF数据服务可以自动托管整个内容(一种具有多个IQueryable属性的类型)。

这就是说,这两个实现都相当不完善(仅限于IMO),并没有真正深思熟虑或实施。 ...使用WebGet/WebInvoke属性托管的传统WCF操作或使用WCF Web API可能会更好。

我不会去DevForce只是因为它主要是针对Silverlight实现(如果我没记错的话)。也就是说,它们的包非常酷,功能比RIA或WCF数据服务更完整。

+0

但是现在WCF RIA似乎支持多个客户端/平台,如本博文http://channel9.msdn.com/events/BUILD/BUILD2011/TOOL-800T中所述。因此,您认为与RIA一起使用可能是一个很好的选择,因为它提供了与WCF数据服务中的自定义实现相比的快速开发。 –

+0

OData通过REST固有地支持多个客户端/平台...因此WCF数据服务和RIA都支持它。老实说,我发现WCF数据服务更容易处理,并且更加灵活。你会承载什么样的服务/实体(NHibernate?实体框架?LINQ to SQL?) – Jeff

+0

我正在考虑实体框架。在继续进行之前,我只想100%肯定。你能否介绍一些WCF RIA的限制/缺点? –

我对RIA服务非常熟悉,并且知道它的缺点。我知道一些关于数据服务和DevForce,但我知道,DevForces通告比RIA服务正好在这些领域更好的地方让我很烦,那就是:

  1. RIA做不到组通过或加入任何形式。 (有趣的是,在某些情况下,DevExpress工具包可以 在RIA服务源上做一些欺骗手段。)
  2. 它确实理解关系,但不是多对多的类型,它必须处理翻译 透明地连接到桥台。 (编辑:这是计划为开放RIA服务)
  3. 更改跟踪工作通过上下文(工作单元)只能提交或 作为一个整体(开箱即用)。这通常会导致一个应用程序与 许多上下文和奇怪的复制操作来传输实体。项目帮助那个。
  4. 它似乎不再被维护。我基于这样一个事实,即当Entity Framework 4.1发布其新的DbContext API(代码优先)时,Microsoft发布了一个compatibility library,您可以使用它RIA and EF code first。虽然该库在EF 4.1上有一个版本锁定,而且微软现在只是以Orwellian note的形式陈述RIA Services doesn't support DbContext到Visual Studio 2012.(编辑:DbContext现在再次被支持 - EF目前支持到版本5,其中6很可能仅在Open Ria服务中受支持)
  5. 某些任务(例如以编程方式观察相关实体的更改(而不是通过数据绑定的 ))很难。
  6. 有些事情应该非常简单,比如从附属的 实体获取上下文很困难。
  7. 所有查询都是单个请求,只剩下CUD(的CRUD)的批处理。
  8. 与普通CUD操作一起调用的自定义方法非常有限。特别是,在 中,取消不取消整个上下文的计划可能不是取消 。有 使它们在我想要使用它们的大多数情况下几乎没有用处。
  9. 你将不得不决定是否使用DomainDataSource,这是一个太多太少的野兽 。你也可以用编程方式获取所有东西,但 有些东西真的很快用这个xaml帮手来连接。
  10. 对于将实体序列化为独立存储没有内置支持。
  11. Silverlight(和我相信的Javascript)是唯一支持的平台 - 没有WPF。 (编辑:这是计划开放RIA服务 - 特别是,它应该能够满足BreezeJS)

由于数据服务是较旧的(我认为),我也没在意永远仔细看看它。不过我最近浏览了DevForce的功能列表,我相信这听起来令人兴奋,尽管我从经验中无法说出任何关于它的信息。

(编辑:我发现科林·布莱尔here RIA Services和WCF的一个很懂行的比较)

建筑师自己的产品进行比较,以RIA服务here。我介绍了他的一些观点,但不是全部。

总而言之,RIA服务显然比原始WCF更好,但也很清楚必须有比这更好的东西。我希望这是DevForce。