什么是WCF(以及利弊)?

时间:2010-03-16 15:54:39

标签: wcf

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

如果我能够可视化架构布局,我就可以开始了解哪个组件的功能是什么。

参考网站的链接也很棒。

由于

2 个答案:

答案 0 :(得分:7)

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

Windows Communication Foundation是关于沟通的 - 特别是,从WCF网站,它“提供了一个统一的编程模型,用于快速构建面向服务的应用程序,这些应用程序可以在Web和企业之间进行通信。”

这实际上是一种不同的进程间通信方法,统一它。它使得您可以使用干净的,面向服务的API进行进程之间的所有通信,并轻松更改服务使用的基础技术(即:从HTTP切换到TCP到管道等)。

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

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


就利弊与其他选项而言 - 有很多专业人士,主要是能够使用统一的开发模式。就个人而言,我使用WCF来满足我当前的所有IPC需求,因为它几乎取代了远程处理作为.NET中IPC的首选API。

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

答案 1 :(得分:1)

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