Silverlight RIA服务与WCF服务
我正在重写一个LOB应用程序,其体系结构如下: Silverlight和Windows Mobile->WCF ->实体框架->数据库Silverlight RIA服务与WCF服务,silverlight,wcf,wcf-ria-services,Silverlight,Wcf,Wcf Ria Services,我正在重写一个LOB应用程序,其体系结构如下: Silverlight和Windows Mobile->WCF ->实体框架->数据库 移动应用程序应该能够像silverlight应用程序那样做某些事情。在这里使用RIA服务有什么好处?RIA服务与WCF相比有哪些优点和缺点?.NET RIA服务是为在浏览器中运行的Silverlight创建的。Silverlight正在运行.NET framework的特殊版本,在N层应用程序中,Silverlight无法和服务器端共享程序集。NET RIA服务
移动应用程序应该能够像silverlight应用程序那样做某些事情。在这里使用RIA服务有什么好处?RIA服务与WCF相比有哪些优点和缺点?.NET RIA服务是为在浏览器中运行的Silverlight创建的。Silverlight正在运行.NET framework的特殊版本,在N层应用程序中,Silverlight无法和服务器端共享程序集。NET RIA服务通过使用一些聪明的代码生成,使得开发人员几乎看不到这一差距。类似于域类的类是在客户端生成的代码,还提供了在客户端和服务器之间来回移动对象的方法 您可能能够从Windows Mobile调用.NET RIA服务,但我认为这并不容易,而且目前您可能实际上必须对在线发送的内容进行反向工程(使用JSON)。另一方面,WCF的范围更广,但不支持Silverlight开发,其支持方式与.NETRIA服务不同 如果您正在编写Silverlight,那么只有N层应用程序。NETRIA服务非常强大。然而,如果Silverlight只是几个客户端中的一个,那么WCF可能是一个更好的选择
请注意,.NET RIA服务尚未发布,但可以下载预览版。RIA服务构建在WCF之上。随着PDC的释放,这将更加明显。RIA Services简化了客户端编程模型,使其与服务器端域服务和实体非常紧密地匹配。不管答案如何:
RIA服务构建在WCF之上。 随着PDC释放,这将是 更明显的是。RIA服务 简化客户端编程 模型,使其非常匹配 使用您的服务器端域服务 和实体 对我来说(我猜对于主题作者来说),除了访问DomainService(这与WCF提供的服务相同)之外,还不清楚RIA服务还提供了什么
谢谢。.NET RIA服务在2009年11月举行的PDC中被命名为WCF RIA服务。由于它是建立在WCF之上的,因此被命名为“WCF RIA服务”
您需要使用WCF RIA服务来构建涉及数据库(或需要在各层中携带的任何信息)的N层应用程序。WCF RIA服务为您在使用Silverlight的WCF时遇到的难题提供了多种解决方案。例如,使用
EntityQuery
异步加载查询要比WCF提供的Begin..End解决方案简单得多。此外,RIA还提供了来自客户端的集成更改跟踪,允许将多个更改作为一个更改集提交或拒绝。RIA将把所有这些更改捆绑到一个请求中,但从您的域服务中,它的行为与单独的调用一样。作为一个长期的WCF开发者,我可以告诉你,这是一件轻而易举的事 在WCF RIA服务正式发布之前,我认为这个问题没有明确的答案。截至目前的测试版(VS2008,SL3),RIA服务并没有隐藏服务调用的异步性质;您仍然需要提供回调方法。此外,RIA服务目前不支持用户定义类(或用户定义类的集合)作为RIA服务调用的参数或返回值。我还遇到了通过RIA服务提供不可编辑实体类的问题。(错误表明实体集合不可编辑。是的,这正是我想要的…)
在这一点上,我需要退后一步,再看看如何使普通的旧WCF工作起来。考虑到我们正在开发的应用程序的大小,这并不是那么简单,但在微软解决RIA服务当前的一些问题之前,这似乎是可行的解决方案。RIA服务的创建只是为了与Silverlight一起使用。它们实质上是Silverlight可以使用的标准“包”。优点是您有很多服务,无需编写代码,即:
关键是,使用Ria服务,您只需单击鼠标即可实现所有这些!。另一方面,Ria服务真的很难定制……因此,如果您不喜欢他们提供的标准解决方案,您就无法使用它们像这样的体系结构能正常工作吗?1) silverlight->RIA Services->WCF->Entity Framework 2)移动应用->WCF->Entity Framework具有编辑权限的人是否可以更改此答案以反映RIA的当前状态(现在可用)。我知道这个问题很挑剔,但StackOverflow最好的地方是能够阅读仍然相关的旧答案:)您不需要使用WCF RIA服务来构建N层应用程序。普通的旧WCF工作,还有WCF数据服务选项。在两者之间进行选择有点困难。第二个是RIA