在.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. c++特别要点:多态性与虚函数

    本来是准备在工厂模式中顺便整理.但粗略浏览了,内容还是很多,需要单独开一篇. 一.什么是多态性? 多态性可以概括为“一个接口,多种方法”. 多态与非多态的区别在于“成员函数调用地址的早绑定和晚绑定”. ...

  2. GDI+绘图基础

    GDI+ 指的是.NET Framwork中提供的二维图像.图像处理等功能,是构成Windows操作系统的一个子系统,它提供了图形图像操作的应用程序编程接口(API). 使用GDI+可以用相同的方式在 ...

  3. JVM各区域的用途

    程序计数器 用于给字节码解释器来选取吓一跳需要执行的字节码指令.每个线程有一个独立的程序计数器去,且各个线程之间互不影响.如果线程正在执行一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令 ...

  4. linux linux系统的安装及使用

    linux  linux系统的安装及使用 一.linux系统中安装vm-tools工具: 步骤: 1.在vmware workstation软件中:虚拟机-安装vmware-tools-状态栏会提示- ...

  5. access + vb + asp 遇到一些问题的总结

    Data Base access + vb + asp  遇到一些问题的总结 1.asp中sql语句: select * from users whre name=’张三‘ and addTime=# ...

  6. 非maven项目 idea project structure

    原文链接:https://www.cnblogs.com/jajian/p/8081640.html 最近接手非maven项目,需要熟悉idea的project structure,以解决出现的环境报 ...

  7. Redis及虚拟机windows两种环境安装配置

    ---恢复内容开始--- Redis  /rae  dis/是一个开源的Key-Value数据库.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链 ...

  8. P2568 GCD

    \(\color{#0066ff}{ 题目描述 }\) 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. \(\color{#0066ff}{输入格式}\ ...

  9. [LOJ2027] [SHOI2016] 黑暗前的幻想乡

    题目链接 LOJ:https://loj.ac/problem/2027 洛谷:https://www.luogu.org/problemnew/show/P4336 Solution 这题很像[ZJ ...

  10. Educational Codeforces Round 3 B

    B. The Best Gift time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...