34

我正在做一个新项目。与常规的老式 Web 服务相比,使用 WCF Web 服务有什么好处吗?

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

4

7 回答 7

33

什么是“常规的老式 Web 服务”?ASMX 服务,还是您也在使用 WSE?ASMX 服务不是天生可互操作的,不支持 WS-* 规范,而且 ASMX 是一项很快老化的技术。WSE(Web Service Enhancements)服务确实添加了对 WS-* 的支持,并且可以使其具有互操作性,但 WCF 旨在取代 WSE,因此您应该花时间学习它。我想说的是,除非您的应用程序是一个快速而肮脏的一次性应用程序,否则如果您选择 WCF,您将获得巨大的灵活性并最终获得更好的设计。WCF确实有超越 [WebMethod] 属性的学习曲线,但在我看来,学习曲线被过度夸大了,而且它比传统的 ASMX 服务更强大且面向未来。

除非您的时间线根本无法忍受学习曲线,否则您将在学习 WCF 而不是仅仅坚持使用 ASP.NET Web 服务对自己大有裨益。应用程序只会继续变得越来越分布式和互连,而 WCF 是微软平台上分布式计算的未来。

这是两者之间的比较。

于 2008-08-10T02:28:42.683 回答
9

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

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

WCF 的优点是:

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

WCF 的一个缺点:一些静态属性名称可能很长......

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

于 2008-08-09T08:35:18.077 回答
3

WCF 专业版:您不需要 Web 服务器(即 IIS)。您实际上不需要服务器操作系统。

于 2008-10-05T20:02:57.587 回答
2

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

于 2008-08-10T02:13:06.007 回答
1

对您的服务实现和交互进行单元测试更容易!

于 2009-03-12T21:56:24.910 回答
0

如果你的项目使用的是framework 4.0,为什么不试试WebApi,它很容易理解并且使用约定优于配置。

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

看看 MS 的入门视频,它是从 WCF 数据服务演变而来的。

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

于 2013-09-30T06:27:21.080 回答
-2

在我的经验中

WCF

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

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

反而

SOAP(又名标准 Web 服务),它可以工作,易于工作并且广泛兼容(Java-JAX 无需任何修改即可接受它)。

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

于 2012-06-20T16:43:04.680 回答