【问题标题】:asmx to WCF or Web APIasmx 到 WCF 或 Web API
【发布时间】:2012-04-27 16:29:48
【问题描述】:

我正在构建一个应用程序,目前我使用 ASMX 构建了一些 Web 服务。最后,应用程序将部署在 azure 上。 Web 服务非常简单,它们所做的只是调用 AppCode 文件夹中的一个类来处理所有工作。

将我的 Web 服务迁移到 WCF 或 Web API 会更好/更容易/更快/更高性能吗?

感谢您的建议。

PS:我想补充一点,Web 服务需要在 HTTPS 中运行。目前,他们使用 HTTP,因为我处于开发模式。

【问题讨论】:

标签: asp.net wcf azure asp.net-web-api wcf-web-api


【解决方案1】:

单线:如果您已经有一个工作代码,并且将其转移到另一种技术有风险,则保留工作代码。

取决于谁在回答。

Web API 包含 HTTP,并为您提供 ASMX 和 WCF 无法实现的灵活性。如果您关心 HTTP、内容协商、媒体类型,并且需要从任何客户端(包括 AJAX)调用您的服务,那么 Web API。

如果您需要能够使用 WS* 安全标准(例如,使用 X509 证书、ADFS 等),可能会更改您的绑定,使用不同的绑定服务于不同的客户端、可扩展性等,请使用 WCF。

如果您已经有一个工作代码,并且您只关心 RPC,并且您的客户总是会使用 ASMX,那么请坚持使用 ASMX。

性能

没有基准,但我的直觉,按降序排列:Web API、ASMX、WCF

更简单

按降序排列:ASMX(因为你知道它)、Web API、WCF

更快的发展

如果你都知道,Web API 和 ASMX,然后是 WCF


PS:学习新技术是件好事。事情的发展方式(因为您已经迁移到 Azure)投资新技术很重要。

【讨论】:

  • 嗨! WS 正在 ASMX 中工作,因为它们正在开发中。我想搬出 ASMX。感谢您提到的安全注意事项;我需要让它们在 HTTPS 中工作。
  • @frenchie 在这种情况下,我会选择 Web API。
  • ASMX 服务通过 HTTPS 在 Azure 上运行良好。您只需要添加端点并将其分配给您的证书。我没有投票赞成在生产中使用 ASMX,只是为了让您知道它可以工作。
  • @Aliostad 我已经在读你的书了。但是有朋友问我:好吧,我也可以用 asmx 返回 json,那么除了自托管和内容协商之外, webapi 有什么好处......?
猜你喜欢
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 2010-09-05
  • 2011-01-08
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多