.NET RIA 服务/WCF 服务

Posted

技术标签:

【中文标题】.NET RIA 服务/WCF 服务【英文标题】:.NET RIA Services / WCF Services 【发布时间】:2010-10-31 00:22:15 【问题描述】:

我们正在创建一个 n 层 Silverlight LOB 应用程序,并且正在考虑使用 .NET RIA 服务。我们不清楚这与我们当前的 WCF 服务 API 的关系。我们当前的架构是:

Silverlight WCF 服务 业务逻辑 实体框架模型 数据库

观看 Nikhils Mix 09 演示后,似乎 .NET RIA 服务将取代我们的 WCF 和 BusLog 部分:

Silverlight RIA 服务 EF 模型 DB

这很好,希望我们需要公开一个标准的 SOAP 端点 API 以供其他应用程序(Biztalk、Integration 等)使用。 .NET RIA 服务是否可以在没有异步要求的情况下作为 SOAP 端点公开?

通过 .NET RIA 服务实现 WCF 服务有多容易?你知道这方面有什么好的在线例子吗?

谢谢, 标记

【问题讨论】:

【参考方案1】:

是的——在 RIA 服务的下一个 CTP 中,我们将为定义 WCF 服务(通过 Astoria 和最终的 vanilla WCF)提供一些非常好的支持,从而在 RIA 服务中公开您的业务逻辑。因此,您的 RIA 服务实施需要两个负责人。

银光 RIA 服务 EF 模型 数据库 WCF 服务

如果主要目标是 Silverlight 应用程序,我会说这个模型是有意义的,但是如果主要目标是 WCF 服务,我会坚持你今天拥有的模型。这有帮助吗?

..布拉德

【讨论】:

感谢布拉德,您的建议与我们正在做的事情一致。遗憾的是,我们无法从 .NET RIA 服务公开 WCF 端点,因为我们需要一个服务 API,但是目前通过 WCF 手动处理实体给我们带来了很大的痛苦。标记【参考方案2】:

我们正在研究完全相同的场景。现在,我们正在考虑采用这种模式:

Silverlight RIA 服务 WCF 服务 业务逻辑 实体框架模型 数据库

我们将能够在各种绑定中托管我们的 WCF 服务。我们将为 Silverlight 应用程序使用从 RIA 到 WCF 的 inProc 调用。对于 WCF 服务的外部消费者,我们将使用 wsHttp 端点托管它们。

因此,在我们的场景中,我们可以充分利用两者。 RIA 服务成为我们应用程序的一组演示服务的一部分,可减轻 Silverlight 应用程序(即异步)的编程负担。缺点是我们添加了一个额外的层。

想法?

【讨论】:

老实说,我认为这不是一个好主意。将 RIA 服务置于 WCF 服务之上,一旦越过 WCF 层,您将失去 EF 模型的所有优势,因此您将在断开连接的对象和由创建的代理对象之上构建 .NET RIA 服务特定服务,因此与使用它们的其他服务不兼容。 好吧,马克,那么看来我们也走上了一条糟糕的道路。我们的路径是:Silverlight RIA 服务或 WCF 服务 WCF 外观 应用服务 域模型 nHibernate SQL RIA 服务 || WCF 服务位于我们的防火墙之外,并且仅为此应用程序构建。 Facade 层在里面,每个应用程序仍然有一个外观。 App 服务和域模型是 POCO 并由我们所有的应用程序共享。我们手头的选择是我们是引入 RIA 服务来获得简化的配置和神奇的身份验证和授权,还是普通的 WCF? 看起来这是下一个版本的全部更改 :-) RIA 服务称为 WCF RIA 服务,将支持其他端点。

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

Ria 服务与 WCF 数据服务

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

什么是 WCF RIA 服务?

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

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

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