2

所以,我已经使用 WCF Ria 服务几个月了,我想知道为什么有人会使用 WCF basicHttp webservice 而不是使用 WCF RIA 服务?

有人告诉我 RIA 服务不适合企业级应用程序,我想知道为什么?

如果没有 RIA,您似乎必须在 2 个区域(客户端和服务器)中编写验证逻辑。此外,RIA 相当容易地处理角色和成员资格。

如果要使用 WCF basicHttp webservice,需要做多少额外的工作?使用 RIA 有什么好处?和.. 有没有人有任何使用 wcf basicHttp webservice 的企业级 Silverlight 应用程序的好例子?

谢谢!

4

2 回答 2

1

Silverlight 中的 WCF 支持问题与嵌入在 Silverlight 插件中的 .NET Framework 的有限子集有关,因为它本质上是 .NET Framework 的缩小版本。由于 Silverlight 插件中缩减了 .NET 运行时,它对 WCF 的完全支持与您从标准 .NET 项目中获得的完全不同。这样做是为了从客户的角度快速下载 SL,并增加 SL 作为产品的上市时间。请记住,SL 插件不依赖于正在安装的现有 .NET 框架,这就是市场上有 Linux、Windows Phone 7 和 OS X 版本的原因。

随着时间的推移,他们继续添加按需功能。例如,Silverlight 5 将支持 WS-Trust(请参阅此处以获取 5 中新功能的完整列表)。

我建议您阅读此资源,以了解通过尝试从客户端调用 WCF 服务可能会错过什么:

http://msdn.microsoft.com/en-us/library/cc896571(v=vs.95).aspx

请记住,您可以很容易地通过 RIA 服务端点代理对更复杂 WCF 服务的调用,这些端点实际上直接从服务器端调用服务。

至于使用标准 WCF 而不是 RIA ...当您的中间层有多种客户端类型时会有优势,尽管使用 RIA 您可以简单地将端点公开为 SOAP 1.1 端点并要求人们使用该范例而不是 WCF 进行连接。您不必使用 RIA 或什么都不用;您可以混合搭配以满足您认为合适的要求。就我个人而言,如果可能的话,我很喜欢使用 RIA。

于 2011-03-29T01:17:50.500 回答
1

公平地说,RIA Services 已经经历了成长的痛苦。我对它的一些最大问题(例如无法从 Invoke 方法返回不是实体的复杂对象,以及缺乏对以 MVVM 方式使用的体面支持)大部分已在 RIA Services SP1 中得到修复。我认识的一些人在大型企业应用程序中使用它时非常头疼(至少在早期)。我不太确定在这方面现在情况如何,至于他们的特定问题是否已经解决。

也就是说,我个人认为这是一项了不起的技术。它使使用标准 WCF 服务很痛苦的任务变得容易(我最喜欢的是能够在客户端上对返回 IQueryable 的域服务中的方法指定查询,这些方法在服务器上执行 - 使排序/过滤/分组/分页变得轻而易举) . 是否适合您取决于您​​的情况。它的主要设计目的是使对实体执行 CRUD 操作变得容易,所以如果这主要是您需要的,那么它就是完美的。然而, RIA 服务设计为仅由 Silverlight 应用程序使用(至少目前如此)。您可以从其他客户端访问它们,但您无法获得使它们如此出色的所有功能。因此,如果您需要支持其他客户端平台,它可能不合适。

我认为 RIA 服务很棒,但最终取决于您的方案是否适合您的项目。作为一项技术,它面向特定场景,并非旨在解决世界上所有的软件开发问题。一些可能会抱怨它的人可能没有按照预期的方式使用它,并推动了它的极限(也就是说,它也不完美,并且有它的问题)。如果您可以提供更多详细信息(例如应用程序的规模、它需要支持的客户端平台以及项目中的开发人员数量),我可能会给您一些更有用的建议。

希望这可以帮助...

克里斯

于 2011-03-29T06:17:49.380 回答