CSharp - Silverlight启用WCF服务 vs 网络服务 vs ADO.NET 数据服务

  显示原文与译文双语对照的内容
0 0

好的,在一个Silverlight控件中获取数据的所有方法都让我感到困惑。

我查看了 ADO.NET 数据服务,网络服务和 Silverlight-enabled WCF服务。 我只是不确定什么时候适合使用另一个。 每一个提供的优点/缺点?

我已经构建了一个网络应用程序和一个Silverlight控件。 我将在我的web应用程序中添加这 3个选项之一,并从我的Silverlight组件中使用它们。

时间:原作者:3个回答

0 0

从silverlight的角度来看,wcf严重受限,所以大部分的常见 wcf的好处并不适用。 然而,它仍然是一个相当好的,一致的编程模型。

WCF主要是一个SOAP栈,所以它非常擅长将数据呈现为严格的操作。 ADO.NET 数据服务是一个REST堆栈,允许通过网络动态执行非常有表现力的查询。

我不知道它是如何在Silverlight中的,但是一个普通的ADO.NET 数据服务代理( 客户端应用程序上的位) 对查询和数据更改都有非常丰富的支持。 注意应用更改需要 a: Entity Framework 或者 b: 大量工作。 但是你应该用这种方法来很便宜地查询和更新。

有了 WCF,你就得到了一个更受控制的堆栈,因此你需要编写所有需要执行的不同操作。 但是这也意味着你有一个已知的攻击表面;它比固定的SOAP端点更难利用一个锁定的API 。

常规 web-services ( pre-WCF ): 如果你想支持非常特定的遗留调用者,只需向下移动那个路由。

原作者:
0 0

我知道这是旧的,但我只想添加 2美分。

我强烈建议使用 WCF ;并在Silverlight-enabled网络服务器上使用WCF服务库项目。 它们都是相同的,但是Silverlight-enabled网络服务将绑定更改为基本而不是 ws* 。 它还添加了一个 ASP.NET 兼容模式属性。


  • WCF通常速度: 使用现有的分布式通信技术查看"Windows 通信基金会( WCF )的性能比较)"@ http://msdn.microsoft.com/en-us/library/bb310550.aspx

  • WCF封装 asmx,wse,msmq,企业服务和远程处理。

  • 可以在 iis,Windows 表单等中包括和运行WCF服务。

  • WCF不仅限于使用 HTTP,而且使用最小配置也可以使用 tcp,命名管道(Named Pipes) 等。

  • 复杂数据类型更易于公开和序列化。

  • WCF只是很好地伸缩。 此外,它们还可以用于合并来自WF的工作流。


使用的技术可能不是一个错误的技术,但似乎微软将会随着WCF前进。 另外,编写一个代码库,并且只对WCF服务进行一些配置更改,这样编写一个代码库就更容易了。

我建议不要使用 Silverlight-enabled web服务,只是因为使用WCF模型设置的编程结构稍微好一点,但这可能是一个问题。

原作者:
0 0

如果要在网络服务和WCF服务之间进行选择,我的建议是使用 WCF 。 更现代更强大的技术。 对于 ADO.NET 数据服务,你可以使用它,如果你需要从服务器上检索/提交/提交一些数据。

原作者:
...