可以由跨平台客户端使用的WCF

时间:2012-07-02 18:40:45

标签: c# wcf web-services azure servicebus

我有这样的场景,我需要在Azure Service Bus上托管Web服务(WCF)并将其公开以供跨平台客户端(.NET或Java或任何其他)使用。哪种不同的协议可以满足这种情况?我正在考虑使用预定义的xsd或REST或SOAP甚至是JSON数据包的纯XML格式。我正在考虑使用basicHttpRelayBinding来公开合同。请指教。

3 个答案:

答案 0 :(得分:1)

公开SOAP服务应该适用于绝大多数平台和语言。

答案 1 :(得分:1)

由于您希望服务被许多不同的客户端使用,我将避免使用基于SOAP的绑定,如basicHttpRelayBinding,而是转而使用webHttpRelayBinding

http://msdn.microsoft.com/en-us/library/microsoft.servicebus.webhttprelaybinding.aspx

这将使PHP,浏览器或移动设备等框架更容易使用您的服务。

此外,如果您的目标是移动客户端,请务必考虑使用JSON而不是XML。它可以显着减少您的消息有效负载大小 - 对于人们可能使用按字节付费数据计划的移动客户端非常重要。

JSON(浏览器)客户端也可以更好地使用JSON。

答案 2 :(得分:0)

REST为您提供了终极的可移植性,因为URL非常直观,可以在任何平台上轻松创建此类界面。 JSON基本上是此路由的可选扩展,以统一的方式处理更复杂的类型;当然,当接口设计得尽可能简单时,无论有没有JSON,REST客户端都能发挥最佳效果。

SOAP是与Java接口的优雅可能性,假设您使用HTTP绑定而不是TCP绑定。但是,您可能遇到SOAP工具包不可用或不可靠的平台,而SOAP的所有优点将开始对您不利。