zoukankan      html  css  js  c++  java
  • {Web API}Vs{WebService}Vs{WCF}

    前言

    从相同点中比较不同点
    都是分[服务端,客户端],都是客户端去调用服务端.

    不分场景的讨论优劣之分就是耍流氓.

    WebService

    关键字

    
    [
    XML,
    SOAP,
    WSDL,
    
    ]
    

    特点

    
    协议:HTTP/SOAP
    数据格式:XML
    
    

    适合用Web Service的情况

    [
        跨越防火墙,
        应用程序集成,
        B2B集成,
        软件重用,
    
    ]
    

    构成WebService平台的三大技术:[XML,SOAP,WSDL]

    WebService采用Http协议来在客户端和服务端之间传输数据。
    WebService使用XML来封装数据,XML主要的优点在于它是跨平台的。

    WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式.
    这些特定的HTTP消息头和XML内容格式就是SOAP协议规定的。

    WebService服务器端首先要通过一个WSDL文件来说明自己有什么服务可以对外调用。
    简单的说,WSDL就像是一个说明书,用于描述WebService及其方法、参数和返回值。
    WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。
    客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。
    WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:
    1.注册到UDDI服务器,以便被人查找;
    2.直接告诉给客户端调用者。

    WebService交互的过程就是,WebService遵循SOAP协议通过XML封装数据,
    然后由Http协议来传输数据。

    WCF

    关键字
    契约先行
    分布式通信框架
    配置繁琐,学习成本高

    协议:TCP、HTTP、MSMQ等
    数据格式:xml,json,atom等

    wcf被优先考虑的场景
    单向消息,双工通信,消息队列
    协议只允许TCP,UDP

    WCF个人秀

    WCF可以不依赖于IIS。
    WCF可以配置成BasicHttpBinding来兼容(或者说变身成)WS。
    WCF可以基于TCP或者MessegeQueue来传输数据。
    WCF的可配置性比WS强,比如安全性。
    WCF可以是有状态的,并支持事务。
    WCF 支持多种通信协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、消息可达性、事务流等。
      
    WCF 可以与ASP.NET 集成、共享一个上下文(HttpContext)。
    WCF 支持多种消息传输格式 :text,binary,mtom,Json 等。
    WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、SSL 流安全、Windows 流安全等。
      
    WCF 支持多种会话模式:单向、双向、请求/响应。
    WCF 支持REST 。
    WCF 支持多种格式化方式。DataContractSerializer、XmlSerializer、 DataContractJsonSerializer 等。
      
    WCF 支持 WAS hosting、Windows 服务 hosting、Self-Hosting、IIS hosting 等。WCF 支持多种并发模式:单例、单调、会话

    Web API

    关键字

    wcf被优先考虑的场景
    支持多种客户端
    创建面向资源的服务或者希望支持HTTP的全部特性(构建RESTful架构)

    综合比较一下

    WCF与Web服务是什么关系

    WCF 能够创建兼容 Web 服务的服务,也就是说可以创建能够与Web 服务互联互通的服务,
    他们两个并不能用简单包含或者等同关系来表述。
    WCF 是一套框架,用来创建各种服务。
    其中包括创建 Web服务(采用 basicHttpBinding绑定的服务就是一个Web 服务)。

    速度

    由于RESTful服务使用HTTP协议和HTTP的请求/响应较SOAP轻巧,
    因此如果你打算为低流量设备或手机端构建服务,
    Web API会是最佳之选。
    相较于SOAP,HTTP的请求/响应可读性更高,因为SOAP包含了header、body等更为复杂的元素。

    综上所述,我们似乎难以决定哪个更好。

    但是,我们能得出两点结论。
    一,如果你需要构建一个用于不同平台的服务,那么请使用WCF;
    二,如果你需要构建基于因特网的服务,那么请使用Web API。

    技术未来

    微软技术未来趋势看.NET Core,
    微软一直没有将WCF移植到.NET Core,没准Silverlight之今日,就是WCF的明日?
    反观Web API,微软2014年推出开源.NET Core中就有ASP.NET Core Web API...

    工作用到的WCF,WebService,WebAPI

    当初为什么用了WCF/Web API/WebService,基于什么考虑?

    扩展知识

    • SOAP和HTTP的区别

    版权声明

    版权声明:本文为CSDN博主「春水上行」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/c99463904/article/details/76018436

    摘抄文档

  • 相关阅读:
    [导入]开源一个的Asp.net公共上传文件程序
    [导入]安装Nginx,最近在研究这个,鄙视用F5的
    [导入]Movable Type 的 Feed Widget 很牛,真的很牛!
    [导入]如果得了ls综合症怎么办?
    [导入]鼓泡泡的电容!
    [导入]如果得了ls综合症怎么办?
    sql语法、函数等等大全
    学习ASP.NET MVC3(3) Razor视图引擎(上)
    学习ASP.NET MVC3(1) 概述
    依赖属性的好处
  • 原文地址:https://www.cnblogs.com/love-zf/p/12800700.html
Copyright © 2011-2022 走看看