对于新的Silverlight应用程序,如何在WCF、REST、POX和RIA服务之间进行选择
Silverlight应用程序可以通过许多不同的方式连接回它的服务器。包括对于新的Silverlight应用程序,如何在WCF、REST、POX和RIA服务之间进行选择,wcf,silverlight,rest,wcf-ria-services,wcf-data-services,Wcf,Silverlight,Rest,Wcf Ria Services,Wcf Data Services,Silverlight应用程序可以通过许多不同的方式连接回它的服务器。包括 (见附件) (或者这只是休息?) POX-普通的旧XML(例如基本XML) 对于每一个,请说出它的用途,以及何时使用或不使用它。我不是在寻找一个伟大的细节层次,只是一套“经验法则”在他们之间进行选择 (问题是在设计第一个Silverlight应用程序时,如果您没有时间学习所有这些应用程序,那么您应该知道该使用什么。) 如果我在这个问题上用WPF替换Silverlight,它会对您的答案产生什么影响?(我假设WPF
- (见附件)
- (或者这只是休息?)
- POX-普通的旧XML(例如基本XML)
关于WPF的区别,我唯一能想到的是,对于数据访问,只要可能,我都会使用直接的ADO.NET数据连接(正确地嵌入到数据访问层、LINQ到SQL等),而不是ADO.NET数据服务,因为它更灵活。无论如何,我必须说,我从来没有在WPF中开发过任何东西。我想我再也不会去了。如果您编写WCF使服务本身独立于绑定,并且绑定是在配置文件中完成的,那么WCF对传输和协议几乎是不可知的。它可以执行SOAP、JSON、REST或其自身形式的二进制序列化。所有这些都在绑定中。在内部,WCF只指定在操作和数据契约(都由类、方法和属性属性定义)方面公开的内容。WCF在这方面为您提供了巨大的灵活性,2010年还会有更多的灵活性 从Silverlight方面来看,WCF要求您编写一些管道代码。NET frameowrk具有在Silverlight项目中构建代理的工具,但您必须准备异步处理所有WCF响应,并且代理无法捕获服务引发的异常 .NETRIA服务隐藏了这一切。它在封面下使用WCF,但这是完全隐藏的。您不必编写异步代码。您只需定义一次验证,大部分是声明式的,它可以在服务器端和客户端工作。第1版将针对Silverlight,因此您无法在其他地方使用该服务。这个范围应该在以后的版本中扩大 我对ADO.NET数据服务了解不够,无法进行比较。我怀疑答案将取决于您是否希望将数据公开给Silverlight以外的用户 .NETRIA服务看起来是我想要走的方向(我自己考虑这些问题,考虑到一个大型应用程序)。对我来说,最大的问题是在服务层实现大量功能,而不能直接编码到数据访问层(我们必须能够在SQL Server或Oracle上运行)
使用WPF而不是Silverlight会改变一切,这取决于数据驻留的位置。这就像Winforms与ASP.NET之间的老问题。使用WPF,您正在构建一个Windows客户端应用程序,并且您根本不需要使用任何形式的基于服务的数据接口,除非您的数据访问迫使您使用它。您仍然需要使用MVVM、MVC或MVP将数据和业务与表示代码分开。除此之外,您还可以选择将数据访问视为一个层,而不是一个完全独立的层。我们使用RIA,这是我所知道的唯一选项,但我确实知道,所以下面是我的一些想法 里娅还没做完。这项工作正在进行中。如果你计划很快完成,你担心不得不支持一些有可能改变的东西,那么你可能会考虑其他的选择。如果这是一个新项目,并且您将长期支持它,RIA可能会变得更容易使用 话虽如此,我认为7月份RIA预览版的工作方式和完成版的工作方式不会有太多变化。此外,支持级别似乎表明,这将成为Silverlight中与服务器对话的“方式” 值得一提的是,有一些链接: 布拉德·艾布拉姆斯有一个不断更新的例子 这是你提问的地方
科林·布莱尔知道自己的本事,他非常乐于助人 WCF是微软的服务通信标准。我强烈建议任何人使用WCFWebAPI(使用WCF,但专门为REST定制)创建服务层,该服务层将于今年4月2日发布