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

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

有帮助吗?

解决方案

什么是“普通老式的网络服务”? ASMX服务,还是您也使用WSE?ASMX 服务本质上不具备互操作性,不支持 WS-* 规范,而且 ASMX 是一项老化速度非常快的技术。WSE(Web 服务增强)服务确实添加了对 WS-* 的支持,并且可以实现互操作,但 WCF 旨在取代 WSE,因此您应该花时间学习它。我想说,除非您的应用程序是一次性的,否则如果您选择 WCF,您将获得巨大的灵活性并最终得到更好的设计。世界碳纤维 具有超出 [WebMethod] 属性的学习曲线,但在我看来,学习曲线过于夸张,并且它比传统 ASMX 服务更加强大且面向未来。

除非您的时间安排根本无法忍受学习曲线,否则学习 WCF 而不是仅仅坚持使用 ASP.NET Web 服务对您自己来说是一个巨大的帮助。应用程序只会继续变得越来越分布式和互连,而 WCF 是 Microsoft 平台上分布式计算的未来。

这是一个比较 两者之间。

其他提示

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

  • 无学习曲线
  • 非常灵活

WCF的优点是:

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

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

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

WCF 专业版:您不需要网络服务器(即国际信息系统)。您实际上不需要服务器操作系统。

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

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

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

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

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

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

在我的经验中

世界碳纤维

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

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

反而

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top