现在有很多可用的技术允许你创建被不同客户端所消费的服务,这些客户端可能是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. PHP受保护的类和私有类什么区别

    受保护的继承后可以访问,私有的只能在该类中访问,不会被继承访问class Man{ protected $name='lee';//受保护 private $age=123;//私有 function ...

  2. 商业智能BI和ERP的融合之路

    企业在发展过程中为了更好的跟上同行业的步伐,甚至是为了在众多企业中脱颖而出,他们会主动寻求全面的企业解决方案.但是由于行业的快速发展,需求的不断增长,市面上的智能软件层出不穷,这也给了企业选择的困难. ...

  3. 清除UIWebView的缓存

    //清除cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCook ...

  4. hibernate反向生成映射文件报错

    报错原因:可能是你的数据库里的某个表没设置主键.

  5. vmware lan map

    1,nat: virtrual machine---vmnet8---PC---internet 2,host-only virtual machine(0,1,2...)---vmnet1 3,br ...

  6. PostgreSQL Replication之第十一章 使用Skytools(3)

    11.3 管理 pgq-queues Skytools 的一个核心组件是pgq.它提供了一个通用排队接口,它可以让您把消息从一个消息提供者传送到一个任意数目的接收者. 现在的问题是:一般来说,一个队列 ...

  7. FB面经prepare: task schedule II

    followup是tasks是无序的. 一开始是有序的,比如说1, 1, 2, 1,一定要先执行第一个task1,然后等task1恢复,再执行第2个task1,再执行task2..... follow ...

  8. eclipse JAVA 类元素 快速添加set和get方法

    鼠标在代码窗口,鼠标右键 然后选择如下图 然后在下面图中,选择需要个类的元素添加的set和get 选择好了点击OK,这样eclipse就自动生成get和set方法

  9. 根据搜素的字符串改变label包含该字符串的文字

    http://www.2cto.com/kf/201504/391811.html NSString *text =@"人生若只如初见"; //判断字符串所在的位置,并不区分大小写 ...

  10. Ruby On Rails 在线学习好网站

    最好学习Ruby网站: https://ruby-china.org/    我的用户名:19920625lsg,  密码为最常用的 Ruby on Rails 教程 http://railstuto ...