问题描述
WCF和Web API以及WCF REST和Web服务之间有什么区别?WCF真的这么复杂,应该使用webapi吗?WebApi是否可以完成所有工作而不利用其他服务?
What is difference between WCF and Web API and WCF REST and Web Service?Is WCF really so complicated that the webapi should be used?Whether WebApi can do all the work and do not take advantage of others?
推荐答案
.Net框架具有多种技术,可让您创建HTTP服务,例如Web服务,WCF和现在的Web API.互联网上有很多文章可以描述您应该向谁使用.
The .Net framework has a number of technologies that allow you to create HTTP services such as Web Service, WCF and now Web API. There are a lot of articles over the internet which may describe to whom you should use.
- 它基于SOAP并以XML格式返回数据.
- 它仅支持HTTP协议.
- 它不是开源的,但是任何了解xml的客户端都可以使用.
- 只能在IIS上托管.
- 它也基于SOAP并以XML格式返回数据.
- 这是Web服务(ASMX)的发展,并支持各种协议,例如TCP,HTTP,HTTPS,命名管道,MSMQ.
- WCF的主要问题在于它乏味且广泛的配置.
- 它不是开源的,但是任何了解xml的客户端都可以使用.
- 它可以在应用程序中或IIS上托管,也可以使用窗口服务托管.
- 要将WCF用作WCF Rest服务,必须启用webHttpBindings.
- 它分别通过[WebGet]和[WebInvoke]属性支持HTTP GET和POST动词.
- 要启用其他HTTP谓词,您必须在IIS中进行一些配置以接受.svc文件中特定谓词的请求
- 使用WebGet需要通过参数传递数据.必须指定UriTemplate.
- 它支持XML,JSON和ATOM数据格式.
- 这是使用简单方法构建HTTP服务的新框架.
- Web API是开源的,是通过.NET Framework构建REST-ful服务的理想平台.
- 与WCF Rest服务不同,它使用HTTP的全部功能(例如URI,请求/响应标头,缓存,版本控制,各种内容格式)
- 它还支持MVC功能,例如路由,控制器,动作结果,过滤器,模型绑定器,IOC容器或依赖项注入,单元测试,这些功能使其变得更加简单和健壮.
- 它可以托管在应用程序中或IIS上.
- 它是轻量级的体系结构,适用于带宽有限的设备,例如智能手机.
- 响应由Web API的MediaTypeFormatter格式化为JSON,XML或您想要添加为MediaTypeFormatter的任何格式.
- 要创建支持特殊情况(例如单向消息传递,消息队列,双工通信等)的服务时,请选择WCF.
- 当您要创建可以使用可用的快速传输通道的服务时选择WCF,例如TCP,命名管道甚至是UDP(在WCF 4.5中),并且还希望在所有其他传输通道时都支持HTTP.不可用.
- 当您想通过HTTP创建面向资源的服务时,请选择Web API,该服务可以使用HTTP的全部功能(例如URI,请求/响应标头,缓存,版本控制,各种内容格式).
- 当您想向广泛的客户端(包括浏览器,手机,iphone和平板电脑)公开服务时,请选择Web API.
- Choose WCF when you want to create a service that should support special scenarios such as one way messaging, message queues, duplex communication etc.
- Choose WCF when you want to create a service that can use fast transport channels when available, such as TCP, Named Pipes, or maybe even UDP (in WCF 4.5), and you also want to support HTTP when all other transport channels are unavailable.
- Choose Web API when you want to create a resource-oriented services over HTTP that can use the full features of HTTP (like URIs, request/response headers, caching, versioning, various content formats).
- Choose Web API when you want to expose your service to a broad range of clients including browsers, mobiles, iphone and tablets.
参考: http://www.dotnettricks.com
作者:Shailendra Chauhan
Reference: http://www.dotnettricks.com
Author : Shailendra Chauhan
这篇关于WCF,Web API,WCF REST和Web服务之间的区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!