如何在新的Silverlight应用程序中选择WCF,REST,POX和RIA服务

Ian*_*ose 22 rest silverlight wcf wcf-data-services wcf-ria-services

还有一个很大的不同的方式Silverlight应用程序可以连接返回到它的服务器.包含

对于这些中的每一个,请说明它的用途以及何时使用或不使用它.我不是在寻找一个很好的细节,只是一套"经验法则",可以在它们之间进行选择.

(问题是在设计第一个Silverlight应用程序时,知道在没有时间学习所有这些应用程序时要使用的内容.)

如果我在这个问题中用WPF替换Silverlight会对你的答案产生什么影响?(我假设WPF认为由于防火墙和管理员策略,不能直接连接到数据库.)

Kon*_*man 9

我的两欧元:

当服务可以被视为应用程序的业务层时,也就是说,当您的服务具有"CalculateDiscountForClient""智能"操作时,WCF似乎最适合.

当您的应用程序基本上以数据为中心且服务只是数据库的前端时,ADO.NET数据服务(实际上只是一个REST实现)似乎是合适的.也就是说,您的所有服务方法都是GetCustomers,CreateInvoice等类型.

RIA服务是一项我还没有尝试过的新技术,但是创建Silverlight部分和服务非常紧密耦合的应用程序似乎很有用:在服务项目中定义服务类和方法,它们会在设计时自动复制到Silverlight项目中.此外,您可以定义WCF样式的"操作"方法和ADO.NET数据服务样式的"数据"方法.看起来很有希

如果将来有可能将客户端部件从Silverlight更改为任何其他技术(例如HTML + AJAX),则使用POX,因为它是最具互操作性的选项.

关于WPF的差异,我唯一能想到的是,对于数据访问,我会尽可能使用直接ADO.NET数据连接(正确嵌入数据访问层,LINQ to SQL等)而不是ADO.NET数据服务,因为它更灵活.无论如何,我必须说我从未在WPF中开发过任何东西.


the*_*age 5

我们使用RIA,这是我所知道的唯一一个选项,但我确实知道,所以这是我的一些想法.

RIA尚未完成.它正在进行中.如果您计划很快完成,并且您担心必须支持可能会发生相当大变化的内容,那么您可能需要考虑其他选项.如果这是一个新项目,并且您将长期支持它,RIA可能会更容易使用.

话虽如此,我认为7月预测RIA的工作方式和完成版本的工作方式不会有太多变化.此外,支持程度似乎表明,这将成为与Silverlight中的服务器通信的"方式".

只是因为它值得一提,有一些链接:

http://blogs.msdn.com/brada/ Brad Abrams有一个例子,他不断更新.

http://forums.silverlight.net/forums/53.aspx这是你去问问题的地方.

http://www.riaservicesblog.com/Blog/科林布莱尔知道他的东西,他非常乐于助人.