Answers:
Keith Elder 在这里很好地比较了ASMX和WCF。一探究竟。
您可以在此处找到 ASMX和WCF的另一个比较-我不是100%同意那里的所有观点,但是它可能会给您一个想法。
WCF基本上是“类固醇上的ASMX”-它可以是ASMX可以做的所有-还有更多!。
ASMX是:
WCF可以是:
简而言之:WCF在这里可以完全替代ASMX。
更新:链接似乎已失效-尝试以下操作:什么是Windows Communication Foundation?
ASMX Web服务只能由HTTP(带有.asmx的传统Web服务)调用。虽然WCF服务或WCF组件可以由任何协议(例如http,tcp等)和任何传输类型调用。
其次,ASMX Web服务不灵活。但是,WCF服务是灵活的。如果您制作了该服务的新版本,则只需公开一个新的结局。因此,服务是敏捷的,并且从当前的业务趋势来看这是一种非常实用的方法。
我们将WCF开发为合同,接口,操作和数据合同。作为开发人员,我们更加专注于业务逻辑服务,而不必担心通道堆栈。WCF是适用于任何类型服务的统一编程API,因此我们创建服务并使用配置信息来建立HTTP / TCP / MSMQ等通信机制
endpoint
猜测。像<endpoint address="http://api.microsofttranslator.com/V1/soap.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_LanguageService1" contract="TranslatorService.LanguageService" name="BasicHttpBinding_LanguageService3" />
这是一个非常老的问题,但是我认为ASMX的好处并未得到充分体现。虽然不是十分灵活,但是ASMX Web服务非常易于使用和理解。尽管WCF更加灵活,但站起来和配置起来也更加复杂。
添加文件后,ASMX Web服务就可以站起来并添加为Web服务参考。(假设您的项目构建)
对于create webservice
-> run webservice
-> 的简单开发工作流程
add webservice reference
,ASMX Web服务几乎没有什么可能出错,没有太多可以配置错误的地方,这就是优点。
为了回应那些断言WCF替代ASMX的人,我将回答WCF需要添加简化的KISS配置模式以完全替代ASMX。
ASMX Web服务的示例web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings />
<system.web>
<compilation targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
WCF完全替代了ASMX Web服务。ASMX是做Web服务的旧方法,而WCF是做Web服务的当前方法。客户端或服务器上所有新的SOAP Web服务开发都应使用WCF完成。
关于WCF上的asmx Web服务的简单性,有很多讨论。让我在这里澄清几点。
不要忘了我是比WCF更喜欢asmx服务的人之一,但是那时候我对WCF服务及其功能并不了解。我很害怕WCF配置。但是我敢于尝试编写自己的WCF服务,当我了解了更多WCF知识后,现在我对WCF毫无拘束了,我推荐给任何人和所有人。编码愉快!!!