asmx 到 WCF 或 Web API
Posted
技术标签:
【中文标题】asmx 到 WCF 或 Web API【英文标题】:asmx to WCF or Web API 【发布时间】:2012-04-27 16:29:48 【问题描述】:我正在构建一个应用程序,目前我使用 ASMX 构建了一些 Web 服务。最后,应用程序将部署在 azure 上。 Web 服务非常简单,它们所做的只是调用 AppCode 文件夹中的一个类来处理所有工作。
将我的 Web 服务迁移到 WCF 或 Web API 会更好/更容易/更快/更高性能吗?
感谢您的建议。
PS:我想补充一点,Web 服务需要在 HTTPS 中运行。目前,他们使用 HTTP,因为我处于开发模式。
【问题讨论】:
我投票给 ServiceStack - servicestack.net 【参考方案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 有什么好处......?以上是关于asmx 到 WCF 或 Web API的主要内容,如果未能解决你的问题,请参考以下文章