【发布时间】:2010-09-21 05:49:30
【问题描述】:
我们目前只使用肥皂网络服务进行所有通信,但一直在考虑改用 WCF。与 asmx 服务相比,使用它有什么好处?
如果我们确实使用 WCF 服务,其他语言还能与之通信吗? SOAP 是标准化的,所有语言都可以与之交互。
有没有很好的例子来说明如何开始使用 WCF 来证明它比肥皂更有好处?
编辑
- 我刚刚发现this 的问题很有帮助。
- Getting Started Tutorial 很棒。
【问题讨论】:
我们目前只使用肥皂网络服务进行所有通信,但一直在考虑改用 WCF。与 asmx 服务相比,使用它有什么好处?
如果我们确实使用 WCF 服务,其他语言还能与之通信吗? SOAP 是标准化的,所有语言都可以与之交互。
有没有很好的例子来说明如何开始使用 WCF 来证明它比肥皂更有好处?
编辑
【问题讨论】:
使用 WCF 有一点学习曲线,但是一旦你学会了它,实现起来并不比 asmx Web 服务难。一个优点是您可以轻松地将协议和序列化从二进制远程切换到web protocols。在 IIS 中或外部托管也很容易。
其他语言可以与 Web 协议进行通信。二进制,没那么多...
我刚刚挖掘了Getting Started Tutorial。它很好地展示了相对易用性。从那里,看看Hosting 和更详细的Features。
【讨论】:
WCF 不是 SOAP 的替代品,事实上,SOAP 可以用作端点之间的序列化格式进行通信。 SOAP 标准也没有真正定义消息正文中的内容,因此在 WCF 到 WCF 通信的情况下,使用 SOAP 信封,但内容是二进制的,所以这是您的主要优势,至少在条款方面的表现。另一个优点是 WCF 的编程模型更直接,或者至少旨在更直接。特别是因为听起来您实际上只是在使用 Web 服务进行内部通信。在这种情况下,大部分工作将是预先配置端点(尽管在 .NET 中使用 asmx WSDL 显然非常容易)。
我不是 WCF 方面的专家,但我所知道的来自 Juval Lowy(他编写了 O'Reilly WCF 书)的 .NET 用户组演示文稿,his site 提供了大量信息资源部分中的截屏视频和示例,以及 Microsoft 网站(您检查过 Channel9 吗?)。
【讨论】:
基于问题中链接的this MSDN article,WCF 不仅支持 SOAP。它支持:
基本HttpBinding
与支持 WS-BasicProfile 1.1 和 Basic Security Profile 1.0 的 Web 服务和客户端的互操作性。
WSHttpBinding
通过 HTTP 与支持 WS-* 协议的 Web 服务和客户端的互操作性。
WSDualHttpBinding
双工 HTTP 通信,初始消息的接收方不直接回复初始发送方,但可以使用符合 WS-* 协议的 HTTP 在一段时间内传输任意数量的响应。
WSFederationBinding
HTTP 通信,其中可以根据明确标识的凭据提供程序颁发的凭据控制对服务资源的访问。
NetTcpBinding
通过网络在 WCF 软件实体之间进行安全、可靠、高性能的通信。
NetNamedPipeBinding
在同一台机器上的 WCF 软件实体之间进行安全、可靠、高性能的通信。
NetMsmqBinding
WCF 软件实体之间使用 MSMQ 进行通信。
MsmqIntegrationBinding
使用 MSMQ 在 WCF 软件实体和另一个软件实体之间进行通信。
NetPeerTcpBinding
使用 Windows 对等网络在 WCF 软件实体之间进行通信。
【讨论】: