现在有很多可用的技术允许你创建被不同客户端所消费的服务,这些客户端可能是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. Android:学习AIDL,这一篇文章就够了(下)

    前言 上一篇博文介绍了关于AIDL是什么,为什么我们需要AIDL,AIDL的语法以及如何使用AIDL等方面的知识,这一篇博文将顺着上一篇的思路往下走,接着介绍关于AIDL的一些更加深入的知识.强烈建议 ...

  2. JAVA中通过代码操作PC内容进行功能的实现

    1.添加计划任务,用户项目中需要添加定时提醒功能: 计划任务只需要写一个继承java.util.TimerTask的类,覆盖其中的run方法即可,例如:   import java.util.*; p ...

  3. 注意SQLServer2012中带参数的XP_ReadErrorLog

    --15:26 2014-6-10数据库错误日志通知其中有一部分是检测ERRORLOG中若有用户登录失败信息时,会记录到Errorlog表,并邮件提醒.当时直接从同事那拿过来的脚本(08),按理说版本 ...

  4. linux 挂载命令详解

    挂载文件系统与卸载文件系统 mount / umount NO1. 挂载光驱 [root@rehat root]# mount -t iso9660 /dev/cdrom /mnt/cdrom NO2 ...

  5. [ArcEngine]Geotransformation地理变换

    Geotransformation 地理变换 The Abridged Molodensky transformation is a three parameter transformation三参 ...

  6. postgresql 死锁处理

    缘起 遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错. 原因 "drop table " 和 "trun ...

  7. iOS - (集成支付宝SDK大坑总结)

    其实集成支付宝相对于集成微信支付来说,支付宝算是简单的了,后续有空再去研究微信支付,现目前先总结一下集成支付宝所遇到的坑,其实支付宝的坑也不算太多,细算下来大概5-6个左右,但是其报错方式有点恶心,不 ...

  8. C# (事件触发)回调函数,完美处理各类疑难杂症!

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客! 废话说多了...... 嘿嘿:本篇标题为:C#  (事件触发)回调函数,完美处理各类疑难杂症.个人理解如下:事件触发也就是触 ...

  9. SignalR实时聊天功能

    使用vs2013新建一个空的asp.net 工程 添加SignalR集线器类MyHub.cs using System; using System.Collections.Generic; using ...

  10. Swift实战-QQ在线音乐(第二版)

    此版本使用百度音乐接口,原因是豆瓣接口很多歌曲没办法找到歌词. 此版本添加了歌词的显示.上一曲.下一曲的实现.歌曲列表指明当前歌曲. 下面来看一下实现过程>>> 一.项目准备: 百度 ...