WCF和Web API和WCF REST以及Web Service区别(Web API初级)

原文:https://www.dotnettricks.com/learn/webapi/difference-between-wcf-and-web-api-and-wcf-rest-and-web-service

.Net framework有很多技术手段允许你创建HTTP服务,例如Web Service,WCF和现在的Web API。在互联网上有许多博客介绍如何使用他们。在今天,你在.Net framework框架下有很多选择去创建HTTP服务。

在这篇文章,我想就Web Service、WCF和现在的Web API与大家分享我的观点。更多关于Web API的信息可参考 什么是WebAPI以及为什么要使用它(https://www.cnblogs.com/wuhanjackh/p/16174277.html)

Web Service
01.它是一个基于SOAP协议且返回XML表单格式
02.仅支持HTTP协议
03.非开源,但任何理解XML格式的人都可以在客户端使用它
04.仅托管在IIS

WCF
01.它也是基于SOAP协议且返回XML表单格式
02.是Web Service(ASMX)的进化,而且还支持如TCP, HTTP, HTTPS, Named Pipes, MSMQ各种各样的协议
03.WCF的主要问题是其冗长而复杂的配置
04.非开源,但任何理解XML格式的人都可以在客户端使用它
05.它能托管在程序,IIS以及使用到Windows服务中

WCF Rest
01.要将WCF用作WCF Rest服务,必须启用webHttpBindings
02.通过 [WebGet] 和 [WebInvoke] 属性分别支持HTTP GET 和 POST
03.可以在IIS中进行一些配置去启用其它HTTP的操作,从而接收.csv文件的特定请求
04.使用WebGet 进行参数传递需要配置。必须指定配置
05.支持XML,JSON和ATOM数据格式

Web API
01.这是一个创建HTTP服务方便且简单的新框架
02.Web API开源,在过去是整个.NET Framework创建REST-ful服务最理想的平台
03.不像WCF Rest服务,使用了HTTP所有特征(比如URI、请求/响应头、缓存、版本控制、各种内容格式)
04.它还支持MVC特性,如路由、控制器、操作结果、过滤器、模型绑定、控制反转和依赖项注入、单元测试,使其更简单、更稳定
05.可托管在程序或IIS中
06.它是一种轻量级结构,适用于智能手机等带宽有限的设备。
07.响应由Web API的MediaTypeFormatter格式化为JSON、XML或任何您想添加为MediaTypeFormatter的格式

什么情况下选择WCF,什么情况下选择WEB API?
01.当你想要创建一个支持特殊场景的服务时,请选择WCF,例如单向消息传递、消息队列、双工通信等
02.当你想要创建一个随时用随时使用的快速传输通道的服务,如TCP、命名管道,甚至可能是UDP(在WCF 4.5中),并且当所有其他传输通道都不可用时,您还想要支持HTTP时,请选择WCF
03.当你想要通过使用HTTP丰富的特征(像URI、请求/响应头、缓存、版本控制、各种内容格式)来创建一个面向资源的HTTP服务时,请选择Web API
04.当你想将你的服务公开给包括浏览器、手机、iphone和平板电脑在内的广泛客户时,请选择WebAPI。

 

翻译不易,如有转载,请标注出处

posted on 2022-04-22 17:11  小子有出息  阅读(187)  评论(0编辑  收藏  举报

导航