WCF、Web API、WCF REST 和 Web 服务之间的区别?
Difference between WCF, Web API, WCF REST and Web Service?
WCF 和 Web API 与 WCF REST 和 Web 服务有什么区别?
WCF真的那么复杂,应该使用webapi吗?
是否WebApi能包办一切不占人便宜?
.Net 框架有许多技术允许您创建 HTTP 服务,例如 Web 服务、WCF 和现在的 Web API。互联网上有很多文章可以描述您应该使用谁。如今,您有很多选择可以在 .NET 框架上构建 HTTP 服务。
在这里你可以阅读更多:
WCF vs ASP.NET Web API
WCF Service vs ASP.NET Web Api
.Net 框架有许多技术允许您创建 HTTP 服务,例如 Web 服务、WCF 和现在的 Web API。互联网上有很多文章可以描述您应该使用谁。
网络服务
- 它基于 SOAP 和 return 形式的 XML 数据。
- 仅支持HTTP协议。
- 它不是开源的,但任何理解 xml 的客户都可以使用。
- 它只能在 IIS 上托管。
WCF
- 它也是基于 SOAP 和 return 形式的 XML 数据。
- 它是网络服务(ASMX)的演变,支持各种协议,如TCP、HTTP、HTTPS、命名管道、MSMQ。
- WCF 的主要问题是其冗长乏味的配置。
- 它不是开源的,但任何理解 xml 的客户都可以使用。
- 它可以在应用程序或 IIS 上或使用 window 服务托管。
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、request/response headers、缓存、版本控制、各种内容格式)
- 它还支持 MVC 功能,例如路由、控制器、操作结果、过滤器、模型绑定器、IOC 容器或依赖项注入、单元测试,使其更加简单和健壮。
- 它可以在应用程序或 IIS 上托管。
- 它是轻量级架构,适用于带宽有限的设备,如智能手机。
- 响应由 Web API 的 MediaTypeFormatter 格式化为 JSON、XML 或您想要添加为 MediaTypeFormatter 的任何格式。
To whom choose between WCF or WEB API
- 如果要创建支持特殊场景(例如单向消息传递、消息 queues、双工通信等)的服务,请选择 WCF。
- 当您想要创建可以使用可用的快速传输通道的服务时,请选择 WCF,例如 TCP、命名管道,甚至可能是 UDP(在 WCF 4.5 中),并且您还希望在所有其他情况下都支持 HTTP传输通道不可用。
- 如果您想通过 HTTP 创建 resource-oriented 服务,可以使用 HTTP 的全部功能(如 URI、request/response headers、缓存、版本控制、各种内容格式)。
- 如果您希望向包括浏览器、手机、iphone 和平板电脑在内的广泛客户端公开您的服务,请选择 Web API。
参考:http://www.dotnettricks.com
作者 : Shailendra Chauhan
WCF 和 Web API 与 WCF REST 和 Web 服务有什么区别? WCF真的那么复杂,应该使用webapi吗? 是否WebApi能包办一切不占人便宜?
.Net 框架有许多技术允许您创建 HTTP 服务,例如 Web 服务、WCF 和现在的 Web API。互联网上有很多文章可以描述您应该使用谁。如今,您有很多选择可以在 .NET 框架上构建 HTTP 服务。 在这里你可以阅读更多:
WCF vs ASP.NET Web API
WCF Service vs ASP.NET Web Api
.Net 框架有许多技术允许您创建 HTTP 服务,例如 Web 服务、WCF 和现在的 Web API。互联网上有很多文章可以描述您应该使用谁。
网络服务
- 它基于 SOAP 和 return 形式的 XML 数据。
- 仅支持HTTP协议。
- 它不是开源的,但任何理解 xml 的客户都可以使用。
- 它只能在 IIS 上托管。
WCF
- 它也是基于 SOAP 和 return 形式的 XML 数据。
- 它是网络服务(ASMX)的演变,支持各种协议,如TCP、HTTP、HTTPS、命名管道、MSMQ。
- WCF 的主要问题是其冗长乏味的配置。
- 它不是开源的,但任何理解 xml 的客户都可以使用。
- 它可以在应用程序或 IIS 上或使用 window 服务托管。
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、request/response headers、缓存、版本控制、各种内容格式)
- 它还支持 MVC 功能,例如路由、控制器、操作结果、过滤器、模型绑定器、IOC 容器或依赖项注入、单元测试,使其更加简单和健壮。
- 它可以在应用程序或 IIS 上托管。
- 它是轻量级架构,适用于带宽有限的设备,如智能手机。
- 响应由 Web API 的 MediaTypeFormatter 格式化为 JSON、XML 或您想要添加为 MediaTypeFormatter 的任何格式。
To whom choose between WCF or WEB API
- 如果要创建支持特殊场景(例如单向消息传递、消息 queues、双工通信等)的服务,请选择 WCF。
- 当您想要创建可以使用可用的快速传输通道的服务时,请选择 WCF,例如 TCP、命名管道,甚至可能是 UDP(在 WCF 4.5 中),并且您还希望在所有其他情况下都支持 HTTP传输通道不可用。
- 如果您想通过 HTTP 创建 resource-oriented 服务,可以使用 HTTP 的全部功能(如 URI、request/response headers、缓存、版本控制、各种内容格式)。
- 如果您希望向包括浏览器、手机、iphone 和平板电脑在内的广泛客户端公开您的服务,请选择 Web API。
参考:http://www.dotnettricks.com
作者 : Shailendra Chauhan