Web Service

1、它是基于SOAP协议的,数据格式是XML

2、只支持HTTP协议

3、它不是开源的,但可以被任意一个了解XML的人使用

4、它只能部署在IIS上

WCF

1、这个也是基于SOAP的,数据格式是XML

2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

3、WCF的主要问题是,它配置起来特别的繁琐

4、它不是开源的,但可以被任意一个了解XML的人使用

5、它可以部署应用程序中或者IIS上或者Windows服务中

  • WCF是对于ASMX,.Net Remoting,Enterprise Service,WSEMSMQ等技术的整合
  • Address:每一个WCF的Service都有一个唯一的地址。这个地址给出了Service的地址和传输协议(Transport Protocol)
  • Binding:封装好的通信方式;
  • 契约(Contact) 数据契约,消息契约,操作契约...----------Service Contract, Data Contract, Fault Contract和Message Contract
  • 统一性,面向对象得方式创建面向服务的应用程序;
  • 互操作性,跨进程,跨平台,跨机器的通信;
  • 安全与信赖;
  • 兼容性,版本之间的兼容

WCF Rest

  • wcf rest service ,需要在wcf中应用webHttpBindings
  • 分别使用WebGet 和 WebInvoke属性,实现了HTTP的Get 和POST动词
  • 要想使用其他的HTTP动词,你需要在IIS中做些配置,使.svc 文件可以接受这些动词的请求
  • 使用WebGet通过参数传递数据,也需要配置,而且必须指定URiTemplate
  • 支持XML,JSON,ATOM数据

Web API

1、这是一个简单的构建HTTP服务的新框架

2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术

3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮

5、它可以部署在应用程序和IIS上

6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

Web API 和 MVC可以说是两个不同的东西。Web API更倾向于基于HTTP协议的服务,直接返回用户的数据请求。MVC是建站的一种框架,倾向于返回用户的页面请求。

1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF

2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、NamedPipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。

3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择WebAPI

4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

WebService、WCF、WebAPI、MVC的区别的更多相关文章

  1. WebService/WCF/WebAPI 之间的区别

    Web Service 1.数据的格式基于SOAP协议 2.数据的传输只支持HTTP协议 3.它只能部署在IIS上 WCF 1.数据的格式基于SOAP协议 2.数据的传输支持HTTP,HTTPS,TC ...

  2. Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor

    Webservice WCF WebApi   注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...

  3. WebService/WCF/WebAPI区别

    详细描述它们之间的区别,为什么这么选择,尤其是WCF vs WebAPI

  4. Webservice WCF WebApi

    注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Service ...

  5. .net core系列之《sdk和runtime区别及使用CLI在Ubuntu上快速搭建Console,WebApi,MVC三大应用模型》

    一.需要安装的软件 1.虚拟机安装Ubuntu系统(本人用的是vmware-14.1.12和buntu-18.04) 2.Xshell或 Putty(连接ssh服务) 3.FileZilla(ftp上 ...

  6. 关于通信的关键词UDP/(TCP/IP)/IPC/RPC/.NET Remoting/WebService/WCF/Http 系列

    OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行实践: ...

  7. 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇

    之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...

  8. WCF与Web API 区别

    WCF与Web API 区别(应用场景)   Web api  主要功能: 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, ...

  9. .NET 通用高扩展性的细粒度权限管理架构(webApi/Mvc)

    一. 权限场景分析: 1. 系统具有角色概念, 部门概念, 且都具有相应不同的权限 2. 用户具有多个角色, 多个部门等关系, 并且能给单个用户指派独有的权限 3. 具有细粒度权限控制到资源的RBAC ...

  10. 关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)

    因前段时间工作变动(换了新工作)及工作较忙暂时中断了该系列文章,今天难得有点空闲时间,就继续总结WCF身份验证的其它方法.前面总结了三种方法(详见:关于WEB Service&WCF& ...

随机推荐

  1. JVM实用参数(一)JVM类型以及编译器模式

    JVM实用参数(一)JVM类型以及编译器模式 原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-1-jvm-types ...

  2. Solr之缓存篇

    原文出自:http://my.oschina.net/u/1026644/blog/123957 Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有: (1)filter ...

  3. 原来windows里记事本的ansi编码就是GB2312啊,跟utf-8,unicode是不一样的。

    原来windows里记事本的ansi编码就是GB2312啊,跟utf-8,unicode是不一样的. 程序里的比如java的,Qt的string都是unicode的字符串,因此如果是你从文件中读取文字 ...

  4. Excel VBA 若要在64位系统上使用,则必须更新此项目中的代码,请检查并更新Declare语句,然后用PtrSafe属性标记它们

    在Office 2010 32位上开发的Excel VBA系统,迁移到Office 2010 64位下面,打开后使用,报下面错误: 解决办法:  在Declare 后面加PtrSafe 进行标记

  5. 算法Sedgewick第四版-第1章基础-017一约瑟夫问题(Josephus Problem)

    /************************************************************************* * * Josephus problem * * ...

  6. HDU 5033 Building (维护单调栈)

    题目链接 题意:n个建筑物,Q条询问,问所在的位置,看到天空的角度是多少,每条询问的位置左右必定是有建筑物的. 思路 : 维护一个单调栈,将所有的建筑物和所有的人都放到一起开始算就行,每加入一个人,就 ...

  7. Iterator主要有三个方法:hasNext()、next()、remove()详解

    一.Iterator的API 关于Iterator主要有三个方法:hasNext().next().remove() hasNext:没有指针下移操作,只是判断是否存在下一个元素 next:指针下移, ...

  8. C#实现截图

    语言环境 框架: .NET Framework 3.5IDE: VS2013窗体A(主窗体) /// <summary>/// 点击弹出截屏窗体/// </summary>// ...

  9. JDK Linux下安装

    下载jdk-6u45-linux-x64.bin到/root目录下执行./jdk-6u45-linux-x64.bin 会在/root目录下生成 jdk1.6.0_45 文件 之后配置环境变量 编辑/ ...

  10. 浅识J2EE十三个规范

    前言 没有规矩不成方圆,学习J2EE,先来明白都有什么规范. 内容 1.JDBC(Java Database Connectivity)java数据库连接 a)为java开发人员提供了一个行业标准AP ...