我想从使用它或者理论上知道它的人那里了解Windows Communication Foundation的两个优点和缺点。
答案 0 :(得分:6)
主要优势:一旦克服了学习过程,WCF就可以相对轻松地公开和使用软件组件。即,如果某个组件将功能融入到WCF服务合同中,开发人员可以通过更改主机和配置信息,在单个机器上的进程,Windows内部网或整个Internet上公开相同的组件进程。同样,所述组件的客户也可以轻松地在任何这些场景中使用它。
主要劣势:学习曲线。许多开发人员在第一次开始研究它时,WCF似乎非常令人生畏。我试图进入Juval Lowy的“编程WCF服务”,我做了几次错误的开始。虽然我发现一旦我开始实际创建和消费组件,理解很快就会出现。
要记住的关键是是WCF允许你编写一些不错的功能代码并将其包装到一个组件中,然后你几乎可以在任何地方使用它,几乎可以提供任何安全性,可靠性和耐久性。
与我们之前被迫使用的相比,WCF是幻想!
答案 1 :(得分:4)
对我来说,通过SOAP,WS *,TCP,MSMQ,命名管道或以后的任何其他传输进行通信的代码是相同的。
答案 2 :(得分:4)
一个主要优点是WCF允许为开发人员提供对Windows通信技术的单一一致访问,从而使SOA应用程序的开发更容易。微软已经抽象了大量的管道工作,以便实现这一目标。
缺点是,WCF是Microsoft的SOA实现,因此其API仅由MS控制,这使得互操作性变得有点困难。 此外,要部署WCF应用程序,您将需要在运行WCF应用程序的平台上使用更多底层硬件资源,因为还有一个额外的抽象层可以处理。
答案 3 :(得分:2)
<强>优点强>
<强>缺点强> - 了解所有不同的传输类型/安全规范的学习曲线。
如果您想要更快的速度,则必须转到TCP级别
编辑也很难掌握连接客户端的并发性
答案 4 :(得分:1)
除了必须使用WinStack之外,我认为不应该有固有的权衡。 WCF应该取代.NET远程处理和沼泽标准Web服务(或者更确切地说WCF也可以做Web服务)
答案 5 :(得分:1)
优势是SOA应用程序的标准体系结构。您可以自定义架构的组件以启用与任何类型的非Windows客户端的连接,但是存在陡峭的学习曲线。
答案 6 :(得分:0)
我发现设置和学习非常容易。我有一个网络服务在几个小时内运行,没有任何使用WCF的经验。我现在可以在几分钟内完成。
这样做的缺点是我对网络服务几乎一无所知。这可以转过来,以后再咬你。基于对事物如何工作的错误假设,很容易做出错误的设计决策。例如,在服务类中维护状态非常容易,但这会导致以后出现扩展问题。