现在有很多可用的技术允许你创建被不同客户端所消费的服务,这些客户端可能是Web应用程序、Windows应用程序和移动应用等。服务可以支持http协议或者其他协议。接下来的讨论仅限于ASP.NET Web API和WCF。

WCF(Windows Communication Foundation),使用WCF你可以构建安全可靠的服务,并且实现跨平台继承和平滑地交互。

Web API,一个用于构建HTTP服务的框架。现在我们每天都在使用手机、平板、apps以及各种不同类型的服务,Web API是一个简单可靠的平台,你能够用它来构建服务于大范围客户端的HTTP服务。使用Web API你可以创建完整的REST服务。

SOAP

SOAP(Simple Object Access Protocol)是微软所提出的用于创建在因特网上传输的结构化格式数据或消息的协议。SOAP是使用WCF和XML格式的主要基础。Web Service构建用于提供有关服务数据信息的WSDL(Web Services Description Language)文件。WSDL文件用于客户端理解服务中可用的方法。

REST

REST(Representational State Transfer)并非是像SOAP那样的协议。它是用来构建Web Services的一种架构设计模式。Web API使用这种模式来构建Web服务。从根本上讲,Web API是一种给客户端暴露服务终结点的资源驱动型架构。Web API支持完整的REST风格,它使用GET, PUT, POST, DELETE与客户端进行通讯。

交互性

RESTful服务(例如Web API)的特点是简单、轻量级、支持HTTP请求,而且易于客户端获取。它不像SOAP那样,需要客户端理解WSDL来实现服务。WSDL使用额外的配置和要求附加逻辑,这样可能对于很多设备例如手机、智能电视、平板电脑等就不是那么的便利。正是因为WCF支持多种协议,所以它能够被众多使用不同协议(HTTP、TCP、MSMQ等)的客户端消费。

配置管理

相对于Web API,客户端需要使用更多的配置来获取WCF的服务。WCF使用了更多的配置项(例如终结点、行为等)来暴露服务。但是Web API有更多规范来为客户端定制服务。

速度

由于RESTful服务使用HTTP协议和HTTP的请求/响应较SOAP轻巧,因此如果你打算为低流量设备或手机端构建服务,Web API会是最佳之选。相较于SOAP,HTTP的请求/响应可读性更高,因为SOAP包含了header、body等更为复杂的元素。

安全

WCF提供了企业级别的高级别的安全等级,它使用了WS-I标准来提供安全服务。Web API使用了Web标准的安全措施,例如基本验证、token验证和更复杂的OAuth,Web API显得更加灵活。如果你需要验证外部服务例如谷歌、facebook等,那么使用SOAP。

综上所述,我们似乎难以决定哪个更好。但是,我们能得出两点结论。一,如果你需要构建一个用于不同平台的服务,那么请使用WCF;二,如果你需要构建基于因特网的服务,那么请使用Web API。

WCF与Web API 区别(应用场景)

WCF、WebAPI、WCFREST、WebService之间的区别

Web API 和 WCF 的比较的更多相关文章

  1. Difference between WCF and Web API and WCF REST and Web Service

    The .Net framework has a number of technologies that allow you to create HTTP services such as Web S ...

  2. WCF 、Web API 、 WCF REST 和 Web Service 的区别

    WCF .Web API . WCF REST 和 Web Service 的区别 The .Net framework has a number of technologies that allow ...

  3. [Solution] 使用Autofac在MVC、Web API、WCF中实现IOC

    本来想聊一下面试过程的,1个星期面了6家,4家当场给offer,2家技术通过(1家没下文,1家复试).从中也学习到一些东西,先还是继续Coding吧. 官网:http://autofac.org/ 下 ...

  4. 选择Web API还是WCF

    ASP.NET WCF是.NET平台服务开发的一站式框架,那么为什么还要有ASP.NET Web API呢?简单来说,ASP.NET Web API的设计和构建只考虑了一件事情,那就是HTTP,而WC ...

  5. 转 Difference between WCF and Web API and WCF REST and Web Service

    http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-R ...

  6. ASP.NET Web API——选择Web API还是WCF

    WCF是.NET平台服务开发的一站式框架,那么为什么还要有ASP.NET Web API呢?简单来说,ASP.NET Web API的设计和构建只考虑了一件事情,那就是HTTP,而WCF的设计主要是考 ...

  7. WCF、Web API、WCF REST、Web Service

    WCF.Web API.WCF REST.Web Service 区别 Web Service It is based on SOAP and return data in XML form. It ...

  8. WCF、Web API、WCF REST、Web Service 区别

    Web Service It is based on SOAP and return data in XML form. It support only HTTP protocol. It is no ...

  9. WCF、Web API、WCF REST、Web Service的区别

    Difference between WCF and Web API and WCF REST and Web Service   The .Net framework has a number of ...

随机推荐

  1. 在Visual Studio 2015中运行OPENGL

    Starting an OpenGL project in VS 2015 is really easy, thanks to the NupenGL.Core nuget package. Here ...

  2. windows下制作PHP扩展

    一.编译PHP 转自:http://demon.tw/software/compile-php-on-windows.html 编译PHP扩展必需的一些头文件需要从php源码中获取,其中有一些配置性的 ...

  3. javascript:void(0)和javascript:;的用法

    一.JavaScript:void(0) 我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢 ...

  4. 利用Xstream注解生成和解析xml

    实体类: @XStreamAlias("person") public class PersonBean {     @XStreamAlias("firstName&q ...

  5. Newtonsoft.Json的使用

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.和 XML 一样,JSON 也是基于纯文本的数据格式 ...

  6. Java基础之读文件——使用输入流读取二进制文件(StreamInputFromFile)

    控制台程序,读取Java基础之读文件部分(StreamOutputToFile)写入的50个fibonacci数字. import java.nio.file.*; import java.nio.* ...

  7. 20145207《Java程序设计》第6周学习总结

    教材学习内容总结 一.输入/输出 InputStream与Outputstream • 串流设计的概念 从应用程序角度看,将数据从来源取出,可以使用输入串流,将数据写入目的地,可以使用输出串流:在Ja ...

  8. [原创]java WEB学习笔记57:Struts2学习之路---ActionSupport类的说明

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. [转]-Dmaven.multiModuleProjectDirectory system propery is not set. 解决方案 适用于myeclipes 和 eclipes

    eclipse中使用maven插件的时候,运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is ...

  10. yii框架中应用jquery表单验证插件

    效果图: 视图层: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...