WCF 和 Web API 和 WCF REST 和 Web 服务有什么区别?
WCF真的这么复杂,应该用webapi吗?
WebApi是否可以做所有的工作而不占别人的便宜?
.Net 框架有许多允许您创建 HTTP 服务的技术,例如 Web 服务、WCF 和现在的 Web API。互联网上有很多文章可能会描述您应该向谁使用。
网络服务
它基于 SOAP 并以 XML 形式返回数据。 它只支持 HTTP 协议(protocol)。 它不是开源的,但可以被任何理解 xml 的客户端使用。 它只能托管在 IIS 上。 WCF
它也是基于 SOAP 并以 XML 形式返回数据。 它是 Web 服务 (ASMX) 的演进,支持 TCP、HTTP、HTTPS、命名管道、MSMQ 等各种协议(protocol)。 WCF 的主要问题是其繁琐且广泛的配置。 它不是开源的,但可以被任何理解 xml 的客户端使用。 它可以托管在应用程序或 IIS 上或使用窗口服务。 WCF 休息
要将 WCF 用作 WCF Rest 服务,您必须启用 webHttpBindings。 它分别通过 [WebGet] 和 [WebInvoke] 属性支持 HTTP GET 和 POST 动词。 要启用其他 HTTP 谓词,您必须在 IIS 中进行一些配置,以接受对 .svc 文件的特定谓词的请求 使用 WebGet 通过参数传递数据需要配置。必须指定 UriTemplate。 它支持 XML、JSON 和 ATOM 数据格式。 网络 API
这是以简单的方式构建 HTTP 服务的新框架。 Web API 是开源的,是在 .NET Framework 上构建 REST-ful 服务的理想平台。 与 WCF Rest 服务不同,它使用 HTTP 的全部功能(如 URI、请求/响应 header 、缓存、版本控制、各种内容格式)它还支持 MVC 功能,例如路由、 Controller 、 Action 结果、过滤器、模型绑定(bind)器、IOC 容器或依赖注入(inject)、单元测试,使其更加简单和健壮。 它可以托管在应用程序或 IIS 上。 它是轻量级架构,适用于智能手机等带宽有限的设备。 响应由 Web API 的 MediaTypeFormatter 格式化为 JSON、XML 或您想要添加为 MediaTypeFormatter 的任何格式。
To whom choose between WCF or WEB API
当您要创建应支持特殊场景(例如单向消息传递、消息队列、双工通信等)的服务时,请选择 WCF。当您想要创建一个可以使用快速传输 channel 的服务时选择 WCF,例如 TCP、命名管道,甚至可能是 UDP(在 WCF 4.5 中),并且您还希望在所有其他传输 channel 不可用时支持 HTTP。 如果您想通过 HTTP 创建面向资源的服务,该服务可以使用 HTTP 的全部功能(如 URI、请求/响应 header 、缓存、版本控制、各种内容格式),请选择 Web API。 如果您想将服务公开给包括浏览器、手机、iphone 和平板电脑在内的广泛客户端,请选择 Web API。 引用:
http://www.dotnettricks.com作者:夏琳德拉·乔汉