我是Silverlight的新手,我在想应该走哪条路。我正在计划应该基于Silverlight的新项目的计划阶段。问题是我想在服务器端拥有自己的DAL-> BLL,并且将与Silverlight进行通信的WCF服务也应该由其他应用程序使用,包括Java等其他技术。
我知道在4版中,MS提出了RIA服务来处理业务逻辑任务,并提供EF来处理数据,但是我根本不想使用EF。
那么您有什么建议选择这两种方式的利弊吗?与标准WCF服务相比,RIA服务在使用Silverlight应用程序时是否有一些弊端?便携性如何?例如从Java消费吗?
谢谢
最佳答案
RIA服务是位于WCF之上的一层。它旨在通过EF或LINQ to SQL启用高级用法。您还可以混合使用自己的自定义WCF服务,并且可以将RIA与自己的自定义逻辑,数据/实体机制以及自定义DTO一起使用(尽管您会失去RIA提供的大多数优势)。
RIA Services的关键在于,它允许LINQ查询执行的自动化并在客户端上自动生成一些非常高级的代理类。这样,客户端就可以像在客户端上本地执行查询一样使用RIA Services,但实际上可以在服务器上执行这些查询。 RIA Services的缺点是它主要是纯MS技术(至少在此版本中)。从理论上讲,您可以从Java客户端与RIA进行对话,但是这样做几乎没有任何好处。如果您要支持其他客户端,最好建议您仅使用WCF手动构建服务器服务。
一个例外是RIA可以生成oData端点。在非MS客户端方案中,这可能很有用,但前提是您必须使用oData。虽然RIA服务是非常新的,所以在尝试将其用于非Silverlight客户端之前,我将等待下一个版本。