ASMX与WCF

G33*_*una 2 wcf biztalk web-services asmx

我需要一些与这个主题有关的方向; 也许我错过了显而易见的事.

我没有看到WCF绑定到HTTP和强类型Web服务之间的对比.为什么这会有所不同?我同意在ASMX与WCF以及过多的微软术语中存在一些特别与XmlSerializer相关的开发细微差别.没有这些; 我只看到相似之处

DataContract = WSDL类型ServiceContract = WSDL(也称为服务定义)OperationContract = WebMethod

在操作上,我理解WCF的绑定可能很多,而不是被锁定到HTTP,这可能涉及重构造和拆除.但对于松散耦合,它们都将是Web服务.

还有其他操作上的差异吗?

有人能告诉我光明,让我摆脱痛苦吗?:))

mar*_*c_s 13

好吧,如果你将讨论减少到只有HTTP,那么WCF仍然有一些优于ASMX的优势:

  • 更多更好的安全设置(使用传输或消息安全的能力)
  • 更灵活 - 可以在配置文件或代码中在WCF中配置和调整更多功能
  • ASMX Web服务只能存在于IIS中 - IIS是必需的; 您可以在控制台应用程序或Windows NT服务中自行托管您的WCF服务
  • 明确关注在WCF中使用服务和数据契约可以实现更清晰的界面和更好的关注点分离(更好的代码,最后)
  • 支持可靠的消息传递和事务支持(甚至通过HTTP)

简而言之:即使将WCF限制为HTTP时差异可能会更小,我仍然认为它更优越,如果您可以选择今天开始新的事情,请务必使用WCF而不是ASMX!

Rick Strahl在他的博客文章中非常好地说:

我认为即使你坚持使用纯HTTP和SOAP,使用WCF也可能是一个好主意,因为通过使用WCF创建服务,您可以稍后决定使用WAS发布同样的服务,并提供更高的性能TCP/IP传输.或者可能会要求您提供WS协议的一些高级功能,如事务,附件,会话管理,加密等.通过使用WCF,您可以构建服务以便将来使用,以便您可以轻松地升级到其他协议 - 今天甚至可能都不存在.当然,未来会出现新技术,WCF会通过其抽象层和通用API对您进行一些保护.*