Webservice,WCF,WebAPI--特点及进化史

WebService、WCF 和 WebAPI 是 Microsoft 在不同时期推出的三种基于不同技术和架构的 Web 服务技术。它们在不同时期的演化中逐步推出,以满足不断变化的需求和技术发展的趋势。

1. WebService:WebService 是一种使用 SOAP 协议和 XML 消息格式的 Web 服务技术,由 W3C 制定,早期用于实现跨平台的分布式应用程序。WebService 基于 HTTP 协议,通过远程调用方式提供服务,支持基于 XML 和 JSON 的数据传输。WebService 逐渐被 RESTful API 所替代,但在某些场景下仍然有应用。
   - 进化历程:WebService 最早出现在 2000 年左右,它使用 SOAP 协议和 XML 消息格式进行通信,旨在实现跨平台的分布式应用程序。它使用了较为复杂的消息格式和通信机制,对开发人员和消费者来说不够简洁明了。
   - 优点:
     - 跨平台(操作系统):WebService 可以在不同的操作系统和编程语言之间进行互操作,使得跨平台集成变得容易。
     - 安全性:WebService 提供了基于标准的安全机制,如 XML 数字签名和加密,可确保数据的安全传输。
   - 缺点:
     - 复杂性:WebService 的消息格式和通信机制相对复杂,开发和调试的难度较高。
     - 性能:由于采用了 XML 消息格式(XML类XAML,内含较多无用标签信息,和传输信息一起发送,导致数据量增大),WebService 的性能较低,对于大量数据传输不太适合(因为现在前端主流的JavaScript对于XML格式信息的解析很慢,促进诞生了后续的主以json传输格式的WebAPI  Web服务技术)
     
2. WCF:
WCF 是一种面向服务的开发框架,可以用于构建分布式应用程序和 Web 服务。与 WebService 不同,WCF 提供了更加灵活的通信机制,支持多种传输协议和编码方式,包括 HTTP、TCP、MSMQ 等多种协议。WCF 具有强大的安全性和可靠性功能,是企业级应用程序开发的首选技术。
   - 进化历程:WCF 在 2006 年发布,它是一种面向服务的开发框架,继承了 WebService 的一些特性,但提供了更加灵活的通信机制和丰富的功能。WCF 支持多种传输协议和编码方式,可用于构建复杂的分布式应用程序和 Web 服务。
   - 优点:
     - 灵活性:WCF 提供了多种传输协议和编码方式的选择,使得开发人员可以根据实际需求进行配置和调整。
     - 安全性和可靠性:WCF 具有强大的安全性和可靠性功能,如消息加密、数字签名、事务支持等。
   - 缺点:
     - 复杂性:WCF 的配置和使用相对复杂,需要一定的学习和掌握成本。
     - 性能:由于提供了众多功能和灵活的通信机制,WCF 的性能相对较低,对于大规模数据传输可能存在一定的瓶颈。

3. WebAPI:WebAPI 是一个基于 RESTful 架构风格的 Web 服务框架,专门用于构建 HTTP 服务。WebAPI 使用 HTTP 协议作为通信协议,支持 XML 和 JSON 等多种消息格式WebAPI 提供了易于使用的路由、过滤器、模型绑定、参数验证等功能,使得开发人员可以快速、简单地构建 HTTP 服务,并支持跨平台、跨语言的应用程序集成。
   - 进化历程:WebAPI 在 2012 年推出,它基于 RESTful 架构风格,专注于构建 HTTP 服务。WebAPI 支持简单、轻量级的通信机制和消息格式,使得开发人员可以更加快速和简单地构建 HTTP 服务,并满足跨平台、跨语言的集成需求。
   - 优点:
     - 简单性:WebAPI 提供了简单易用的路由、过滤器、模型绑定等功能,使得开发人员可以快速构建 HTTP 服务。
     - 性能:由于采用了轻量级的通信机制和消息格式,WebAPI 的性能较高,对于大规模数据传输更为适合。
   - 缺点:
     - 功能相对较少:相比于 WCF,WebAPI 的功能相对较少,主要关注于 HTTP 服务的构建。

总的来说,WebService、WCF 和 WebAPI 在技术演化中逐步推出,以满足不同阶段的需求和技术发展的趋势。WebService 是早期的基于 SOAP(XML) 的 Web 服务技术,而 WCF 是面向服务的开发框架,支持多种协议和功能。最后,WebAPI 基于 RESTful(json) 架构风格,专注于构建轻量级的 HTTP 服务。随着 WebAPI 的推广和普及,越来越多的企业和开发者开始使用 WebAPI 来构建 HTTP 服务.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3导出el-table为execl文件

在开发时遇到了这样的需求,整理之后向大家分享一下,欢迎积极讨论与指正哦 因为在实现表格时使用了分页插件,在导出时只能导出本页的内容,最后选择了这样的方法: 正常显示的表格使用分页后的数据 在这里设置了id 而用…

