【问题标题】:What are the benefits of using WCF?使用 WCF 有什么好处?
【发布时间】:2010-09-21 05:49:30
【问题描述】:
  1. 我们目前只使用肥皂网络服务进行所有通信,但一直在考虑改用 WCF。与 asmx 服务相比,使用它有什么好处?

  2. 如果我们确实使用 WCF 服务,其他语言还能与之通信吗? SOAP 是标准化的,所有语言都可以与之交互。

  3. 有没有很好的例子来说明如何开始使用 WCF 来证明它比肥皂更有好处?

编辑

【问题讨论】:

    标签: c# .net wcf .net-3.5


    【解决方案1】:
    1. 使用 WCF 有一点学习曲线,但是一旦你学会了它,实现起来并不比 asmx Web 服务难。一个优点是您可以轻松地将协议和序列化从二进制远程切换到web protocols。在 IIS 中或外部托管也很容易。

    2. 其他语言可以与 Web 协议进行通信。二进制,没那么多...

    3. 我刚刚挖掘了Getting Started Tutorial。它很好地展示了相对易用性。从那里,看看Hosting 和更详细的Features

    【讨论】:

      【解决方案2】:

      WCF 不是 SOAP 的替代品,事实上,SOAP 可以用作端点之间的序列化格式进行通信。 SOAP 标准也没有真正定义消息正文中的内容,因此在 WCF 到 WCF 通信的情况下,使用 SOAP 信封,但内容是二进制的,所以这是您的主要优势,至少在条款方面的表现。另一个优点是 WCF 的编程模型更直接,或者至少旨在更直接。特别是因为听起来您实际上只是在使用 Web 服务进行内部通信。在这种情况下,大部分工作将是预先配置端点(尽管在 .NET 中使用 asmx WSDL 显然非常容易)。

      我不是 WCF 方面的专家,但我所知道的来自 Juval Lowy(他编写了 O'Reilly WCF 书)的 .NET 用户组演示文稿,his site 提供了大量信息资源部分中的截屏视频和示例,以及 Microsoft 网站(您检查过 Channel9 吗?)。


      【讨论】:

        【解决方案3】:

        基于问题中链接的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 软件实体之间进行通信。

        【讨论】: