2010-09-11 170 views
3

我对silverlight非常陌生,而且我正在走向哪条路。我正在计划我的新项目的计划阶段,这个阶段应该建立在Silverlight之上。问题是我想在服务器端拥有自己的DAL - > BLL,而与Silverlight交谈的WCF服务也应该可以被其他应用程序使用,包括其他技术,如Java。 我知道在4版本中,MS提供了RIA服务来处理业务逻辑任务和EF进行数据处理,但我根本不想使用EF。 所以你有什么建议选择哪种方式的缺点和优点?使用Silverlight应用程序时,RIA服务与标准WCF服务相比有什么缺点?可移植性如何?从Java中消耗它例如?Silverlight 4 WCF或RIA服务

谢谢

回答

1

RIA服务是一个位于WCF之上的图层。它旨在通过EF或LINQ to SQL实现高级用法。您也可以混合使用您自己的自定义WCF服务,并且可以使用RIA和您自己的自定义逻辑,数据/实体机制以及您的自定义DTO(但您将失去RIA提供的大部分优点)。

RIA服务的关键在于它允许自动执行LINQ查询并在客户端自动生成一些非常高级的代理类。这允许客户端使用RIA服务,就好像查询执行在客户端上是本地的,但是这些查询实际上在服务器上执行。 RIA Services的缺点是它主要是MS only技术(至少在这个版本中)。从理论上讲,你可以从Java客户端与RIA交谈,但是这样你几乎没有什么优势;如果您要支持其他客户端,最好建议使用WCF手动构建您的服务器服务。

一个例外是RIA可以生成oData端点。这在非MS客户端场景中可能非常有用,但前提是oData适合您的情况。 RIA服务虽然非常新,所以在尝试将它用于非Silverlight客户端之前,我会等待下一个版本。

0

RIA服务不绑定到实体框架。你可以使用任何你想要的数据访问技术,并将其公开为RIA服务。 RIA服务优于普通WCF的优势在于它简化了大部分必要的管道工作。

+0

这就是我想知道的。 RIA服务是如何简化的?我真的不知道,从来没有与RIA和Silverlight合作过,在网络中,我只能找到关于RIA + EF模型的信息,这就是为什么我在这里问。 – Davita 2010-09-11 11:13:24

+0

一个示例是使用模型类上的DataAnnotations进行的服务器端验证将自动转换到客户端,而无需任何代码。它还提供了诸如身份验证和角色等常见任务。 – 2010-09-11 11:23:10