WCF和RIA Services Domain Service Class有什么区别?

时间:2009-06-12 01:45:42

标签: silverlight web-services silverlight-3.0

我只是介绍一下Silverlight 3与它的前身之间的基本区别。查看RIA服务中的域服务类,执行似乎相当简单。有人能解释一下这与Windows Communication Foundation之间的基本区别吗?

域服务类是否在后台使用WCF或其他服务框架,还是从头开始新的?

3 个答案:

答案 0 :(得分:17)

我建议你阅读this blog article,其中提及:

  

几年前,我们对RIA服务工作的思考真正源于LINQ项目。 LINQ将查询语义集成到语言(C#,VB等)中,为处理数据提供了一个通用的抽象;该数据是否在内存CLR对象,XML,关系数据或其他任何内容中。通过RIA Services,我们通过提供一个规范模型来扩展这种模式,以便通过LINQ公开您的域逻辑。我们将域逻辑视为您的应用程序中非常特定于您的域的部分 - 这是您正在解决的特定业务问题。

因此,“域逻辑”是LINQ对数据的作用,而WCF本质上只是一个服务提供者。

在传统的N层开发中,这意味着:

  

...您应该将RIA服务视为ADO.NET数据服务和WCF之上更具洞察力的层......我们还期望最终提供对底层WCF服务的所有功能和灵活性的完全访问权限。作为高度优化的二进制序列化。

或者您也可以选择使用新的“RIA服务模式”:

  

...轻松构建ASP.NET应用程序,同时利用RIA服务的所有内置功能,如数据验证,授权等。在3月预览中,我们提供了一个非常简单的asp:DomainDataSource控件ASP.NET WebForms访问您的域逻辑。构建于此之上的是ASP.NET动态数据的未来版本,这使得根据您的域逻辑生成通用的标准UI变得非常容易。

这一要点意味着RIA服务可以:

另一个例子也值得查看Mix09: Building Amazing Business Applications with Silverlight 3

正如我写的那样,我刚刚发现了Microsoft's .NET RIA Services Overview,看起来它解释了RIA服务背后的许多理性(可能比上面的一些更清晰了)。

答案 1 :(得分:2)

我们使用两者的组合。 WCF用于使用二进制序列化和CRUD实体的RIA更好地工作的庞大数据,因为代码编写和维护的速度要快得多。如果RIA支持二进制文件,我们会使用它而不是WCF,但我很确定它在当前版本中没有。

答案 2 :(得分:1)

与RIA一样,WCF有更多的调试选项。域数据源更容易设置,但更难以找出错误。 在很多情况下,WCF将用于建立一个互操作性通信系统,该系统使用WSSE头安全性来解析旧的WSDL。