RIA服务与WCF服务:有什么区别

时间:2010-03-26 13:41:00

标签: .net silverlight wcf wcf-ria-services

有很多关于如何使用.NET RIA服务构建Silverlight应用程序的信息,但目前尚不清楚RCF中哪些内容在WCF中不存在?

以下是讨论此主题的几个主题:[1][2]

但他们没有回答这个问题。

对于这个愚蠢的问题感到抱歉,但如果您已经RIA ServicesSilverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database图层会为您的应用带来什么?验证?验证?它对你有用吗?

目前我唯一看到的是:使用RIA服务时,您不需要手动托管WCF服务,也不需要在客户端配置任何引用(clien side == Silverlight应用程序)。

可能我不知道RIA服务的一些非常有用的功能?那么请你指点那个好医生吗?

非常感谢。

P.S。我已经阅读了很多关于差异的不同文章,但无法澄清......所有文章都“讲述”并且不具体。如果你打算给我一个附加文章的链接,请你如此友好并提供你所看到的好处列表。

2 个答案:

答案 0 :(得分:12)

实际上,您可以在不使用RIA服务的情况下使用相同的验证和身份验证。 RIA Services为您提供的是代码生成。它会为您创建课程。您只需要放置业务逻辑。我认为RIA Services对于快速开发中小型应用程序非常有用。

另一个区别是它隐藏了对Web服务的异步调用。许多人不喜欢异步模型(这是唯一可以在Silverlight中使用的模型),RIA服务可以为您处理。

我建议您阅读Shawn Wildermuth的这篇文章,他指出了这两种方法的优点和缺点,还包括ADO.NET数据服务(现在我称之为WCF数据服务):

http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3

答案 1 :(得分:4)

好吧,我不同意之前发布的答案。 WCF Ria Sercices是一个伟大的建筑,时代已证明。我宁愿看看http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx

实际上,我在针对1500多名当代用户的大型LOB应用程序上使用WCF Ria服务。我已经大量使用客户端代码生成定制(详情请参阅Varun's blog),但我可以通过Silverlight使用LINQ,我可以在自动延迟或急切加载之间进行选择。关于背景的善意。请不要忘记,WCF Ria Services的其余范例也允许使用OutputCache。

没有提到,由于自定义metadataprovider,您可以极大地方便客户端的生成以及如何将数据序列化到客户端。我相信如果您的Silverlight应用程序是基于上下文的,那么您肯定可以使用WCF Ria Services。 希望这可以帮助, 马可