【转】WCF与Web API 区别(应用场景)
Web api
主要功能:
支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
.请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式
应用场景:
如果服务需要在http协议上,并且希望利用http协议的各种功能,
如果服务需要被各种客户端(特别是移动客户端)调用,选择Web API
WCF
主要功能:
分布式通信框架的集大成者
应用场景:
1.SOAP Services:这是因为WCF服务是基于消息的通讯机制,而它的消息是被封装为一个SOAP Envelope(SOAP 信封的)
2.WebHttp Services:是在传统的SOAP Services基础上的一个增强,它仍然是基于操作(Operation)的,只不过这些Operation可以直接通过Uri访问到,而无需客户去编写一个特殊的客户端。(ps: 实质是webservice,用的最多的)
同时,WebHttp Services提供了两种不同的消息格式,第一种是XML,第二种是Json。这将更加有利于诸如Javascript这种客户端来访问服务。
要实现WebHttp,我们首先要添加一个引用
3.WCF Data Service:支持两种数据模型,一种是LINQ to SQL, 一种是ADO.NET Entity Frmawork。
4. Workflow Services:这是一个很有意思的服务。这是在.NET Framework 4.0中开始出现的,也就是随着Workflow Foundation升级到4.0之后,提供了一种全新的服务类型,简单地来说,它是可以直接与Workflow Foundation(工作流)想结合的一种服务。
5.RIA Services:RIA的意思是,Rich Internet Application。在微软平台上,Silverlight就是RIA战略中的核心产品,所以很显然,RIA Service主要就是为Silverlight服务的。这个是.NET Framework 4.0中才有的功能,并且还需要安装RIA Service Toolkit。
总结:
现在我们拥有了2个服务框架,一个基于RPC(远程过程调用(Remote Procedure Call) )机制的WCF和一个基于HTTP的ASP.NET Web Api。
在我们的开发实践中如何进行选择呢? 可以参照知名互联网企业,无论是google,facebook,baidu,新浪还是腾讯。他们对外开放的接口都是基于Http的Web API,在服务内部框架都是基于SOA架构设计的,通讯机制都是采用RPC机制的,例如Google Protocol Buffers ,Facebook thift。 我们完全也可以这样搭配,在内部通讯采用WCF + Protobuf-NET,参看《WCF服务上应用protobuf》,对外的服务采用ASP.NET WEB API。WCF的 TCP、Named Pipes,甚至UDP(在WCF 4.5中)绑定的性能要比HTTP强很多倍,这里有一个几年前的微软的测试报告《WCF 性能基准报告》,对外提供的服务采用Web API同时也是一个业界标准问题,用WebAPI就很容易的跨越ios,android,wp等移动终端平台,同时有很成熟的OAuth 解决安全问题。
参考:
http://www.cnblogs.com/developersupport/p/3305458.html
http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html http://www.cnblogs.com/chenxizhang/archive/2011/06/21/2085979.html
【转】WCF与Web API 区别(应用场景)相关推荐
- WCF VS Web API
微软官方链接:https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-and-aspnet-web-api? 基本名词解释 SOAP: &q ...
- WEB API系列(一):WEB API的适用场景、第一个实例
在我前一篇博客<WebAPI前置知识:HTTP与RestfulAPI>中已经给各位简单介绍了HTTP协议与RestFul API的关系,以及一些基本的HTTP协议知识,在这些知识的铺垫下, ...
- WCF 和 ASP.NET Web API
地址:https://docs.microsoft.com/zh-cn/dotnet/framework/wcf/wcf-and-aspnet-web-api WCF 是 Microsoft 为生成面 ...
- 如何选择Web Service/WCF/Web API
在.net平台下,有很多的技术选择来构建一个HTTP Services. Web Service 1.它是基于SOAP协议的,数据格式是XML 2.只支持HTTP协议 3.它不是开源的,可被任意一个了 ...
- Entity Framework 6 Recipes 2nd Edition(9-1)译-用Web Api更新单独分离的实体
第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程, ...
- 浅谈web api和Webservice
浅谈web api和Webservice webapi用的是http协议,webservice用的是soap协议 webapi无状态,相对webservice更轻量级.webapi支持如get,pos ...
- WEB API 系列(二) Filter的使用以及执行顺序
在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理.引入了这一机制可以更好地践行DRY(Don't Repeat Yourself)思想 ...
- ASP.NET Web Api 教程
使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[七]--实现资源的分页 摘要: 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.h ...
- API的应用场景设计和实现
概述 WEB API的应用场景设计和实现非常丰富,例如:将已有系统的功能或数据开放给合作伙伴或生态圈:对外发布可嵌入到其他网页的微件:构建前后端分离的WEB应用:开发跨不同终端的移动应用:集成公司内部 ...
最新文章
- Dreamweaver——如何使网页中的第一个DIV水平居中
- vux 组件打造手机端项目
- android内存优化方法,Android开发内存优化注意事项和方法
- ArcMap导出属性表为Excel文件
- 最简单的 java 防反编译技巧
- html5表单实现简单计算器
- 数据结构---关键路径
- 【DIY贴片机】基于opencv识别定位电子元件
- pc电脑上浏览手机网站在线wap浏览器或模拟器软件
- 985,211,双一流,34所,C9,国防七子,五虎四小龙,五院四系,东南西北中傻傻分不清
- 推荐新唐工业级ARM9(NUC972DF62Y),集成64M DDR2,多至11个串口
- 华为OD机试 - 勾股数元组
- Android破解九宫格密码
- 停车场web项目(内含有数据库)
- 彻底解决The last packet successfully received from the server was * milliseconds ago问题
- qt.modbus: (RTU client) Discarding response with wrong CRC, received: 16448 , calculated CRC: 49303
- 站内搜索案例:提高商品成交率,创造卓越业绩
- 计算机基础知识试题答案6,计算机基础知识试题及答案
- java 匿名类_浅谈Java的匿名类
- 简单又详细的网页爬虫案例
热门文章
- hdu 1253 胜利大逃亡 (广搜)
- iis10 HTTP 错误 500.19 - Internal Server Error
- Linux下捕捉信号
- Bootstrap页面布局10 - BS表格
- div隐藏select显示的解决办法(就死select挡住了div) 不是网上找到的那五种
- explicitWidth与width,和用setActualSize()方法有什么区别?
- Spring、Struts整合
- project文件_移动和发出时通过UploadsReWriter读取的任意文件
- Java中 == 和 equals 的区别是什么?
- 传统动态代理实现计算器类日志功能