WCF 数据服务与 WCF RIA 服务

发布于 2024-12-19 23:40:59 字数 295 浏览 2 评论 0原文

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

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

谁能帮助我收集一些数据进行评估。另外,还有其他好的 SOA 实施方案吗?

我知道 DevForce。

I need to evaluate SOA architecture between WCF Data Services vs WCF RIA Services. Following are some of my parameters:

  1. Multiple Client (HTML5/iOS/Android/Windows 8 Metro/Windows Phone 7)
  2. Disconnected and offline operation
  3. Validation engine
  4. Performance
  5. Network data compression
  6. Support for Cloud Environment

Could anyone help me to gather some data for my evaluation. Also, is there any other good option available for SOA implementation.

I am aware of DevForce.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

℡Ms空城旧梦 2024-12-26 23:40:59

我非常熟悉 RIA 服务,并且知道它的不足之处。我对数据服务和 DevForce 知之甚少,但我知道 DevForce 宣称在那些令我烦恼的领域比 RIA 服务更好,即:

  1. RIA 无法进行任何类型的分组或连接。 (有趣的是,DevExpress 工具包可以
    在某些情况下,对 RIA 服务源进行一些欺骗。)
  2. 它确实理解关系,但不是必须理解的多对多类型
    透明地处理到桥接表的转换。 (编辑:这是为 Open Ria 服务计划的)
  3. 更改跟踪通过上下文(工作单元)进行,该上下文只能提交或
    整体被拒绝(无论如何都是开箱即用的)。这通常会导致一个应用程序
    许多上下文和奇怪的复制操作来传输实体。 RIAServicesContrib
    项目对此有所帮助。
  4. 似乎不再维护了。我基于以下事实:当 Entity Framework 4.1 发布新的 DbContext API(代码优先)时,Microsoft 发布了 兼容性库,您可以使用RIA 和 EF 代码优先。不过,该库在 EF 4.1 上有版本锁定,并且 Microsoft 现在只是声明 RIA 服务不支持 DbContext< /a> 以 Visual Studio 2012 的 Orwellian 注释的形式。(编辑:现在再次支持 DbContext - EF 目前支持版本 5,其中 6 可能仅在 Open Ria 中支持服务)
  5. 一些任务,例如以编程方式观察相关实体的变化(而不是
    通过数据绑定)很难。
  6. 有些事情应该非常简单,例如从附加的内容中获取上下文
    实体,很难。
  7. 所有查询都是单个请求,仅对剩余的 CUD(CRUD)进行批处理。
  8. 与正常 CUD 操作一起调用的自定义方法非常有限。在
    特别是,它不是
    可以取消已安排的任务而不取消整个上下文。那有
    在我想使用它们的大多数情况下,它们几乎毫无用处。
  9. 您必须决定是否使用 DomainDataSource,它是一个野兽
    这样做太多又太少。您也可以通过编程方式获取所有内容,但是
    使用这个 xaml 助手可以快速连接某些东西。
  10. 没有对将实体序列化到隔离存储的内置支持。
  11. Silverlight(我相信还有 Javascript)是唯一受支持的平台 - 没有 WPF。
    (编辑:这是为 Open Ria Services 计划的 - 特别是,它应该能够为 BreezeJS 提供服务)

由于 Data Services 较旧(我认为),我不想仔细研究它。然而,我最近浏览了 DevForce 的功能列表,我相信这听起来很令人兴奋,尽管我不能从经验中对此说什么。

(编辑:我发现 Colin Blair 对 RIA 服务和 WCF 进行了非常有见地的比较 此处

)架构师在此处将他的产品与 RIA 服务进行了比较。我阐述了他的一些观点,但不是全部。

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

I'm intimately familiar with RIA Services and know where it falls short. I know little about data services and DevForce, but I know that DevForces advertises to be better than RIA Services in exactly those areas where it annoys me, which is:

  1. RIA can't do group-by or joins of any sort. (Interestingly, the DevExpress toolkit can
    do some trickery to group on a RIA Services source in some cases.)
  2. It does understand relationships, but not of the many-to-many kind where it would have to
    handle a translation to a bridge table transparently. (EDIT: this is planned for Open Ria Services)
  3. The change tracking works through a context (unit of work) which can only be submitted or
    rejected as a whole (out-of-the-box anyway). That usually leads to an application with
    many contexts and weird copy operations to transfer entities. The RIAServicesContrib
    project helps with that.
  4. It appears to be no longer maintained. I base this on the fact that when Entity Framework 4.1 released their new DbContext API (for code first), Microsoft released a compatibility library with which you could use RIA and EF code first. That library has a version lock on EF 4.1 though, and Microsoft now just states that RIA Services doesn't support DbContext in the form of an Orwellian note to Visual Studio 2012. (EDIT: DbContext is now supported again - EF is currently supported up to version 5, with 6 being likely only supported in Open Ria Services)
  5. Some tasks such as observing changes of related entities programatically (rather than
    through data binding) are hard.
  6. Some things which should be really simple, such as getting the context from an attached
    entity, are hard.
  7. All queries are single requests, only the remaining CUD (of the CRUD) is batched.
  8. Custom methods to invoke along with normal CUD operations are very limited. In
    particular, it's not
    possible to cancel one that is scheduled without cancelling the whole context. That has
    made them almost useless in most cases where I wanted to use them.
  9. You will have to decide whether or not to use the DomainDataSource, which is a beast
    that does too much and too little. You can fetch everything programatically too, but
    some things are really quick to wire up with this xaml helper.
  10. There is no built-in support for serializing entities to isolated storage.
  11. Silverlight (and Javascript I believe) are the only supported platforms - no WPF.
    (EDIT: this is planned for Open Ria Services - in particular, it should be able to serve BreezeJS)

Since Data Services is older (I think), I didn't care to ever look closely at it. I did however recently skim over the feature list of DevForce and I believe that sounds exciting, although I can't say anything about it from experience.

(EDIT: I found a very knowledgeable comparison of RIA Services and WCF by Colin Blair here.)

The architect compares his product to RIA Services here. I covered some of his points, but not all.

Altogether I can say that RIA Services is clearly better than raw WCF, but it's also clear there has to be something better than that. I hope that's DevForce.

许久 2024-12-26 23:40:59

两者都通过 OData 公开实体,但 RIA 服务专门针对:

  • Silverlight 消费
  • 穷人的服务 - 它们更容易轻松启动和运行

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

也就是说,这两种实现都相当不成熟(同样仅在 IMO 中),并且没有经过深思熟虑或实施。 ...您可能会更好地使用 WebGet/WebInvoke 属性托管的传统 WCF 操作...或使用 WCF Web API

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

Both expose entities via OData, but RIA Services is specifically targeted to:

  • Silverlight consumption
  • Poor man's services - they're easier to get up and running with little effort

WCF Data Services are far more powerful and configurable. The biggest difference (IMO) is that RIA services require one host type per entity, whereas WCF Data Services can automatically host an entire content (a type with multiple IQueryable properties).

That said, both implementations are pretty half baked (again IMO only) and not really well thought out or implemented. ...You may be better off with traditional WCF operations hosted with WebGet/WebInvoke attributes...or using the WCF Web API.

I wouldn't go with DevForce only because it mainly really target Silverlight implementations (if I recall correctly). That said, they're package is pretty cool and far more feature complete than RIA or WCF Data Services.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文