【问题标题】:What is WCF (and pros and cons)?什么是 WCF(以及优缺点)?
【发布时间】:2011-01-28 04:38:13
【问题描述】:

我试图了解什么是 WCF,但无法直观地了解它如何增加价值(阅读 msdn 没有帮助)。我过去曾与 COM 合作过,并且我了解 Web 服务。有人可以阐明什么是 WCF 及其优缺点(也许它与 COM 的关系或替代 COM 等)?

如果我可以将架构布局可视化,我就可以开始理解什么组件做了什么功能。

参考网站的链接也很棒。

谢谢

【问题讨论】:

    标签: wcf


    【解决方案1】:

    我不建议将 WCF 与 COM 进行比较。

    Windows Communication Foundation 是关于通信的——特别是,从 WCF 网站来看,它“提供了一个统一的编程模型,用于快速构建跨网络和企业通信的面向服务的应用程序。”

    这确实是一种不同的进程间通信方法,将其统一起来。它使您可以使用干净的、面向服务的 API 进行进程之间的所有通信,并轻松更改服务使用的底层技术(即:从 HTTP 切换到 TCP 到 Pipes 等)。

    通过利用 WCF,您可以使进程之间以干净、一致的方式进行通信。相同的 API 可用于与 Web 服务对话、在两个桌面应用程序之间传递数据,或在桌面与系统上的服务之间进行通信。在所有情况下,您都可以轻松切换使用的协议等。

    这为单个工具包提供了很大的灵活性。


    相对于其他选项的优缺点 - 有很多优点,主要是在能够使用统一的开发模型方面。就个人而言,我使用 WCF 来满足我当前的所有 IPC 需求,因为它几乎已取代远程处理成为 .NET 中 IPC 的首选 API。

    主要缺点是在某些特定情况下的性能。使用 WCF 会增加(轻微的)开销,因此,在某些情况下,进行自己的低级套接字开发会执行得更好。除非您正在编写实时游戏或类似的东西,否则涉及低级通信协议的开发工作是不值得的。

    【讨论】:

    • WCF可以粗略地比作DCOM,我想这就是作者的意思
    • @Andrey:嗯,它确实有点取代了对 DCOM 的需求,但我个人认为心理模型已经足够不同,以至于用 DCOM 术语思考真的会伤害到能够理解 WCF...
    • 你们能否提供一个可以使用 WCF 的真实示例,如果不存在 WCF,这种情况的效率会如何降低?
    • @user279521:我在回答中添加了一些优点/缺点。这有帮助吗? WCF 确实是在 .NET 中编写进程间通信代码的首选方式 - 除非您正在做一些属于边缘情况的事情,否则没有理由不使用它...
    • 是的。查看 WCF 主页,并浏览几个示例。您可以在家用计算机上非常轻松地制作 WCF 服务和客户端应用程序。试试这个:msdn.microsoft.com/en-us/netframework/first-steps-with-wcf.aspx
    【解决方案2】:

    WCF 是用于进程间/机器间通信的非常通用的框架。而已。对于 .net 选项有:自定义网络通信、webservice、.net 远程处理。 WCF 替代了 webservice(向后兼容)和 .net 远程处理(不向后兼容),提供了丰富的通信选项和功能。它可以使用不同的传输层——tcp、web service、msmq

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 2015-07-02
      • 2014-01-24
      • 2016-04-26
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多