WCF、WebAPI、WCFREST、WebService的区别
目录导航:
1. WCF
2. WebAPI
3. WebService
4. WCFREST
5. 如何选择WCF、WebAPI、WCFREST、WebService
1、WCF
- 这个是基于SOAP的,数据格式是XML
- 这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
- WCF的主要问题是,它配置起来特别的繁琐
- 它不是开源的,但可以被任意一个了解XML的人使用
- 它可以部署应用程序中或者IIS上或者Windows服务中
2. WebAPI
- 这是一个简单的构建HTTP服务的新框架
- 在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
- 不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
- 它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
- 它可以部署在应用程序和IIS上
- 这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
- Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
3. WebService
- 它是基于SOAP协议的,数据格式是XML
- 只支持HTTP协议
- 它不是开源的,但可以被任意一个了解XML的人使用
- 它只能部署在IIS上
4. WCFREST
- 想使用WCF Rest service,你必须在WCF中使用webHttpBindings
- 它分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词
- 要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求
- 使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate
- 它支持XML、JSON以及ATOM这些数据格式
5. 如何选择WCF、WebAPI、WCFREST、WebService
- 当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
- 当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
- 当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
- 当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API
WCF、WebAPI、WCFREST、WebService的区别的更多相关文章
- WebAPI和WebService的区别
WebAPI和WebService的区别 WebAPI用的是http协议,WebService用的是soap协议 WebAPI无状态,相对WebService更轻量级.WebAPI支持如get,pos ...
- WebAPI 和 WebService的区别
webapi用的是http协议,webservice用的是soap协议 webapi无状态,相对webservice更轻量级.webapi支持如get,post等http操作 http soap关系 ...
- 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平台下, ...
- 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇
之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...
- 关于WEB Service&WCF&WebApi实现身份验证之WCF篇(2)
因前段时间工作变动(换了新工作)及工作较忙暂时中断了该系列文章,今天难得有点空闲时间,就继续总结WCF身份验证的其它方法.前面总结了三种方法(详见:关于WEB Service&WCF& ...
- wcf和web service的区别
1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键).微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单 ...
- mvc接口、webapi、webservice 对比
最近做了很多项目,也同时使用了mvc的接口,webapi的接口,以及webservice 的接口.先两两对比如下: mvc和webapi区别: 1.MVC是建站的一种框架,倾向于返回用户的页面请求:a ...
- WCF常见问题(1) -- WebService/WCF Session Cookie
原文:WCF常见问题(1) -- WebService/WCF Session Cookie 在.net 3.0推出WCF之前使用的WebService,有的应用有使用Session保持一些信息,在不 ...
- RPC和WebService的区别
最近分析的这个系统,逻辑架构中有一层是RPC interface.之前对RPC不熟悉,就上网搜索了一下资料,在此总结一下: RPC是Remote Procedure Calling,远程过程调用的缩写 ...
随机推荐
- Koa - 使用koa-multer上传文件(上传限制、错误处理)
前言 上传文件在开发中是很常见的操作,今天我选择使用koa-multer中间件来实现这一功能,除了上传文件外,我还会对文件上传进行限制,以及发生上传错误时的处理. 由于原来的 koa-multer 已 ...
- DRF Django REST framework 之 频率,响应器与分页器组件(六)
频率组件 频率组件类似于权限组件,它判断是否给予请求通过.频率指示临时状态,并用于控制客户端可以向API发出的请求的速率. 与权限一样,可以使用多个调节器.API可能会对未经身份验证的请求进行限制,而 ...
- MooseFS 分布式存储
一.MooseFS介绍 MooseFS主要由管理服务器(master).元日志服务器(Metalogger).数据存储服务器(chunkserver)构成. 管理服务器:主要作用是管理数据存储服务器, ...
- Microsoft store应用商店打不开0x80131500
开始安装Windows的Linux子系统发现没办法打开应用商店,开始了三个小时的挖贴之路,最终于百度贴吧最底层发现解决办法,同样错误貌似只有两个人.... 首先介绍一下网上普遍的方法↓↓↓ 第一种—— ...
- java获取每月的第一天和最后一天
// 获取当前年份.月份.日期 Calendar cale = null; cale = Calendar.getInstance(); // 获取当月第一天和最后一天 SimpleDateForma ...
- Java基础语法08-面向对象-枚举-包装类-接口
枚举 枚举是一种特殊的类它的对象是有限固定的几个常量对象. JDK1.5之前 构造器加private私有化 本类内部创建一组常量对象,并添加public static修饰符,对外暴露这些常量对象 JD ...
- aspnet boilerplate 随笔二
项目框架介绍: 1:Application: 在service里面事件具体业务,Dto相当于viewmodel实现了验证 2:Core:实现了数据层Model 3:EntityFrameworkC ...
- Python学习之编码
Python2默认解释器的编码:ascii: Python3默认解释器的编码:UTF-8 ascii码:只会识别英文字母.数字和标点.8位表示一个英文字符,1个字节 万国码Uicode:目前的所有语言 ...
- 弹性盒子中的order
order order 属性 设置或检索弹性盒模型对象的子元素出现的順序.. 注意:如果元素不是弹性盒对象的元素,则 order 属性不起作用. <!DOCTYPE html> <h ...
- Android 共享参数 SharedPreferences
完成共享参数的读写 public class SharedPreference { private Context context; public SharedPreference(Context c ...