wcf restful服务和WEB API之间的区别

abh*_*jit 10 wcf-rest asp.net-web-api

我现在很长时间都在查询.我们究竟需要使用WEB API,我们应该在哪里使用WCF restful服务.我们想要在WEB API中实现什么,我们能够在WCF Rest中实现.我试图深入研究答案但我得到了我们需要在wcf中做额外的设置,比如URI模板,合同,端点.但它更多的是设置,但我想知道使用WCF Restful Services背后的真正原因.

Moh*_*hit 21

网络服务

  • 它基于SOAP并以XML格式返回数据.
  • 它仅支持HTTP协议.
  • 它不是开源的,但可以被任何理解XML的客户端使用.
  • 它只能在IIS上托管.


WCF

  • 它也基于SOAP并以XML格式返回数据.
  • 它是Web服务(ASMX)的发展,支持各种协议,如TCP,HTTP,HTTPS,命名管道,MSMQ.
  • WCF的主要问题是其繁琐且广泛的配置.
  • 它不是开源的,但可以被任何理解XML的客户端使用.
  • 它可以在应用程序中或IIS上或使用窗口服务托管.


WCF REST

  • 要将WCF用作WCF REST服务,您必须启用webHttpBindings.
  • 它分别支持HTTP GET和POST动词by [WebGet][WebInvoke]属性.
  • 要启用其他HTTP谓词,您必须在IIS中进行一些配置以接受对该.svc文件的特定谓词的请求.
  • 使用WebGet需求配置通过参数传递数据.在UriTemplate必须指定.
  • 它支持XML,JSON和ATOM数据格式.


Web API

  • 这是以简单方便的方式构建HTTP服务的新框架.
  • Web API是开源的,是使用.NET Framework构建RESTful服务的理想平台.
  • 与WCF REST服务不同,它使用HTTP的全部功能(如URI,请求/响应头,缓存,版本控制,各种内容格式).
  • 它还支持MVC功能,例如路由,控制器,操作结果,过滤器,模型绑定器,IOC容器或依赖注入,单元测试使其更加简单和健壮.
  • 它可以在应用程序中或IIS上托管.
  • 它是一种轻量级架构,适用于智能手机带宽有限的设备.
  • 响应由Web API格式化MediaTypeFormatter为JSON,XML或您想要添加的任何格式MediaTypeFormatter.


在WCF或Web API之间进行选择

  • 如果要创建应支持特殊方案的服务(例如单向消息传递,消息队列,双工通信等),请选择WCF.
  • 如果要创建可在可用时使用快速传输通道的服务(例如TCP,命名管道,甚至UDP(在WCF 4.5中)),请选择WCF,并且还希望在所有其他传输通道不可用时支持HTTP.
  • 如果要通过HTTP创建可以使用HTTP的完整功能(如URI,请求/响应头,缓存,版本控制,各种内容格式)的面向资源的服务,请选择Web API.
  • 如果要将服务公开给广泛的客户,包括浏览器,手机,iPhone和平板电脑,请选择Web API.

有关详细信息,请参阅http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/.

  • 如果您想向广泛的用户展示您的功能,请参阅abhijit,例如在这个技术变化的趋势世界中,那么当然webApi是您拥有轻量级和其他功能的最佳选择. (3认同)