在我的工作场所,我们即将开始一个大项目。我的老板(程序员,这是一家初创公司)希望为此目的使用ASMX webservices。我不想使用弃用的技术开始一个新程序,并希望向他展示这一点。我此刻不喜欢WCF因为它有如此极端的学习曲线,但我宁愿学习它而不是使用不支持的技术。
我遇到的问题是,与WCF相比,我找不到任何实际的缺点和失败列表,以便我可以说服我的老板不要使用它们。并说“它没有那么强大”并不是一个充分的解释。它究竟能做什么,我们可能需要它来做一个不打算在外部共享的Web服务? (因为我们不支持使用我们的网络服务的第三方,除非他们使用我们的客户。)
答案 0 :(得分:3)
简而言之:
ASMX
WCF
简而言之:WCF是ASMX正确完成的 - 在各方面都更加灵活,功能更强大。
这是WCF和ASMX的另一个非常有用的比较:Comparing ASMX and WCF
最后但同样重要的是,WCF在性能方面也更好,因为这篇相当广泛的MSDN文章非常精彩地展示了(包括性能数字和图表):A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies
答案 1 :(得分:1)
我从未理解为什么有些人认为WCF很难学习。试试这个:在Visual Studio中创建一个新的WCF服务项目。现在看看代码。将其与创建新ASMX项目时获得的相同代码进行比较。它并没有太大的不同。
答案 2 :(得分:0)
我有三个字:WCF。 WCF。 WCF。
以下是另外三个关于你应该选择WCF:Power的原因。多功能性。可配置性。
ASMX非常棒,如果您希望快速而肮脏的Web服务启动并运行,不过说实话,只需要几分钟就可以完成WCF。
答案 3 :(得分:0)
使用asmx很难实现WS- *:事务,可靠消息传递,安全性等等。
以后的绑定:你可以通过配置改变通信,asmx只是http。
WF公开服务和AppFabric适用于wcf。
我不会怀疑,今天wcf是启动需要服务的项目的最佳选择。