答案 0 :(得分:8)
WCF更灵活:
还可以:可以通过NetTCP,MSMQ,wsHttp等使用
WCF服务可以在IIS中托管(如旧版ASMX)
但WCF服务也可以在控制台应用程序,Windows NT服务等中自托管。
WCF提供比ASMX(消息安全等)更多的安全功能和安全级别。
在WCF中,配置文件中几乎任何东西都是可配置的 - 远远超过ASMX。
我手边没有任何现成的文件可以说明这一点 - 但这就是它的本质,我会说。
马克
PS:不确定这个是否包含对您有用的任何内容:
http://whitepapers.techrepublic.com/abstract.aspx?kw=remoting&docid=270830
PPS:你会认为微软会有大量的白皮书来说服人们 - 但是没有...... :-)
答案 1 :(得分:4)
乔治,
我没有任何这样的文件方便,因为WCF更好的原因很明显。
首先,因为Microsoft: ASMX Web Services are a “Legacy Technology”。他们还公开表示他们不会对WSDL.EXE和ASMX技术的其他部分进行更改。我们在这个行业中遇到了传统技术和应用程序的麻烦 - 今天创建一个新的遗留代码毫无意义。
其次,WCF抽象出ASMX,Remoting和WSE的概念。 “他们可以做任何事情,WCF可以做得更好”。
答案 2 :(得分:3)
简单地说,你的问题相当于“为什么.NET比VB6更好”。如果有足够的时间,任何传统技术都将成为维护/财务负担。
正如你特别询问安全性和性能,我会说“这取决于”。可以使任一选项安全,性能很大程度上取决于您编写的代码。 WCF性能的一个优点是你不必在IIS中托管它 - 所以你有更多的选择和灵活性来使它具有高性能。
答案 3 :(得分:1)
WCF是一个高度可配置的堆栈,具有几乎无限的序列化,安全性,传输等组合。 针对您的具体问题,WCF实现了WS- *协议,包括传输和消息安全性。 WCF datacontract序列化器比acmx中使用的xmlserialzer快得多。 Net.Tcp传输也比基于http的传输更高效。
我在这里找到了一个性能比较 http://msdn.microsoft.com/en-us/library/bb310550.aspx
答案 4 :(得分:1)
Microsoft MSDN上非常好的概述: “将ASP.NET Web服务与基于开发的WCF进行比较” http://msdn.microsoft.com/en-us/library/aa738737.aspx