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

  • 相关阅读:
    【转载】JavaScript变量: 变量命名原则
    【转载】mysql运行报【The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone...】的解决方法
    Java Web 环境搭建
    原生JS消息提示插件Message.js
    SQL Server 参数嗅探问题
    根据表名和列名获取关联index的创建脚本
    mongodb快速均衡导入数据
    index optimize
    PG Foreign key 外键
    无密码登陆
  • 原文地址:https://www.cnblogs.com/hetring/p/4493137.html
Copyright © 2011-2022 走看看