zoukankan      html  css  js  c++  java
  • 每一次面试都是提升(一)

    面试被问WCF与WebApi的区别,顿时汗如雨下,之前还真没太了解过,特记录一下!

    一、WebService、WCF、WCFRest、WebApi的异同

     WebService:

    基于SOAP,返回Xml数据。

    只支持HTTP协议。

    不开源,但是可以被任何识别Xml的客户端调用。

    只能寄宿在IIS下。

    WCF:

    基于SOAP,返回Xml数据。

    是WebService(ASMX)的进化版,支持TCP、HTTP、HTTPS、Named Pipes、MSMQ等各种的协议。

    WCF最大的问题是它繁琐和大量的配置。

    不开源,但是可以被任何识别Xml的客户端调用。

    可以寄宿在应用程序、IIS或者服务中。

    WCF Rest:

    想使用WCF Rest service,必须使用webHttpBindings。

    通过使用[WebGet]和[WebInvoke]属性,实现HTTP的GET和POST。

    要想使用其他的HTTP请求方式,需要在.svc文件中做一些配置,使IIS可以接受这些特殊的请求。

    使用WebGet通过参数传输数据,也需要配置,而且必须指定UriTemplate。

    支持XML、JSON以及ATOM等数据格式。

    Web API:

    这是一个可以简单、容易构建HTTP服务的新框架。

    WebAPI是在 .NET Framework上构建REST-ful服务开源的理想平台。

    与WCF Rest serivce不同,WebAPI具有Http所有的特点(像 URIs,Requet/response headers/caching/versioning/various content formats)。

    WebAPI 也支持一些MVC的特性,像routing,controller,action,results,filter,model binders,IOC container or DI,unit testing,使得它更简单、健壮。

    可以寄宿在应用程序或IIS中。

    它是轻量级的架构,对具有有限宽带的设备比较友好,比如智能手机。

    二、选择WCF还是WebAPI?

    1.当你想创建一个支持像消息、消息队列、双工通信等特殊情况的服务时,选择WCF

    2.当你想创建一个可以使用快速传输通道(如TCP、命名管道、甚至UDP(WCF4.5),当其他传输通道禁用的时候也能支持HTTP)的服务时,选择WCF 

    3.当你想创建一个基于HTTP,可以使用HTTP的全部功能(如URI,请求/响应标头,缓存,版本控制,各种格式的内容)的面向资源的服务时,选择WebAPI

    4.当你想把你的服务暴露给包括浏览器、手机、iphone和平板电脑等比较广泛的调用端时,选择WebApi

    参考文章:Difference between WCF and Web API and WCF REST and Web Service

  • 相关阅读:
    Linux常用命令
    IBM Java多线程 1. 线程基础
    IBM Java多线程 6.其它线程 API 详细信息
    Jakarta Commons Logging学习笔记
    Linux 下存放ssh信息的文件位置
    ArrayList的使用方法
    JAVA基础--JAVA中的反射机制详解
    使用 Bash shell脚本进行功能测试
    log4j详细解
    Eclipse Template用法探讨
  • 原文地址:https://www.cnblogs.com/hetring/p/4493137.html
Copyright © 2011-2022 走看看