Web服务 - WCF与ASMX(“标准”)

时间:2008-08-09 06:50:23

标签: .net wcf web-services visual-studio asmx

我正在开发一个新项目。与常规旧时尚网络服务一起使用WCF Web服务有什么好处吗?

Visual Studio为两者提供模板。有什么区别?优点和缺点?

7 个答案:

答案 0 :(得分:32)

什么是“常规老式网络服务?” ASMX服务,还是您正在使用WSE? ASMX服务不能自然地互操作,不支持WS- *规范,ASMX是一种老化很快的技术。 WSE(Web服务增强)服务DO添加了对WS- *的支持,并且可以实现互操作,但WCF旨在取代WSE,因此您应该花时间学习它。我会说,除非你的应用程序是一个快速的肮脏的一次性,你将获得巨大的灵活性,如果你选择WCF,最终会有一个更好的设计。 WCF 确实具有超出[WebMethod]属性的学习曲线,但在我看来学习曲线过于夸张,并且它比传统的ASMX服务具有指数级的强大和未来证明。

除非您的时间表根本无法容忍学习曲线,否则您将自己学习WCF,而不是仅仅坚持使用ASP.NET Web Services。应用程序将继续变得越来越分散和互连,WCF是Microsoft平台上分布式计算的未来。

Here is a comparison两者之间。

答案 1 :(得分:9)

自己做所有事情的优点是:

  • 没有学习曲线
  • 非常灵活

WCF的优点是:

  • 从长远来看花费更少的时间
  • 无需编程即可切换协议

WCF的缺点:一些静态属性名称can be pretty lengthy ...

总结一下:WCF让你专注于编程,但你需要先学习它; - )

答案 2 :(得分:3)

Pro for WCF:您不需要Web服务器(即IIS)。实际上你不需要服务器操作系统。

答案 3 :(得分:2)

我喜欢编写WCF服务这一事实,可以轻松地将您的服务与实现分开。您可以编写服务,然后将其托管在IIS,控制台应用程序或Windows服务中;你也可以通过HTTP,net TCP等与它交谈。

答案 4 :(得分:1)

您的服务实施和互动的单元测试更容易!

答案 5 :(得分:0)

如果您的项目使用的是框架4.0,为什么不尝试使用WebApi,这很容易理解并使用约定优于配置。

它是使用超快速接口构建应用程序的好方法

查看MS的入门视频,它是从WCF数据服务发展而来的。

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api

答案 6 :(得分:-2)

根据我的经验

<强> WCF

使用它是非常冗长的,它与其他微软产品并不完全兼容,当然,它在微软世界之外并没有被广泛接受。

但我的主要问题是它不稳定,它趋于失败(在某些情况下),它需要在使用之前进行调整。

<强>代替

SOAP(又名标准Webservice),它工作正常,易于使用且广泛兼容(Java-JAX无需任何修改即可接受它)。

在SOAP中添加身份验证可能有点棘手,但并非不可能。