为什么RIA服务被称为黑魔法?

时间:2011-03-26 19:05:39

标签: wcf-ria-services

为什么人们称RIA服务为黑魔法?他们指的是什么样的黑魔法?此外,我已经看到大多数人不使用RIA,即使他们在Silverlight世界。为什么会这样?即使在stackoverflow上,人们询问以及回答RIA服务问题的百分比也非常低。为什么会这样?

3 个答案:

答案 0 :(得分:2)

WCF RIA服务提供以下好处:

  • 制作支持IQueryable和IEnumerable的WCF RIA服务; WCF RIA Services创建客户端代理,允许您通过线路仅从客户端发送表达式树,以便仅返回所需的数据。例如:您可以在您的ria服务中调用一个名为GetProducts()的方法,但也可以添加一个LINQ lambda,例如GetProducts()。其中​​(d => d.Quantity> 50)并且只有表达式通过线路发送到服务器。服务器执行过滤并仅将匹配作为强类型对象返回。
  • 动态生成OData,REST / JSON和SOAP端点,web.Config中每个端点只有一行。
  • 能够自动将在中间层创建的业务规则流入客户端层
  • 允许您有效地将验证从中间层传递给用户
  • 通过简单的数据注释验证器修饰允许属性,参数,方法,对象,集合和变更集级别业务规则

存在一些不足之处:

  • 仍然不支持RPC
  • 的WS- *(将在5中)
  • OData提供程序不可查询

答案 1 :(得分:1)

好吧,我还没有听说有人将WCF RIA服务称为黑魔法。

我相信有少数人使用它(与在Silverlight中写东西的人数相比),因为它更年轻。人们可能已经使用经典的WCF服务开发了他们的Silverlight应用程序一段时间了(版本3.0于2009年7月发布)。

WCR RIA服务仍然是新的(版本1.0在2010年5月发布,最终SP1在2010年12月发布)并且我们都知道规则,“永远不要更改正在运行的系统”,所以如果有人已经有一个有效的WCF Web服务,为什么改变它?就我而言,我们不久前尝试过Silverlight和WCF,并决定等待。当RIA Services问世时,我们认为这很棒,并开始研究我们主要应用程序的Silverlight版本。在新项目中使用RIA Services要比在现有项目中使用Web服务访问更容易。

除此之外,应该注意Silverlight不仅限于使用Web服务进行数据库访问的业务应用程序。因此,可能会有相当多的Silverlight开发人员不需要任何类型的Web服务。

另一个原因可能是,对于需要数据库的Web应用程序,其他技术如ASP.NET,ASP.NET MVC,甚至是PHP或JSP(可能还有其他我甚至听不到的)已经存在了很长一段时间。虽然商业应用程序也应该看起来不错,但通常并不是拥有各种花哨的图形和动画等的最高要求。

最后,为什么关于RIA服务的SO问题很少?好吧,他们的own forum确实很活跃。 (我在寻找答案时将其用作资源,但不在那里发布。)

答案 2 :(得分:1)

关于你的问题的“黑魔法”部分,我认为正在向convention over configuration转变。与vanilla WCF相比,您最终只编写了很少的代码来构建客户端 - 服务器关系。此外,WCF RIA工具可以实现大量代码生成。

有关使用WCF RIA并且通常位于Wikipedia的配置的约定更多信息。