RIA服务与WCF服务:什么是差异

问题描述:

有大量的信息介绍如何使用.NET RIA服务的Silverlight应用程序,但目前尚不清楚是什么RIA独特的东西是不存在的WCF?RIA服务与WCF服务:什么是差异

下面是围绕这个话题谈论几个主题:[1][2]

但他们并没有给出答案的问题。

对不起,这个愚蠢的问题,但如果你已经有Silverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database 012xx图层会带来什么?验证?验证?它对你来说是相当宝贵的吗?

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

大概我不知道RIA服务的一些非常有用的功能?那么,请你指出我的好文件吗?

非常感谢。

P.S.我已经阅读了许多关于差异的不同文章,但无法澄清它......所有文章都是“四处讲述”,并不具体。如果你打算给我一个额外的文章的链接,你可以请你如此善良,并提供你看到的好处列表。

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

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

我建议你阅读这篇文章,肖恩Wildermuth他指出,从两种方法的利弊,还包括ADO.NET数据服务(现在被称为WCF数据服务,我认为):

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

+0

Arturo,谢谢你的链接,它给了一些思考...但无论如何,它不是我清楚什么是RIA的好处。我从链接文章中得到的唯一新东西是:RIA服务与WebServices(或使用WsHttpBasic传输协议的WCF)非常相似,并提供了将LinQ查询应用于被调用方法的附加功能。他们会在服务器端执行吗?这是全部吗? – Budda 2010-03-26 20:18:27

+0

是的,他们将在服务器端执行。 RIA服务包括过滤器描述符,允许您将标准一直传递到数据库,这是它们应该发生的地方。除此之外和上述原因,是的,这一切都是:-)对我来说,你得到的代码是它的不同之处。 – 2010-03-31 04:45:46

+0

Arturo,您如何在不重复代码的情况下将验证逻辑复制到客户端? – bob 2010-03-31 10:10:28

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

其实我使用WCF RIA服务在大型LOB应用程序针对1500+当代的用户。我已经大量使用客户端代码生成定制(详情请参阅Varun's blog),但是我可以通过silverlight使用LINQ,并且我可以在上下文中的实体之间自动选择懒惰或渴望加载。请不要忘记,WCF Ria Services的其他范例也允许使用OutputCache。

不是提到,由于定制metadataprovider可以极大地方便了客户端的生成和数据的序列化到客户端。我相信如果你的Silverlight应用程序是基于上下文的,你肯定可以使用WCF Ria Services。 希望这可以帮助, Marco