在.NET Framework中,有很多种技术可以创建基于http协议的服务,譬如说web service, wcf,wcf rest和web api等等。网上有很多的文章教我们如何开发、使用这几种技术,但是没有说明他们之间的关系,经过一段时间的查阅资料,现将我的理解整理如下。

web service:

  1. 基于SOAP,仅仅支持http协议。
  2. 数据传输格式是xml。
  3. 只能部署在iis上面。

wcf:

  1. 基于soap,支持多种传输协议,如http,https,tcp,msmq和命名管道等等。
  2. 数据传输格式是xml。
  3. 服务配置比较繁琐。
  4. 可以host在应用程序、iis或者windows service中。

wcf rest:

  1. 需要配置webHttpBindings节点。
  2. 数据传输格式可以是xml、json、atom等。
  3. 默认支持http get和post操作,可以通过在iis中对可接受的request进行额外的配置来支持更多http操作,譬如说put、delete等等。
  4. 通过webGet方式来传参,则必须指定UriTemplate模版。

web api:

  1. 是一种轻量级的构建http服务的框架,是在.NET平台下构建restful web service的理想框架。
  2. 和wcf rest service相比,web api提供http的全部特性,如URIs、request/response headers、 caching、versioning、various content format。
  3. 同时支持mvc的特性。
  4. 能host在应用程序和iis中。
  5. 适用于各种不同的客户端,譬如浏览器、手机app、pc端应用等等。
  6. response被序列化成json、xml或者其他种类的格式。

何时使用wcf或者web api:

  1. 如果有如下特殊场景:单向消息、消息队列、双工通信等等,请使用wcf。
  2. 当传输通道不局限于http的时候,譬如更想支持tcp、udp等,推荐使用wcf。
  3. 当要创建面向资源的服务或者希望支持http的全部的特性的时候,推荐使用web api。
  4. 当需要支持多种客户端时,推荐使用web api。

web service, wcf, wcf rest, web api之间的区别的更多相关文章

  1. http服务 WCF、Web API、Web service、WCF REST之间的区别

      http服务 WCF.Web API.Web service.WCF REST之间的区别 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web ...

  2. Web Service和WCF的区别。其实二者不属于一个范畴!!!

    Web Service和WCF的区别 [1]Web Service:严格来说是行业标准,也就是Web Service 规范. 它有一套完成的规范体系标准,而且在持续不断的更新完善中. 它使用XML扩展 ...

  3. Web Service和WCF的到底有什么区别

    [1]Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术. 它有一套完成的规范体系标准,而且在持续不断的更新完善中. 它使用XM ...

  4. Web Service 和WCF的比较

    Web Service 的工作原理 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  5. (转)Web Service和WCF的到底有什么区别

    [1]Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术. 它有一套完成的规范体系标准,而且在持续不断的更新完善中. 它使用XM ...

  6. 【转载】Web Service和WCF的到底有什么区别

    [1]Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术. 它有一套完成的规范体系标准,而且在持续不断的更新完善中. 它使用XM ...

  7. Web Service 和 WCF的比较

    Web Service 和WCF的比较 Web Service 的工作原理 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intra ...

  8. Web Service和WCF的区别

    [1]Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术. 它有一套完成的规范体系标准,而且在持续不断的更新完善中. 它使用XM ...

  9. Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

    1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反 ...

随机推荐

  1. Spring MVC 简介

  2. build linaro 4.8 on ubuntu 12.04 64bit

    安装必要的软件 sudo apt-get build-dep gcc binutils gdb sudo apt-get install curl gawk sudo apt-get install ...

  3. JavaScript 判断 Undefined 类型

    var cookiestr = ''; chrome.cookies.getAll( { 'url': 'https://mp.weixin.qq.com', 'secure': true }, fu ...

  4. redis-淘汰策略

    将redis用作缓存时,如果内存空间用满,就会自动驱逐老的数据.默认情况下,memcached就是这种方式. LRU是Redis唯一支持的回收算法. maxmemory配置指令 maxmemory用于 ...

  5. thinkphp 连接数据库 & 实例化模型操作 (下接thinkphp CURD 操作)/慕课

    7.1 连接数据库 (06:15) 1 7.2实例化模型 1 1.实例化基础模型 2 2. 实例化用户自定义模型 2 问题 2 3. 实例化公共模型 4 4. 实例化空模型 7    7.1 连接数据 ...

  6. linux惊群

    基本概念:子进程继承父进程环境和上下文的大部分内容的拷贝,其中就包括文件描述符表. 父进程fork出来的子进程,复制父进程的文件描述符.这些文件描述符fd是独立的,但是文件描述符指向的系统文件表项是唯 ...

  7. The requested profile "account" could not be activated because it does not exist 无法maven install的 解决办法,勾选红框选择的选项即可

  8. Luogu P1608 路径统计 最短路计数

    颓了...重边导致我乖乖用邻接矩阵.... 好吧就是个最短路计数....如果更新时d[v]==d[u]+w[i],就可以接起来,把两个加在一起.. 如果d[v]>d[u]+w[i],那么c[v] ...

  9. Codeforces Round #334(div.2) A

    A. Uncowed Forces time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  10. css雪碧图制作

    使用css背景合并工具cssSprite 工具下载链接: http://download.csdn.net/download/wx247919365/8741243 1.选择文件 2.生成雪碧图 3. ...