了解 Node.js 的运行机制:从事件循环到模块系统(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

自己写几个字符串函数

字符串一直是一个很神奇的东西,顾名思义,字符串是由字符所构成的串,而一串字符也就构成了字符串;而我们又知道,字符在内存中是以ASCII码的形式进行存储的,所以说将一切联系起来,我们就可以来研究…

Java索引优先队列设计思路与实现

Java 学习面试指南:https://javaxiaobear.cn 1、实现思路 存储数据时,给每一个数据元素关联一个整数,例如insert(int k,T t),我们可以看做k是t关联的整数,那么我们的实现需要通过k这个值,快速获取到队列中t这个元素&a…

使用使用maven后jstl标签库无法使用

创建maven项目后配置了jstl标签库的依赖,但是一直不行,jsp页面还是原样给我输出,然后去网上找了许多办法,类似于配置文件之类的,结果发现对我并没有什么用,还是原样输出 然后就各种查找,发现了一…

Python中的科学计算和数学建模

Python中的科学计算和数学建模 Python作为一种通用编程语言,在科学计算和数学建模领域有着广泛的应用。通过Python,科学家、工程师和研究人员可以进行复杂的数据分析、建模和可视化。 一、Python中的科学计算 Python的科学计算库非常丰富,…

大数据本地环境搭建-Linux基础环境搭建

1.安装VMware 下载 VMware Workstation Pro | CN 2.配置虚拟网卡 3.Windows网络配置 4.安装centos7.9 Download (centos.org) 4.1 新建虚拟机 如果开机的时候电脑蓝屏使用WindowsR输入optionalfeatures 打开启用或关闭Windows功能->勾选打开以下两项 重启 继续安装ce…

C++力扣题目-- 二叉树层序遍历

102.二叉树的层序遍历(opens new window)107.二叉树的层次遍历II(opens new window)199.二叉树的右视图(opens new window)637.二叉树的层平均值(opens new window)429.N叉树的层序遍历(opens new window)515.在每个树行中找最大值(opens new window)116.填充每个节点的下一个右…

Web前端篇——element-plus组件设置全局中文

背景&#xff1a;在使用el-date-picker组件时&#xff0c;发现组件中的文字默认都是英文。 设置全局中文的方法如下&#xff1a;&#xff08;本文只介绍CDN方式&#xff09; <script src"//unpkg.com/element-plus/dist/locale/zh-cn"></script> <s…

WPS或word中英文字母自动调整大小写,取消自动首字母大写,全部英文单词首字母大小写变换方法

提示&#xff1a;写英文论文时&#xff0c;如何实现英文字母大小写的自动切换&#xff0c;不用再傻傻的一个字母一个字母的编辑了&#xff0c;一篇文章搞定WPS与Word中字母大小写切换 文章目录 一、WPS英文单词大小写自动修改与首字母大写调整英文字母全部由大写变成小写 或 小…

怎样的摆渡系统,能实现安全可管控的跨网数据传输?

大数据时代&#xff0c;数据在流通与传输的过程中&#xff0c;更需要注意到数据的安全防护&#xff0c;护航数据价值。“让数据主宰一切的隐忧”&#xff0c;数字战争的时代&#xff0c;各国早已认识到网络安全愈发重要&#xff0c;数据也成为各国发展的重要武器。 出于安全性和…

爬虫瑞数5.5案例:某证券

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、瑞数简介 瑞数动态安全 Botgate&#xff08;机器人防火墙&#xff09;以“动态安全”技术为核心&#xff0c;通过动态封装…

SwiftUI之深入解析Alignment Guides的超实用实战教程

一、Alignment Guide 简介 Alignment guides 是一个强大的布局工具&#xff0c;但通常未被充分利用。在很多情况下&#xff0c;它们可以帮助我们避免更复杂的选项&#xff0c;比如锚点偏好。如下所示&#xff0c;对对齐的更改也可以自动&#xff08;并且容易地&#xff09;动画…

Android 8.1 隐藏设置中定位功能

Android 8.1 隐藏设置中定位功能 最近接到客户反馈&#xff0c;需要隐藏设备设置中的定位功能&#xff0c;具体修改参照如下&#xff1a; /vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/SecuritySettings.java mLocationcontroller.displ…

SQL总结

一、建表 ---建立一次性表格 drop table if exists table_name; create table table_name as select from table_name... ; create table if not exists table_name;---建立累积插入表格 1、 create table table_name(a string , b string , c decimal); insert overwrite tab…

Kubernetes那点事儿——配置存储:ConfigMap、Secret

配置存储&#xff1a;ConfigMap、Secret 前言ConfigMapSecret 前言 前面介绍过的各种存储主要都是做数据的持久化&#xff0c;本节介绍的ConfigMap和Secret主要用于配置文件存储&#xff0c;或者环境变量的配置。 ConfigMap 创建ConfigMap后&#xff0c;数据实际会存储在K8s中…

Spring Cloud 介绍

文章目录 微服务技术栈Spring Cloud 介绍京东、阿里的微服务架构SpringBoot 和 SpringCloud 版本选择Springboot版本选择Springcloud版本选择Springcloud和Springboot之间的依赖关系如何看Spring Cloud 组件的升级替换 微服务技术栈 [toc] Spring Cloud 介绍 Spring Cloud是…

代码随想录算法训练营第二十五天 | 216.组合总和III、 17.电话号码的字母组合

216.组合总和III 题目链接&#xff1a;216.组合总和III 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序…

ULINK2仿真器安装使用之工程设置

一、 ULINK2仿真器 ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器&#xff0c;是ULink仿真器的升级版本。ULINK2不仅具有ULINK仿真器的所有功能&#xff0c;还增加了串行调试&#xff08;SWD&#xff09;支持&#xff0c;返回时钟支持和实时代理等功能。开发工程师通…

基于python热门旅游景点推荐系统+爬虫技术

大数据分析&#xff0c;数据可视化等皆可用。 源码分享。