WebService、WCF、WebAPI、MVC的区别
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,WSE,MSMQ等技术的整合
- 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
转载于:https://www.cnblogs.com/cb521413/p/8656219.html
WebService、WCF、WebAPI、MVC的区别相关推荐
- JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别
1.三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器服务器.在JavaEE开发中,几乎全都是基于B/S架构的开发.那么在B/S架构 ...
- WCF学习笔记(一):WCF Service Application和WCF Service Library的区别
近来在学习WCF,遇到了不少问题,有的让我焦头烂额,不过解决问题的过程就是学习的过程,收获也不少. 昨天有个问题开始困扰我--WCF Service Application和WCF Service L ...
- [转]VSTO+WinForm+WebService+WCF+WPF示例
看到一个不错的示例程序分享给大家,Vincent.Q的<VSTO+WinForm+WebService+WCF+WPF示例>很不错! 原文如下: 前段时间去图书馆借书,无意中发现这样 ...
- MVT和MVC的区别
1.mvt和mvc的区别 M:model V:views C:controller T:templa 在MVC中 model是 主要是封装对数据库层的访问,对数据库中的数据进行增删改查操作 view ...
- WebService/WCF
(一)如何发布WebService呢?使网络中其它机器能使用我的WebService 我写了一个简单的WebService,在本机上测试没有问题. 但网络中其它机器访问我的WebService时, ...
- 微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core视频 代码 面试题...
<微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core 视频 代码 面试题 >下载网盘:https://y ...
- Spring 和 Spring MVC的区别
Spring 和 Spring MVC的区别 学习Spring MVC也有几天时间了,那么Spring和Spring MVC的区别到底在哪里,二者是什么关系呢?认为二者是一个东西那肯定是不对的,而 ...
- android和web api接口,WebService和Webapi的区别
下面的句子 是直接百度翻译出来的,对于英文好的朋友可点击下面网址 WebService特点 它是基于SOAP格式的肥皂和返回数据. 它只支持HTTP协议. 它不是开源的,但是可以被任何理解的客户所消耗 ...
- WebApi和MVC的区别
使用上区分,mvc主要用于建站,web api主要用于构建http服务,当然你非要用mvc来构建Uri式的Api也行,不过显然是没有这个必要的,一个不恰当的比喻就像是你也可以玩破解版的单机游戏,也可以 ...
最新文章
- 【学习笔记】17、函数(Function)的定义和调用
- Oracle单行函数
- HTML之CSS画三角形原理,纯CSS写三角形样式集合(原理解析)
- TypeError系列之:TypeError: 'tuple' object does not support item assignment
- linux 打开网页 用curl_linux终端模拟浏览器访问(curl)
- 使用Exchange 的SMTP连接器路由/中继邮件的设定图例
- IOS上传文件给java服务器,返回报错unacceptable context-type:text/plain
- db2数据库日期减一天_DB2 数据库中的日期与时间如何正确操作?(2)
- 零基础学python知乎-零基础人员可以学习python吗?|Python培训基础教程
- php怎么发ddos包,解决服务器上通过PHP代码DDOS的方法
- 香农编码的MATLAB实现
- 用Attiny85控制水泵浇花
- adb inputswipe shell_[Android]通过adb shell input上报命令模拟屏幕点击事件【转】
- Work20230407
- 关于FBG、TFBG、LPG、45°TFBG、EX-45°TFBG
- unity 跨平台动态生成二维码 免费下载
- unity制作滚动的天空简易版(在b站学的,此处总结,供学习)
- 船务术语简缩语(zt)
- 基础题库:12 甲流疫情死亡率
- MariaDB二进制安装步骤以及数据库的基本操作