WCF / WCF 数据服务 / WCF RIA 服务

Posted

技术标签:

【中文标题】WCF / WCF 数据服务 / WCF RIA 服务【英文标题】:WCF / WCF Data Services / WCF RIA Services 【发布时间】:2011-04-22 14:18:47 【问题描述】:

不要添加关于不同 WCF 堆栈的另一篇 SO 帖子,但我想确保在我浪费更多开发时间之前朝着正确的方向前进...

我的场景 - 我们公司有许多 Web 应用程序都访问同一系列数据库。所有的应用程序基本上都是独立开发的,因此存在大量的业务逻辑和数据访问重复。最重要的是,我有一个(可能是不合理的)目标,就是让这个项目独立于客户端——将我们当前的业务逻辑和数据访问整合到一个可以通过 Web 应用程序、Silverlight、移动应用程序等访问的界面中。

输入 WCF - 我觉得它是实现两者的完美选择。不幸的是,在阅读了存在于各种 WCF 风格的所有现有“指南”之后,我总是比任何事情都更加困惑。以下是我目前得出的结论 - 请随时纠正我:

Straight WCF - 最灵活、最全面的选项,但一切从头开始;需要大量的时间来配置和测试;技术上最成熟的选项,带有实现大部分目标的钩子 WCF 数据服务 - 在线获取 REST 服务的最快方式;如果应用程序只需要直接从数据库公开数据,那就太好了;如果需要业务逻辑,则必须在客户端编写或由公开逻辑的第二个服务编写。 WCF RIA 服务 - 配置准备好公开业务逻辑的服务的最快方式;可能是技术上最不成熟的选项(但看起来需要大量投资才能实现); Soap、REST 和 JSON 端点将允许大部分客户端独立性;

因此,鉴于我的上述要求,我得出以下结论 - 由于业务逻辑要求,数据服务可能无法启动(第二个 WCF 服务使用数据服务的想法让我觉得架构非常糟糕选择);速度很重要,这表明 RIA 服务可能是最好的起点(称我为懒惰,但拥有一个时间紧迫的小团队使得代码生成很有价值)。

有没有更好的方法来处理我描述的目标?我是否误解了任何/所有 WCF 选项?对于选择哪种 WCF 方法,还有哪些其他实用指导(不仅适用于我,也适用于其他试图评估这些技术的人)?

【问题讨论】:

【参考方案1】:

我会直接使用 WCF。

这允许您根据要求通过各种端点公开您的服务:

SOAP 实现跨平台互操作性 用于需要速度的内部客户端的二进制 NetTcp 用于轻量级访问的 JSON

【讨论】:

以上是关于WCF / WCF 数据服务 / WCF RIA 服务的主要内容,如果未能解决你的问题,请参考以下文章

WCF / WCF Ria 服务在“IncludedResults”中返回关系数据

Ria 服务与 WCF 数据服务

.NET RIA 服务/WCF 服务

什么是 WCF RIA 服务?

如何为新的 Silverlight 应用程序在 WCF、REST、POX 和 RIA 服务之间进行选择

提交时可以编辑 WCF Ria 服务实体吗?