分类 Paas 下的文章

前言

众所周知,国际知名的信息技术研究和分析公司Gartner曾预言,到2022年,50%以上的公司将采用低代码开发平台,来进行企业应用定制。低代码的声音已经出现了很长时间,我们似乎还是将其定义为新生事物。


一、什么是低代码开发?


低代码是一种可视化软件开发方法,通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化,消除了对传统计算机编程方法的依赖。


低代码平台使应用程序开发更加自主化,特别是对于没有编码经验的业务用户,如业务分析师或项目经理。这些工具使技术含量较低的员工能够以多种方式产生更大的业务影响,例如:减轻 IT 部门积压工作、减少业务流程管理。尽管如此,低代码开发平台也可以帮助经验丰富的程序员。


由于它们几乎不需要编码经验 ,因此它们为开发人员的编码背景提供了更大的灵活性。例如:一些业务应用程序需要特定编程语言的知识,从而进一步缩小了开发人员的选择范围。通过消除这一瓶颈,低代码平台缩短了应用程序的开发生命周期,使它们能够在更短的时间内完成更多工作。因此预计到2023年,半数以上的大中型企业将使用低代码应用开发平台,作为其战略应用平台之一。




这时候一定会有很多小伙伴会问到:既然这么多企业会使用到低代码应用开发平台,肯定很好用吧,那它的优势、好处有哪些呢?






二、低代码开发的好处;

1. 生产率

低代码应用程序开发简化了开发过程。这意味着开发人员可以在更短的时间内构建更多应用程序——专注于创新和满足需求,而不是微小的技术细节。




2. 研发效率

新应用程序的加速开发和交付可能是低代码开发最广为人知的优势。直观的用户界面、拖放功能、支持工具的简单集成以及一键交付选项,都有助于确保项目更快地开发周期。事实上,低代码解决方案可以将开发时间缩短多达 90% 。




3. 敏捷开发

减少部署时间:业务敏捷性。随着市场变化和新机遇的出现,团队可以快速创建和发布新的业务产品,以满足员工和客户不断变化的需求。




4. 人力成本

企业招聘、培训大量开发人员是一项昂贵的人力支出成本,低代码的出现 能解决允许更少的开发人员完成更多工作,甚至可以让非开发人员构建应用程序。这意味着降低成本,并获得更大的投资回报。




5. 运维成本

维护多个应用程序和部署是一项巨大的挑战。低代码开发平台提供了一个监控管理,IT 团队可以从监控管理的方式监控和控制每个开发项目。




6. 团队协助

低代码平台还可以促进开发人员之间更好地协作。多个个人或团体可以准确地看到正在完成的任务以及该任务由谁负责,从而允许他们一起协作处理相同的模块。




7. 扩展能力

如果个人仅依靠专业开发团队来构建自己的应用程序,您可能会忽略大量未开发的功能。低代码开发为技术背景有限的人提供了开发模块。这些业务人员可以使用低代码平台的预构建功能来进一步创新和发展自己的业务。




8. 快速原型制作

低代码应用程序开发的一个好处是它允许非编码人员快速构建解决方案原型。这些解决方案可以进行测试、评估和改进,而无需涉及正式的软件开发人员。可以比较、丢弃或合并相互竞争的解决方案,直到它们被认为足够成熟以进行开发以实现更优化的实施。






三、低代码与无代码:有什么区别?



低代码和无代码 定义往往可以置换概念,但它们并不完全相同。虽然低代码和无代码解决方案都是为了简化应用程序的开发,但它们之间的差异还是值得考虑的:




低代码

低代码平台专为专业开发人员和非技术业务用户设计。他们需要很少的技术培训或开发经验,并使用基于可视化建模来简化开发过程。它们还允许那些有编码经验的人更深入地研究,在需要时亲自编码。




无代码

无代码平台不需要开发经验,专为普通开发人员和业务用户设计。无代码解决方案基本上向所有人开放了应用程序开发,但可能导致*影子功能——团队内未经批准的应用程序开发。






四、低代码应用开发原理

为了改进组织开发应用程序的方式,低代码平台需要满足某些标准。以下是低代码开发的基本原则:




1、快速交付

模块化、可重复使用的构建模块和预构建的功能组件消除了复杂性的摩擦以及从头开始构建一切的需要。




2、协作

带有工具的多角色环境可适应整个团队的不同技能和经验水平。这允许不同的利益相关者一起工作,以快速提供最好的应用程序和体验。经验不足的构建者可以直接使用专业开发人员构建的功能,从而实现更快、更敏捷的开发过程。




3、业务扩展

作为应用程序开发环境的基础,低代码使用户能够快速扩展从简单到复杂的业务体验,并从端到端解决跨业务孤岛。




4、避免重复研发

普通开发人员乐意快速构建应用程序,避免项目延期。低代码实施策略和技术约束来限制和管理应用程序研发周期,同时还避免数据重复、不一致和不安全性。




5、战略目标

应用程序开发必须与团队战略目标保持一致。战略性低代码开发建立和监控与业务价值一致是成功团队的衡量标准,建立应用程序研发标准,可以监督团队预算以及资源分配。




6、技术统一

低代码开发计划必须建立技术标准和最佳实施路线,制定开发流程,制定测试方案和部署方案,并制定团队成员技术培训要求。




7、操作性原则

低代码开发的操作性原则定义和管理需求接收过程。同样需要建立技术支持、程序维护和更新的标准要求,同时定义合理化和非合理的需求管理。




8、用户体验

低代码开发必须始终如一地创造正面的用户体验。这可以保证用户的认可度。新应用不会扰乱用户行为或降低新用户认可度。




9、功能集成

低代码集成至关重要,可确保流程和资源之间的快速整合。平台必须能够快速集成业务需要的数据或依赖的系统,而不需要专门的集成工具。预构建的端到端集成解决方案可缩短实现业务价值的集成时间。




10、安全性

安全性是成功的低代码平台的基本原则。降低与数据、运营影响、业务连续性、运营绩效等相关的风险。






五、优秀的低代码平台基本哪些优点



优秀的低代码平台能够为开发人员和普通业务人员提供支持。因此,优秀的低代码集中在以下方面体现:




(1)智能编排

内置智能编排功能,可以在您在困惑时提供编排建议,促进更好的业务决策。




(2)开发工具

一整套应用程序开发工具可以帮助各级开发人员快速、大规模地创建功能强大的应用程序。




(3)集成服务

包括针对流行业务应用程序的预构建集成,以及创建自定义集成的能力,使大家可以轻松地将自己的平台有效地连接到任何系统和链接业务需要的数据。




(4)跨平台的用户体验

旨在无论是在PC端、移动设备都能提供友好的用户体验。




(5)通知服务

当重要事件发生时提醒用户,顶级低代码平台使用内置多种通知服务来确保及时通知相关人员。




(6)可靠的安全机制

商业应用程序可能包含潜在的敏感数据。优秀的低代码平台需要提供可靠数据安全保障及系统安全保障。




既然大家已经知道低代码的优势、应用开发原理以及优秀的低代码平台具备的优点,那么大家知道国内和国外最受欢迎的低代码平台有哪些吗?

以下提及到的平台希望对大家有所帮助,平台的定位会有不同,用户可以根据自己需求选择。



国内受欢迎的十大低代码开发平台:

一、宜搭


宜搭是阿里巴巴集团在2019年3月公测的面向业务开发者的零代码业务应用搭建平台。开发者可以通过可视化开发单据页面、流程页面、报表页面、展示页面、外部链接页面,将这些页面组合在一起形成轻应用,一键发布到PC和手机端。宜搭在2018年在阿里巴巴集团内部发布,阿里作为首个种子用户,到目前为止已有上万个应用在上面使用。 在2019年9月宜搭也发布了升级版宜搭Plus,在单据、流程、报表等方面都进行了全面升级,成为一款面向ISV开发者的低代码开发平台,能够满足企业复杂业务管理系统开发所需的数据建模、逻辑&服务编排、专业UI页面设计等需求。




二、简道云


简道云发布至今快五年了,已经算是市面上发展比较久的产品了,它由国内专业的大数据BI和分析平台厂商——南京帆软软件有限公司(以下简称“帆软”)孵化而来,在数据分析方面具有天然的优势。 简道云与帆软旗下报表、BI等其他产品定位有所不同,简道云致力于帮助非技术人员快速搭建企业应用,无需使用编码,即可搭建销售、OA办公、生产等管理应用,帮助企业规范业务流程、促进团队协作、实现数据追踪!


简道云的核心功能包括表单、流程表单、仪表盘以及其他一些高级功能,通过这些功能的组合,搭建出各种不同的应用。




三、明道云


明道云的发展历史很长,从最开始的梅花网到协作SaaS产品明道,最后在2018年转型成为零代码业务应用构建平台。在行业中,还属于比较新的产品,明道云给自己的定位是一个APaaS平台,让企业用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用。从整体功能上看,明道云对标的是国外应用搭建平台Airtable,主要通过搭建数据管理以及流程管理应用,帮助企业高效管理业务。




四、云程


云程平台是一款基于SpringBoot+VUE的低代码开发框架。采用微服务、前后端分离架构,基于可视化流程建模、表单建模、报表建模工具,零代码快速构建云端业务应用 ,平台即可本地化部署,也可基于K8S云原生部署。云程平台也是一款专业的BPM软件,即可独立部署,支撑企业级端到端流程落地,也可嵌入到您的OA、ERP等系统中,作为流程引擎组件使用。云程平台主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量,为企业信息化建设降本增效。


云程研发团队核心成员有10年以上的软件研发经验,聚焦于低代码平台、流程引擎等中间件产品研发,我们即可输出云程平台源代码,也可提供专业咨询和定制服务。




五、氚云


氚云是深圳奥哲网络科技有限公司(奥哲网络)三大主推产品之一,跟简道云是同时期的选手,已经发展近5年,是一款面向管理者或业务人员的以场景为中心的零(低)代码平台。2018年成为阿里战略投资的低代码应用搭建工具,与钉钉实现了深度融合。 氚云的定位与以流程为中心的H3 BPM和以业务为中心的云枢不同,氚云是以明确的场景为中心,通过可视化表单、流程设计、智能报表和模板化应用,帮助管理者或业务人员快速搭建流程与应用,透明呈现业务进度,实时展现精准数据,完整沉淀管理信息。




六、JEPaaS


JEPaaS是一款优秀的软件平台产品,可视化开发环境,低代码拖拽式配置开发,操作极其简单,可以帮助解决Java项目80%的重复工作,让开发更多关注业务逻辑,大大提高开发效率,能帮助公司大幅节省人力成本和时间成本,同时又不失灵活性。适用于搭建 OA、ERP、CRM、HR、HIS等所有的企业信息管理系统。




七、伙伴云


伙伴云,是由有着10年以上论坛软件开发及中小企业服务经验的前Discuz!团队打造的,历经“伙伴云表格”、“伙伴办公”,逐步升级为一个为企业经营服务的数据可视化平台,为企业的全流程运营管理与经营核算提供整体解决方案。通过强大的数据库引擎及权限架构,搭配可灵活定制的流程引擎与大数据分析引擎,配合专家级经营顾问与服务,打造全流程、实时可视化的经营核算体系,为企业构建起上下同心的经营伙伴关系,实现员工持续成长、组织持续变革、业绩持续提高。




八、道一云


道一云|七巧Plus(下面简称“七巧Plus”)是道一云旗下的一款低代码开发平台,去年7月左右上线,算是一款比较新的产品了。七巧Plus给自己的定位是一个高生产力的aPaaS平台,帮助企业快速搭建个性化应用,规范流程管理、数据追踪,提高团队协作效率。 道一云从2004年成立至今,近几年已经陆续发布了基于企业微信的协同应用套件——OA、HR、CRM等应用,在应用平台方面还发布了中台、七巧Plus,从布局上来看,是典型的“PaaS+SaaS”发展模式。




九、JeecgBoot


JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! JeecgBoot引领新的开发模式(Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发), 帮助解决Java项目70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性!JeecgBoot还独创在线开发模式(No代码概念):在线表单配置(表单设计器)、移动配置能力、工作流配置(在线设计流程)、报表配置能力、在线图表配置、插件能力(可插拔)等等!




十、RuoYi


RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。






国外18个最受欢迎的低代码开发平台:



一、Saltcorn


Saltcorn是一个无代码数据库管理Web应用。它配备了一个吸睛的仪表板,丰富的生态系统、视图生成器以及支持主题的界面。


没有什么编码体验的用户可以在几分钟内构建丰富且交互式的数据库应用程序。公司还可以使用它来创建日常使用的工具,并快速重构。


Saltcorn 拥有令人印象深刻的示例应用程序列表,其中包括:博客、通讯簿、项目管理系统、问题跟踪器、wiki、团队管理等。


Saltcorn采用MIT许可作为免费开源项目发布。你可以点击这个链接运行在线演示。


Saltcorn官方地址:https://github.com/saltcorn/saltcorn




二、Joget DX


Joget DX 是一个低代码的应用程序构建平台,其目的是帮助公司轻松实现数字化转型。Joget DX结合了业务流程自动化管理、工作流程定制和低代码应用程序开发工具。


Joget DX 可以在云上和本地运行。它具有丰富的文档,易于使用的仪表板与可视化构建器,支持拖放,并且支持多种操作系统和数据库。


Joget DX官方地址:https://www.joget.com/




三、Digdag


Digdag 是一款开源企业解决方案,旨在实现易于部署、多云设置和模块化的结构来构建和扩展业务应用。


Digdag 拥有一系列企业功能,包括丰富的管理面板、多语言支持、错误处理、配置工具和版本控制工具。


该解决方案采用Java和Node.js开发,它支持 AWS、私有云、IBM 云和Digital Ocean。


Digdag官方地址:https://www.digdag.io/




四、Stackstorm


Stackstorm 与此列表中的任何其他系统不同,它被设计为在一个平台内连接、管理和监控企业应用的伞项目。


Stackstorm侧重于事件驱动的方法、自定义工作流程设计以及用户角色和权限。


方法很简单:事件驱动的自动化,提供传感器、触发器、每个定义的操作、规则、工作流程和具有丰富记录系统的审计。


Stackstorm官方地址:https://stackstorm.com/




五、CUBA Platform


CUBA Platform是面向企业的开源 的(Apache 2.0许可) 快速应用开发系统。


CUBA Platform配备了数十个工具例如IDE、应用程序开发工作室、CLI命令行接口以及坚实的可扩展基础设施。


CUBA 平台具有丰富的插件系统,包含BPM (业务流程管理) 等插件,不过这些插件需要一些时间来构建和安装。


BPM插件:https://github.com/cuba-platform/bpm


CUBA平台:https://github.com/cuba-platform/cuba




六、Skyve


Skyve是一个开源的业务软件构建平台。它支持无代码和低代码的快速应用开发。


Skyve支持不同的数据库引擎:MySQL、SQL 服务器和 H2 数据库引擎。其开发人员目前正在努力支持PostgreSQL和Oracle。Skyve提供了丰富的 API 集,以及低代码开发应用构建向导。


Skyve平台由丰富的生态系统组成,其中包括:


(1)企业平台


(2)构建器应用程序,采用React Native构建原生移动应用,


(3)与其他第三方服务集成的 Skyve 总线模块,


(4)Skyve Confidence:为TDD提供测试功能


(5)Skyve Cortex:


(6)Skyve Portal:企业应用的 Web 门户扩展


(7)Skyve CRM:自定义构建Skyve CRM 应用程序


(8)Skyve Replica:在分布式 Skyve 实例之间提供无缝同步




Skyve官方地址:https://github.com/skyvers/skyve




七、Rintagi


Rentagi是一个聚焦于移动应用的低代码企业级应用构建平台。它也是完全免费和开源的解决方案,这使得它成为中小型公司的完美的解决方案。


Rentagi配备了丰富的复杂工具,用于快速构建应用程序以实现高生产率,它还为移动开发人员提供了丰富的开发人员友好型 API。


Rintagi官网:https://medevel.com/rintagi/


Rintagi代码仓库:https://github.com/Rintagi/Low-Code-Development-Platform




八、Opexava


OpenXava是一个低代码应用程序构建平台,主要侧重于生产力、简单性和可用性。


作为一个使用Java技术构建的跨平台系统,它运行在Linux和Windows服务器上。它可能看起来是一个遗留系统,但仍然是许多企业的主要选择。


OpenXava确保了高生产率、平缓学习曲线、一大批企业功能以及移动和平板电脑的响应式布局。


OpenXava是一个免费的开源社区版,但企业可以购买不同的额外功能版本。


OpenXava官方地址:


https://www.openxava.org/en/ate/low-code-development-platform




九、Convertigo


Convertigo是无代码/低代码平台之间的混合体,它旨在帮助业余/专业开发人员在短时间内创建企业就绪的应用程序和工具。


Convertigo为开发人员提供本地安装、云版本和 MBaaS 版本。


Convertigo具有移动应用构建器、可视拖放 UI、低代码后端、REST/XML 转换器、REST/JSON 转换器、管理员控制台等功能。


Convertigo提供完整的 PWA(渐进式 Web 应用程序)、iOS 和安卓移动开发支持。


Convertigo官方地址:https://www.convertigo.com/




十、Tymly


Tymly是一个业务有限的低编码平台,用于创建可扩展的服务器应用程序。它以MI许可开源发布。


Tymly 引入了一个蓝图概念,将业务流程、功能和工作流程封装到蓝图中。它拥有生态系统和蓝图库,可以保护大量的开发资源。


蓝图保存在 JSON 方案中,而数据则存储在 PostgreSQL 数据库中。


开发人员可以通过在 JSON 方案中定义其要求、业务功能和工作流程来编写蓝图。


Tymly官方地址:https://medevel.com/tymly-low-code/


Tymly代码仓库:https://github.com/wmfs/tymly/




十一、JUDO


JUDO.code 是另一个面向企业使用的低代码平台。在数据建模、UI 设计和开发方面,JUDO 比此列表中的其他低代码平台为开发人员提供了更大的灵活性。


JUDO 适用于 Windows、macOS 和 Linux,提供可安装包和二进制应用程序包。(*macOS安装程序即将推出)。


JUDO.code 门户为新手提供了丰富的文档和教程,以及广泛的用户指南和应用程序平台的安装说明。


JUDO官方地址:https://www.judo.codes/




十二、OpenCatapult


OpenCatapult是一个开源低码开发自动化平台。它通过管理自动化任务,帮助 DevOps 和管理员更好地控制其服务器。


不幸的是,OpenCatapult 仅适用于 Windows x64 平台,但开发人员正在计划在不久的将来发布 Linux 和 macOS 版本。


OpenCatapult官方地址:https://github.com/Polyrific-Inc/OpenCatapult/




十三、BudiBase


BudiBase 不仅仅是另一个低代码平台,它的目标与其他平台不同,因为它专注于为开发人员提供工具,以加快一个平台内的开发、部署和集成过程。


我们试用了一个多礼拜,BudiBase的生产力,可用性和快速部署能力给我们留下了深刻的印象。


BudiBase官方地址:https://github.com/Budibase/budibase




十四、Generative Objects(GO)平台


Go 平台是一家法国公司,致力于企业低代码开发平台。GO平台侧重于更好地控制应用程序生命周期、开发人员之间的协作,以及与其他平台、桌面、移动和 Web 开发的软件集成。


Go 平台采用基于模型的应用程序开发方法,在专注于解决方案而非工具时节省时间、金钱和精力。


GO官方地址:https://www.generativeobjects.com/




十五、Baserow


Baserow是一个引人入胜的工具,用于创建、管理数据库和即时构建数据库应用。Baserow配备了确保高生产率和可用性的功能。


由于Baserow是一个模块化的完整的 REST-API 无头系统,因此它吸引了移动开发人员的注意,将其用作应用的后端。


Baserow 处于积极开发状态,因此请继续关注更多功能。


Baserow官方地址:https://gitlab.com/bramw/baserow




十六、OS.bee


OS.bee 是企业免费开源平台,它整合了低代码和模型驱动的应用开发策略。


OS.bee由一家开发企业 ERP 系统超过 30 年的公司创建。


OS.bee 提供用于创建应用程序数据模型的可视模型和图表生成器。该系统由 Java 创建,并提供 Eclipse 安装和集成。


OS.bee官方地址:https://www.osbee.org/home/




十七、nuBuilder


nuBuilder 是一个免费开源的 RAD(快速应用开发),用于在几分钟内构建企业数据库应用程序。


nuBuilder是自托管的低代码工具,具有高度可定制的后端系统。它使用PHP、HTML、JavaScript与MySQL数据库。


nuBuilder官方地址:https://www.nubuilder.com/




十八、Metabase


Metabase是一个开源的面向数据的可定制仪表板,支持广泛的数据库后端,如MongoDB、MySQL、PostgreSQL、SQLServer、Oracle等。


Metabase提供了管理数据库记录、操纵数据、可操作记录的可视方法、支持连接、多个聚合、高级筛选和全文搜索。


Metabase是在几分钟内创建高生产率和企业可用性的高效数据库就绪仪表板的最终解决方案。


Metabase 充满了令人惊叹的视觉组件,其中包括:图表、地图、SVG 矢量地图、分析以及用户、开发人员和 DevOps 的丰富详细文档。


Metabase官方地址:https://medevel.com/metabase-low-code/


Metabase代码仓库:https://github.com/metabase/metabase




低代码开发作为一种更先进的生产力工具,越来越多的受到行业用户的关注,产品本身也在逐渐完善。未来低代码开发的发展会变的更好。 作者:广州蓝景 https://www.bilibili.com/read/cv16669110/ 出处:bilibili


最近低代码概念开始炒起来了,如果大家留意,最近各种开发者大会和技术大会,都会有低代码的专题。

与使用计算机编程语言构建应用程序的传统方法不同,低代码开发平台是使用图形向导来创建和构建软件的应用程序开发平台。因此,在许多情况下,低代码或无代码(几乎没有代码)这个名称是作为可视化开发工具来帮助设计人员进行拖放、组件浏览器和逻辑构建器的。

低代码/无代码的主要概念并不新鲜,它可以追溯到十多年前的无代码编程 (PWCT) 和类似系统。但是,这一概念在开发者社区中并没有那么可用或得到支持。如今,数十种低代码/无代码平台和服务涌入互联网;因为事实证明,这一概念不仅仅适用于快速项目的原型设计。

外媒 Medevel 整理介绍了供个人和企业使用的最佳开源低代码和无代码平台列表。具体如下:

1、Saltcorn

image.png

Saltcorn 是一个无代码数据库管理器 Web 应用程序。它配备了一个引人注目的仪表板、丰富的生态系统和视图构建器以及可主题化的界面。几乎没有编码经验的用户可以在几分钟内构建一个丰富的交互式数据库应用程序。公司也可以使用它来创建日常使用的工具并即时重新塑造它们。

Saltcorn 有一个令人印象深刻的示例应用程序列表,其中包括:博客、地址簿、项目管理系统、问题跟踪器、wiki、团队管理等。Saltcorn 采用 MIT 许可作为免费开源项目发布。

Saltcorn 官方地址:https://github.com/saltcorn/saltcorn

2、Joget DX

image.png

Joget DX 是一个低代码应用程序构建平台,可简化公司的数字化转型。它将业务流程自动化管理、工作流定制与低代码应用程序开发工具相结合。

Joget DX 可以在云端和本地运行。它有丰富的文档、易于使用的仪表板和可视化构建器,支持拖放和独立于操作系统和数据库。

3、Digdag

Digdag 是一款开源企业解决方案,旨在实现易于部署、多云设置和模块化的结构来构建和扩展业务应用。Digdag 拥有一系列企业功能,包括丰富的管理面板、多语言支持、错误处理、配置工具和版本控制工具。该解决方案采用Java和Node.js开发,支持 AWS、私有云、IBM 云和 Digital Ocean。

4、Stackstorm

Stackstorm 与此列表中的任何其他系统不同,它被设计为在一个平台内连接、管理和监控企业应用程序的 umbrella。

Stackstorm 专注于事件驱动方法、自定义工作流设计以及用户角色和权限。

方法很简单:事件驱动的自动化,通过丰富的日志记录系统提供传感器、触发器、每个定义的操作、规则、工作流和审计。

5、CUBA Platform

image.png

CUBA 平台是一个面向企业的开源(Apache 2.0)快速应用开发系统。它带有数十种工具作为 IDE、应用程序构建工作室、CLI 命令行界面和可靠的可扩展基础设施。CUBA 平台有一个丰富的插件系统,其中包含一个 BPM(业务流程管理)附加组件,需要花费一些时间来构建和安装。

6、Skyve

Skyve 是一个开源的业务软件构建平台。它支持无代码和低代码的快速应用开发。支持不同的数据库引擎:MySQL、SQL 服务器和 H2 数据库引擎。其开发人员目前正在努力支持PostgreSQL和Oracle。Skyve提供了丰富的 API 集,以及低代码开发应用构建向导。

Skyve 平台由丰富的生态系统组成,其中包括:

  1. 企业平台,

  2. 构建器应用程序,采用React Native构建原生移动应用,

  3. 与其他第三方服务集成的 Skyve 总线模块,

  4. Skyve Confidence:为TDD提供测试功能

  5. Skyve Cortex:

  6. Skyve  Portal:企业应用的 Web 门户扩展

  7. Skyve CRM:自定义构建Skyve CRM 应用程序

  8. Skyve Replica:在分布式 Skyve 实例之间提供无缝同步

7、Rintagi

Rentagi 是一个专注于移动的低代码企业级应用程序构建平台。它也是完全免费和开源的解决方案,这使其成为中小型公司的完美解决方案。配备了丰富的复杂工具,可用于快速构建应用程序以提高生产力,它还为移动开发人员提供了丰富的开发人员友好的 API。

8、Opexava

image.png

OpenXava 是一个低代码应用程序构建平台,主要关注生产力、简单性和可用性。作为一个使用 Java 技术构建的跨平台系统,它运行在 Linux 和 Windows 服务器上。它可能看起来像一个遗留系统(stated 2005),但它仍然是许多企业的首选。

OpenXava 确保了高生产力、较短的功能学习曲线、大量的企业功能以及完整的移动和平板电脑响应式布局。OpenXava 是一个免费的开源社区版,但企业可以购买不同的额外功能版本。

9、Convertigo

image.png

Convertigo 是无代码和低代码平台的混合体。它旨在帮助公民开发人员和认真的开发人员在短时间内创建企业级应用程序和工具。为开发人员提供本地安装、云版本和 MBaaS 版本。它具有移动构建器工具、可视化拖放 UI、低代码后端、REST/XML 转换器、REST/JSON 转换器、管理控制台等。

Convertigo 提供完整的 PWA(渐进式 Web 应用程序)、iOS 和 Android 移动开发支持。

10、Tymly

image.png

Tymly 是一个业务优先的低代码平台,用于创建可扩展的服务器应用程序。它是在 MIT 许可下作为开源项目发布的。

Tymly 引入了蓝图概念,将业务流程、功能和工作流封装到蓝图中。它有一个生态系统和蓝图存储,可以保护大量的开发资源。蓝图保存在 JSON 模式中,而数据保存在 PostgreSQL 数据库中。开发人员可以通过在 JSON 模式中定义他们的需求、业务功能和工作流来编写他们的蓝图。

11、JUDO

JUDO.codes 是另一个面向企业使用的低代码平台。在数据建模、UI 设计和开发方面,JUDO 为开发人员提供了比此列表中其他低代码平台更大的灵活性。

JUDO 可用于 Windows、macOS 和 Linux 的可安装包和二进制应用程序包。(* macOS 安装程序即将推出)。

JUDO.code 门户为新手提供了丰富的文档和一套教程。它还提供了广泛的用户指南以及应用程序平台的安装说明。

12、OpenCatapult

OpenCatapult 是一个开源的低代码 DevOps 自动化平台。它通过动态管理自动化的例行任务,帮助 DevOps 和服务器管理员更好地控制他们的服务器。

不过,OpenCatapult 仅适用于 Windows x64 平台,但开发人员正在计划在不久的将来发布 Linux 和 macOS 版本。

13、BudiBase

image.png

BudiBase 不仅仅是另一个低代码平台,它与这里的其他平台有着不同的目标,因为它专注于为开发人员提供工具,以加快一个平台内的开发、部署和集成过程。

14、Generative Objects(GO)Platform

Go Platform  是一家法国公司,致力于企业低代码开发平台。侧重于更好地控制应用程序生命周期、开发人员之间的协作,以及与其他平台、桌面、移动和 Web 开发的软件集成。

Go Platform 采用基于模型的应用程序开发方法,在专注于解决方案而非工具时节省时间、金钱和精力。

15、Baserow

image.png

Baserow 是一种用于动态创建、管理数据库和构建数据库应用程序的迷人工具。它具有确保高生产力和可用性的功能。

因为 Baserow 是一个模块化系统,它提供了一个完整的 REST-API 无头系统,所以它吸引了移动开发人员的注意,将其用作他们应用程序的后端。Baserow 正在积极开发中。

16、OS.bee

OS.bee 是一个免费的企业开源平台,它将低代码和无代码与模型驱动的应用程序开发策略相结合。该平台由一家专业打造企业ERP系统30多年的公司打造。

OS.bee 提供了用于创建应用程序数据模型的可视化模型和图表构建器。该系统是用 Java 创建的,并提供 Eclipse 安装和集成。

17、nuBuilder

nuBuilder 是一个免费的开源 RAD(快速应用程序开发),用于在几分钟内构建企业数据库应用程序。它是自托管的、低代码的,具有高度可定制的后端系统。它使用 PHP、HTML 和 JavaScript 和 MySQL 数据库。

18、Metabase

image.png

Metabase 是一个开源的面向数据的可定制仪表板,支持广泛的数据库后端,如 MongoDB、MySQL、PostgreSQL、SQL Server、Oracle 等。它提供了一个用于管理数据库记录、操作数据、操作记录的可视化方法、支持连接、多重聚合、高级过滤和全文搜索的层。它是在几分钟内为企业创建具有高生产力和可用性的高效数据库就绪仪表板的终极解决方案。

Metabase 包含令人惊叹的视觉小部件,其中包括:图表、地图、SVG 矢量地图、分析以及为用户、开发人员和 DevOps 提供的丰富的详细文档。


目前市场上有多个专业做跨平台开发的框架,那么对开发者来说究竟哪一个框架更符合自己的需求呢?笔者特地总结对比了一下不同框架的特性。


国内外笔者选择了一共 5 个主流的测评对象,分别是 RN,Flutter,Ionic,NativeScript,以及用友 APICloud 团队开发的 AVM。


目前来看比较火的应该是 Flutter,次之 RN,具体还要看企业的应用场景和领域,AVM,Ionic,NativeScript 在不少企业和个人开发者中也使用率较高。


一,安装环境,开发工具对比。

任何框架的安装环境都代表了这个框架对新手是否友好。所以笔者特别从安装环境,开发工具上介绍各个不同框架的情况,来比较一下,新人上手的成本和门槛,笔者是 MacOS 用户,以下全文介绍的都是在 Mac 下的开发环境和开发工具。


1.1 React Native

RN 是 Facebook 于 2015 年 4 月开源的跨平台移动应用开发框架,到现在已经发展了 6 年多了,目前最新版本是 0.66,20211年12月10日还有更新发布小版本,整体来看框架还是非常有生命力的。官网:https://reactnative.dev/


我们来看安装环境和开发工具,从最新的官网可以看到,如果只是上手的话还是比较方便的,只需要本地安装 Nodejs 12 版本以上就可以了。然后借助官网推荐的 Expo 工具可以快速搭建起来本地的一个开发环境。因为笔者是 MacOS 用户,之前安装过 Xcode 所以整体安装起来还算是流畅。


首先是 Nodejs 的命令行工具安装:


yarn global add expo-cli

这里不说配置源什么的了,如果慢的话,可以切换国内 yarn 源,安装完毕后,直接使用


expo init AwesomeProject

安装项目,项目安装完毕后进入项目执行


yarn start

会重新安装一次 expo-cli,之后本地启动项目,打开 dev 的浏览器界面如下,最左边可以看到打开的是本地的 expo 得调试台,选择本地 LAN 网络,然后点击 Run on iOS simulator,启动了笔者本地的一个 iPhone 8 的设备,然后看到了现在的界面,最右边是本地生成的模板代码。




编辑工具笔者用的 vscode,官方也是推荐 vscode。使用脚手架的生成的目录和正常的 React 项目差不多,入口在 App.tsx 文件,支持修改后的 hotRload,整个流程走下来对前端开发来说门槛不高,至少到调试开发阶段,如果只单纯涉及到 UI 编写,配置完直接就可以开始干活了。


1.2 Flutter

Flutter 从出生(2018 年发布 v1.0)到现在也 3 年多了,是 Google 力推的跨端开发框架,和 RN 不同的是开发语言用的 Dart 而不是 JavaScript,官网在这里:https://flutter.dev/


最近几年发展的比较猛,各大公司都在主端业务引入,包括笔者所在的公司也有很多业务使用 Flutter 进行了 UI 部分的开发,下边笔者就简单介绍一下 Flutter 的开发环境和工具。


首先肯定是需要下载安装完整的 Xcode 和 Xcode developer tools 开发工具,默认大家都装了,之后不在赘述。


需要先下载 Flutter 的 SDK:https://docs.flutter.dev/development/tools/sdk/releases


解压缩 SDK 后设置对应的 SDK 环境变量地址:


cd ~/development

 

unzip ~/Downloads/flutter_macos_vX.X.X-stable.zip

 

export PATH="$PATH:`pwd`/flutter/bin"

如果过程中遇到问题可以使用 flutter doctor 来查看问题进行修复,有报错或者缺失环境,会有提示你如何修改,比较方便。


如果 flutter doctor 没有报错的话,那么 flutter 命令行就安装完成了,我们来看一下开发体验。


首先笔者都是用的 vscode 进行开发的,需要安装官方推荐的 vscode 插件,直接在插件市场搜索 Flutter 安装就可以了,之后就可以通过插件新建 Flutter 新项目了。


本地配置好对应的 iOS 模拟器,在 vscode 左边点击调试按钮选择对应的模拟器,就可以直接进行开发调试了。




截图是笔者做的一个小应用项目,目录结构也比较简单,在 lib 目录下的 main.dart 就是入口文件,唯一缺憾的就是 Flutter 对前端开发的语法不友好,Dart 虽然也不复杂,但是和 JavaScript 还是有比较多的出入的,需要一定时间的掌握和学习,而且对应的不少系统类库用法也不太一样。


整体来说比 RN 要配置的复杂一些,对前端开发来说,Dart 语法是一个挑战,编写应用除了 Dart 之外还需要理解 Flutter 自己的状态管理机制,widget 概念以及对应的 material 相关库的功能才能上手,对新人门槛还是比较高的。


1.3 Ionic

Drifty Co.在 2013 年推出了 Ionic,可以说是混合式开发(hybrid)的鼻祖了,他推出之前大家一般都是在 PhoneGap 下开发混合式开发应用,Ionic 一开始是和 Angular 高度集成的,现在已经支持了 React 和 Vue 集成,以及可以使用 Cordova 的库,生态整体来说还是不错的,优点是 Web 技术为主,缺点也很明显,Webview 的表现和性能与 RN,Flutter 那种编译后转 Native Code 的性能对比肯定要差一些,一些 Web 不支持的特性需要编写大量的原生插件来支持。


下边来看一下他的安装环境和开发工具部分体验,首先安装全局的 cli 命令行工具,Nodejs 版本 12.14 以上。


npm install -g @ionic/cli

 

ionic start myIonicApp blank --type vue

 

ionic serve █

看起来还是比较简单,但是需要安装的东西比较多,建议提前把 npm 设置成国内源,否则要等很久很久很久。


使用 serve 之后,其实本地就是起了一个 webpack-dev-server。




打开 8100 地址,其实就是一个正常的 web 项目,熟悉 vue 的同学一眼就能看出来了,IonicVue 是作为 Vue 的一个插件存在的。



那么看一下如何在模拟器上预览吧,首先需要安装下边两个工具,是前置依赖。


npm install -g ios-sim

 

brew install ios-deploy

然后在项目目录先 build 项目,然后我们直接使用 Ionic Cli:


npm run build

 

ionic capacitor run ios -l --external

选择一个本地的模拟器,之后就可以看到界面了,但是因为笔者本地的 Xcode 是 11 的老版本,会报编译错误,所以需要升级到最新的 Xcode12 以上版本,但是笔者的 Xcode 升不上去了,因为笔者的电脑系统不支持更高级别的 Xcode,所以后边改成用 android 调试。


笔者之前安装过 android studio,需要更新 SDK 到最新,然后在 tools 里找到 AVD 面板,创建一个模拟器。




启动后需要 adb devices 检查一下,如果设备在线,再进行下一步:


ionic capacitor add android

 

ionic capacitor run android

这一步第一次非常非常慢,应该是和 ios 一样,需要编译成 apk 再同步到模拟器上。




最后的效果就是这样,看到日志的最后几行就是 deploy 了一个 debug 的 apk 到模拟器了。


整体来说,Ionic 的安装步骤不算复杂,如果网络比较好,整个过程不到半小时,如果是最新版的 MacOS 系统,升级 Xcode 到最新版应该也比较流畅。看了一下官网,debug 方式就是利用 chrome 或者 safari 的网页调试工具调试,所以大家理解,这个 Ionic 套壳了 webview,调试方法和 webview 调试方法是一致的。


1.4 NativeScript

NativeScript 是由 Progress 公司开发的,已经专注于开发工具领域 30 多年的上市公司。整个 NativeScript 的能力和它的名字一样是专门为了 iOS 和 Android 而开发的,但是写法却是 JavaScript。和上面说的 Ionic 不一样是套壳 Webview,NativeScript 还是在 Js 和 Native 之间打通了一座桥梁,真正的使用 Native Code 进行页面的渲染,这也使的它的表现能力比 Ionic 要强,从官网上看他也支持不同的 Web 框架写法,比如 Vue,React,包括 TS 支持,当然用原生 JS 和 HTML 也可以编写,官网:https://nativescript.org/。


下边看一下他的安装环境和开发工具体验,依然是 MacOS 系统环境搭建。


同样是需要先安装 NativeScript 的 Cli 工具:


npm install -g nativescript

过程中会遇到从 codeload 下载依赖,可以设置代理或者修改 codeload 的 host 解决 ,笔者就遇到了,但这不是 nativescript 的问题 :)。


140.82.114.9 codeload.github.com

 

使用 ns 命令创建 NativeScript 项目:

 

ns create myNativescriptApp

选择创建一个 Vue 模板的空项目,命令行会交互式的引导你选择,用 Vscode 打开就可以编辑,目录结构和普通的 Vue 项目基本一样,入口在 app 目录下的 app.js,Vue 实例被 nativescript-vue 替代。




Run the project on multiple devices:

 

` `$ ns run ios

 

` `$ ns run android

 

Debug the project with Chrome DevTools:

 

` `$ ns debug ios

 

` `$ ns debug android

我们看一下在 android 下是什么样子的,iOS 也是因为本地 Xcode 版本太老跑不起来,第一次编译时间都比较久,需要耐心等待。




运行起来后和 Ioinc 类似,也是有个 debug 的 apk 被装到模拟器里了,测试了一下本地修改前端代码,webpack 本地会进行 watch 和 sync 到模拟器,实现热更新,速度还可以,但是需要频繁的冷起 app 才生效。


1.5 AVM

AVM 是由 APICloud 研发的一套跨端的 JavaScript 框架,全称(APICloud-View-Model),写法类 Vue 也兼容 React JSX,有双向绑定,组件化和状态管理支持,并配套了系统级别的 API,支持云端编译和发布到不同的平台,官网是:https://www.apicloud.com/AVMframe,有自己的开发 IDE 支持,我看今年 12 月份还有在更新 SDK (2021-12-3),其中 JS Framework 部分是全部开源的,包括 JS 组件库。


我们来看一下他的安装环境和开发工具,首先需要注册 APICloud 账号,因为他们继承了云端编译的功能,而且 ide 也是需要账号登陆同步代码。然后下载官网的APICloud Studio 3,如果是 Mac 系统一定要注意,不能直接在 download 目录打开,需要复制到应用程序文件夹内再用。


下载后打开,熟悉 vscode 的同学应该能发现,这是一个基于 vscode 二次开发的 IDE。




入口文件是 pages 目录下的 stml 代码文件,在上面右键实时预览可以在右边直接看效果,需要注意的是,这里只能预览标准 H5 的组件及页面效果,不能预览原生 API 的功能,所以推荐要真实开发的话,需要使用真机安装 AppLoader 进行调试,类似 RN 的 Expo。


AppLoader 的下载地址:https://docs.apicloud.com/Download/download#apploader


装上之后保持 Mac 和手机在同一网络下,用 AppLoader 扫描 IDE 中的二维码就可以实时看到真机效果了。




在真机上像网络,wifi 这些系统级别 API 就可以正常使用和预览了,报错也会有提示,开发体验很像小程序。


整体来说开发环境和开发工具是一体的,流程比较顺畅,全程也没有鼓捣任何命令行工具,但要根据官网文档的引导进行使用。


1.6 总结

经过对 5 个框架的初步讲解,大家可以看出来基本上大家的开发流程分成了两类,一类是直接把 debug 包装到手机上进行开发和调试,比如 Ioinc,NativeScript,还有 Flutter,另外一类则是需要通过一个额外的 AppLoader 进行辅助调试,比如 AVM,RN,当然后者也支持直接安装包到真机,但是 debug 的方式还是有所区别。


在开发工具上,基本上大家都可以使用 Vscode 进行开发,都支持 hotReload 功能,有些提供了自己的 IDE,集成化程度比较高,比如 AVM。


二,性能比较

下边笔者就从性能角度讲一下不同框架的对比情况,这个可能是大家最关注的了。笔者通过编写一个简单的超长的 viewlist 来进行横向比较,代码笔者放到这里了,https://github.com/xiaojue/ListViewDemo,后边大家可以去参考,实现一个 1000 行的图文列表,左图右文。


RN 效果:






Flutter 效果:






Ionic 效果:






NativeScript 效果,这里 NativeScript 开发体验最烂,后边会在 API 分析部分细说:






AVM 下的效果:






代码实现很简单,也没有做特殊优化,没有滚动加载,没有交互事件,直接 1000 条数据搞满,使用的都是官方 list 组件。


性能我们直接 adb shell 进入设备后,使用 top 命令来观察 app 进程情况:




其中帧数我们用 android 的开发者功能,GPU 截图来标识,编译速度直接用 time 命令统计, 均采用第一次 debug 启动耗时的时间。


比如:


time ns debug android


框架 内存 CPU 使用率 FPS debug 编译速度

RN(expo go) 300M 78%-116% 0m32.229s

Flutter 190M 37%-43% 0m21.336s

Ionic 138M 49%-65%

0m55.549s


NativeScript 147M 19%~20% 0m27.862s

AVM 122MB 6%-10% 0m0.094s

简单分析一下,首先是内存占用,基本都是 100MB 以上,RN 和 Flutter 最多,AVM 最少。然后是 CPU 占比,笔者一直下拉 list,看 CPU 占用率,其中 RN 是最高的,但是它的 fps 却很低,这说明 cpu 占用率越高说明计算越多,但是 fps 底说明没有卡顿,性能更好。


比如我们看 Ionic 的 cpu 占用只有 RN 的一半,但是 fps 却特别高,有很明显卡顿。所以我们可以说 RN 的性能比 webview 渲染的 Ionic 要好很多,包括 NativeScript 和 AVM 也是这个道理,cpu 占比越高,而 fps 越底,那么性能就越好,可是 cpu 占用高也有个问题就是会比较费电…


最后我们再看编译时间,这关系到调试体验,这里面 AVM 最快,基本是毫秒级同步到真机,其他基本都是秒级的,需要跑 build。当然 Expo 和 AVM 都是有前置 Loader 的,所以肯定比没有 loader 程序的快一些。AVM 笔者也不太清楚为什么这么快,这确实是让笔者很吃惊,但是有一点,AVM 在笔者的 android 模拟器上安装失败,所以笔者是用真机测评的,可能会有一些影响,真机的性能更高一些。


三,是否支持多端编译(含小程序)

这里的多端不仅仅指 android,ios,h5,更包含了是否支持国内的小程序编译。因为很多公司目前的业务场景都是需要在不同的 APP 里跑的,所以是否支持多端对我们国内用户来说很重要,笔者特意增加了这一对比项。另外目前 PC 端的编译各家也有支持,所以还另外增加了 windows,macOS 平台的对比。


框架 Android iOS H5 小程序 windows desktop

macOS


desktop


React Native √ √ √ alita,remax,Taro react-native-windows react-native-macOS

Flutter √ √ √ MPFlutter √ √

Ionic √ √ √ X √ √

NativeScript √ √ X X X X

AVM √ √ √ √ X X

整体调研的情况如上图,对勾的部分就是官网直接支持编译,叉号的意思就是官方不支持,也没有什么比较成熟的开源解决方案,而单独写了一些框架支持的比如 RN,Flutter 是有一些还算成熟的开源解决方案可以使用的。


整体来看,如果只开发 Android 和 iOS 应用,这五个框架都没什么问题,如果要支持小程序和桌面软件则要考虑更多,目前来看 RN 和 Flutter 生态是最完整的,次之是 Ionic,当然如果您是以微信小程序为主的开发者并不考虑 desktop 的情况下,那么 AVM 可能是更好的选择。


四,生态情况

4.1 开源生态,流行度


我们直接用 NPMCompare 来对比,因为 Flutter 和 AVM 没有在 NPM 上有对应的包,后边笔者单独再列。




下载量上比,RN 遥遥领先,Ionic 和 NativeScript 都不够看, RN 绝对第一,Ionic 比 NativeScript 好一点,从 issues 上来看,NativeScript 好一点,但是可能是因为用户太少导致的。Ionic 和 NativeScript 全加起来,还不如 RN 一个零头。


我们再看 Flutter 和 AVM,因为没有找到对应的包和下载量,我们摘取 statista.com 的数据来看一下 https://www.statista.com/statistics/869224/worldwide-software-developer-working-hours/。




可以看出到得出的数据和我们上边的结果类似,Ionic 和 NativeScript 的总份额 2021 年只有 16%+5%=21%,Flutter 第一 42%, RN 第二 38%。可以看到 Flutter 从 2019 年到 2021 年逐步在上升,最终在 2021 年反超 RN。






以上是几个主要框架的主仓库的对比情况,数据来自 https://www.githubcompare.com/ 从中可以看出来,从 stars 和 forks 上来说 Flutter 和 RN 基本就是老大和老二,从 open issues 上看 RN 比 Flutter 更优,时间上看大家都是 7,8 年前开始做的,更新情况也差不多。


再从搜索引擎热词上做一下分析。




从 Google Trends 的结果来看,国内 apicloud,ionic,nativescript 的热度差不多,react native 和 flutter 今年对比来看,国内更多的人开始转向 flutter。


4.2 API 支持,组件丰富程度


这部分从 API 层面对比五个框架对原生能力的支持情况和组件支持的情况。


前面笔者简单的开发了个 list 功能,我们下边对比下各个框架的基础组件个数(含布局组件)和 API 能力。


框架 组件个数 系统 API/Plugin 个数 开发体验

RN 34 33 React 无缝切入

Flutter 171 104 Dart 语法,有一定门槛和适应时间

Ionic 90 291 支持 React,Vue,Angularjs,JS,TS 开发

NativeScript 31 87 实时调试能力太弱

AVM 31 219 实时调试能力强,类 Vue 语法兼容 React JSX

来源参考:


RN 组件:https://reactnative.dev/docs/components-and-apis


RN API:https://reactnative.dev/docs/accessibilityinfo


Flutter 组件:https://docs.flutter.dev/reference/widgets


Flutter API:https://api.flutter-io.cn/


Ionic 组件:https://ionicframework.com/docs/components


Ionic API:https://ionicframework.com/docs/native


NativeScript 组件:https://docs.nativescript.org/ui-and-styling.html


NativeScript API:https://docs.nativescript.org/api-reference/index.html


AVM 组件:https://docs.apicloud.com/apicloud3/


AVM API:https://docs.apicloud.com/Client-API/api


数据上虽然差别比较大,比如 RN 的 API 和组件数虽然少一些,但是都是按模块划分的。比如某单个 API Class 下其实是有不少方法可以实现很多能力的。这里只列举了数量,只是提供了一个比较粗略的,对学习成本的一个初步直观的感觉,真的够不够用还是需要真实开发过复杂应用才有绝对话语权。


笔者觉得在开发体验上,Flutter 是独一档的。因为 Dart 和 TS,JS 都不太一样,整个 UI 开发概念和前端还是有一些理念冲突。其他使用 JavaScript 技术开发的框架,AVM,RN,Ionic 其实都还不错。但是 Ionic 支持使用各种不同 JS 库来开发,比如 React,Vue,NG 等,而 AVM 支持 Vue 、react 语法特性, RN 则必须是 React。NativeScript 虽然也支持不同的前端框架开发,但是整个开发体验则是最差的,他的实时编译,debug 功能以及布局系统真的很烂,笔者这里不推荐再入坑了,用户少真的是有原因的,比如笔者这个初学者,看完他们的布局文档就直接给劝退了。


而且纵观所有框架,文档写的最细致还是 RN 和 Flutter,AVM 这三家。但是 RN 和 Flutter 本土化程度不够, Ionic 和 NativeScript 则是国内资料比较少且文档比较糊弄,而且都很久不更新了。


五,总结

虽然前面笔者从不同的角度分析了各个框架的情况,比如上手,开发环境以及简单的性能对比,生态情况等。但是对于这些框架来说,其实还有很多研究的空间,这篇文章只是客观的记录了笔者对不同框架初次上手和调研情况的一个过程。所以难免有一些地方不够全面,但已基本反映出现状。


从性能上看 AVM 的开发体验和编译速度,性能表现都非常好,虽然是国产的框架但是不比国外的要差,其次是 Flutter,RN,最后是 Ionic 和 NativeScript。


从开发体验上来说,比较舒服的是 RN,Ionic 这两个,其次是 Flutter 和 AVM,Flutter 是因为 Dart 语法,但需要单独学习,中小企业选型以及个人开发者需要考虑;而 AVM 则不支持 TS 和其他语言框架,只支持 JS 语法。最差的是 NativeScript,基本上没法实时调试,API 也非常的不友好。


总结下来,笔者觉得 2021 年最火的当属 Flutter,已经赶超了 RN。整体上看国内外用户目前的选择和份额也大部分被 Flutter 和 RN 瓜分殆尽。其他框架中 AVM 和 Ionic 各有优势,但是从使用体验,上手难度,社区情况来看,国内的 AVM 肯定更适合国内开发者一些,毕竟有本土化,云端集成,而且 debug 体验也很惊艳。


所以大厂直接上 Flutter 是没有问题的,Dart 没有太大难度,这部分成本不是问题。而其他公司和个人开发者如果做国内市场选择 AVM,RN 还是比较合适的(相比较 NativeScript 和 Ionic,AVM 天然支持国内的小程序,是重要加分项,而 RN 的文档,生态则比较多),最后如果考虑 desktop 的适配,那么 Flutter 看起来就更合适一些了。


点击下方链接:https://www.apicloud.com/index?uzchannel=272



---------------------

作者:浪里行舟

来源:CSDN

原文:https://blog.csdn.net/howgod/article/details/122243817

版权声明:本文为作者原创文章,转载请附上博文链接!

内容解析By:CSDN,CNBLOG博客文章一键转载插件

————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/admans/article/details/139640821


单点登录(SSO),英文全称为 Single Sign On。 SSO 是指在多个应用系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统。SSO 服务用于解决同一公司不同业务应用之间的身份认证问题,只需要登录一次,即可访问所有添加的应用。


单点登录的前提条件要做用户统一身份管理,即统一用户ID。比如阿里云应用身份服务IDaaS(英文名:Alibaba Cloud Identity as a Service,简称IDaaS)是阿里云为企业用户提供的一套集中式身份、权限、应用管理服务。市场上有很多类似的统一身份管理产品叫5A,提供集统一账户管理(Account)、统一身份认证(Authentication)、统一授权管理(Authorization)、统一应用管理(Application)、统一审计管理(Audit)。


本文重点介绍统一身份认证(Authentication),有的也叫单点登录SSO,目前主流的SSO技术有JWT、CAS、Oauth2、SAML等。


一、基于JWT单点登录

Json web token ( JWT ), 是一种用于双方之间传递安全信息的简洁的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的方法用于通信双方之间以 Json 对象的形式安全的传递信息,该 token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。


业务系统可以快速的接入IDaaS(身份服务中心)平台,从而完成单点登录。并且JWT支持从SP(Service Provider 业务系统)发起单点登录请求,跳转到IDaaS平台,进行登录,再跳转回业务系统完成JWT令牌认证和业务系统的登录。同时, 也支持从IDaaS平台直接发起单点登录请求,传递JWT令牌后, 在业务系统进行验证,完成登录。两种方式主要共同点在于整个JWT的认证流程(后半截)是相同的,都需要业务系统开发JWT令牌验证和解析的接口,并且需要根据解析出来的用户子账户信息,判断用户是否为该业务系统用户。


以下是基于JWT进行单点登录SSO的原理:




图中:IDaaS指用户身份认证中心,SP指业务系统。


上述时序图阐述了基于JWT发起SSO登录请求时的基本流程,该流程主要分为以下6个步骤:


1)用户通过浏览器访问 IdaaS(户身份认证中心)应用服务 。


2)浏览器向IDaaS发起单点登录请求。


3)IDaaS 生成 JWT token 令牌发送到业务系统。


4)SP(业务系统)获取到 token 令牌,用提供的插件或方法解析验证 JWT token 令牌,解析成功获取到用户信息并验证用户是否存在于业务系统中。


5)业务应用服务器创建自己系统的请求会话,然后跳转到指定路径。


6)浏览器显示应用页面,完成sso登录。


验证通过:业务系统重定向到用户首页,或指定的二级页面。


验证失败:业务系统拒绝登录并页面提示错误信息。


参考:JWT 模板使用指南 - 应用身份服务 - 阿里云


二、基于CAS单点登录

CAS (Central Authentication Service)中心授权服务,是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。


使用CAS 标准时,首先是由 CAS Client 发起, CAS Client 会重定向到 CAS Server进行登录,由 CAS Server 进行账户校验且多个 CAS Client 之间可以共享登录的 session ,Server 和 Client 是一对多的关系;


从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client 。 CAS Server 需要独立部署,主要负责对用户的认证工作; CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。


下图是标准 CAS 最基本的协议过程:




 


CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求, CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket。如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。


用户在上图流程中的第 3 步输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证。之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份核实,以确保 Service Ticket 的合法性。


在 IDaaS 中, CAS (标准)应用模板实现了标准的 CAS 流程。它充当一个 CAS Server的角色。当 CAS Cient 决定使用IDaaS作为 CAS Server 时。在登录认证时需要使用 IDaaS 系统中公司的主账号,密码进行认证。


参考:CAS - 应用身份服务 - 阿里云


三、基于OAuth 2.0单点登录

OAuth 2.0的草案是在2010年5月初在IETF发布的。OAuth2是一个授权协议, 主要用来作为API的保护, 我们称之为STS(安全令牌服务, Security Token Service)。 但是在某些情况下, 也可以被用来实现WEB SSO单点登录。一般的流程是用户把发起页面的URL和state参数关联上, 并保存在SP(业务系统)本地,用户登录后, 可以获取一个Code, 利用Code拿到AT(Access Token) 后, 可以利用这个AT获取用户信息userinfo, 进而从state 中, 获取到对应的原始URL,并跳转到这个URL, 从而实现登录到一个业务应用SP的效果。 本文档详细描述了这个SSO过程。




图中:IDP指身份提供者,SP指业务系统。


参考:OAuth2.0模板使用指南 - 应用身份服务 - 阿里云


OAuth 2.0 的一个简单解释 - 阮一峰的网络日志


OAuth 2.0 的四种方式 - 阮一峰的网络日志


四、基于SAML协议单点登录

在SAML协议出现之前,传统Web应用系统单点登录大都通过Cookie来实现,但由于浏览器的安全限制,只有同一个域名下的系统才可以共享Cookie,在云计算大行其道的今天, 该方案无法解决像SaaS这种跨多个域名系统之间的认证和授权问题,于是SAML协议应运而生。


SAML(Security Assertion Markup Language 安全断言标记语言)是一个基于XML的开源标准数据格式,为在安全域间交换身份认证和授权数据,尤其是在IDP(身份提供者)和SP(业务系统)之间。SAML是OASIS(Organization for the Advancement of Structured Information Standards 安全服务技术委员会)制定的标准,始于2001年,其最新主要版本SAML 2.0于2005年发布。


作为一种流行的SSO协议, SAML同时支持IDP发起和SP发起, 也就是可以在登录门户后,跳转到任意一个应用, 也可以从一个应用发起,跳转到IDP, 登录认证后,再跳转回这个应用, 继续SSO。 二者都是SSO, 流程的前半部分参数不同, 后半部分是很相似的。




 


图中:IDP指身份提供者,SP指业务系统。


用户请求SP资源,SP生成SAML请求,IDP接收并解析SAML请求并进行用户认证后返回SAML响应,SP接收并解析SAML响应后,提起其中的令牌Assertion, 提供被请求的资源给用户使用。


参考:SAML 模板使用指南 - 应用身份服务 - 阿里云


「干货」浅析SAML标准协议(一)


单点登录技术如何选择

JWT、CAS、Oauth2、SAML这几种单点登录方式,如何选择?主要从适用场景和集成难易程度两个方面考虑。从开发集成难易程度方面考虑,JWT最简单,CAS次之,Oauth2稍复杂,SAML最复杂。阿里云IDaaS推荐优先使用JWT方式,集成简单,业务系统改造较少,尤其适用于前后端分离架构下已经使用了JWT技术的系统。Oauth2是目前互联网最流行的单点登录技术,比如微信平台、QQ平台、钉钉平台等,但在企业应用方面,Oauth2使用远没有CAS多,尤其是企业存在大量的存量系统,有的是前后端分离架构,基于token认证鉴权,有的是传统SOA架构,基于中间件session会话认证鉴权,所以在企业内部改造Oauth2的成本比较高。SAML是协议最复杂的一种SSO,安全性最好,仅仅适用于web,开发集成难度高,一般企业内部的应用系统不推荐使用。总之,在可满足业务需求的情况下,优先选择集成简单的单点登录SSO技术,推荐顺序为JWT、CAS、Oauth2、SAML。

————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/wxz258/article/details/125832434


一、平台介绍

  • JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,后端基于经典组合 Spring Boot、Shiro、MyBatis,前端采用分离版 Vue3、Vite、Ant Design Vue、TypeScript、Vben Admin 最先进技术栈,或者 Beetl、Bootstrap、AdminLTE 经典开发模式。

  • 提供在线数据源管理、数据表建模、代码生成等功能,可自动创建业务模块代码工程和微服务模块代码工程,自动生成前端代码和后端代码;包括核心功能模块如:组织机构、用户、角色、岗位、管理员、权限审计、菜单及按钮权限、数据权限、模块管理、系统参数、字典管理、系统监控、数据监控等;扩展功能如:工作流引擎、内容管理、消息推送、单点登录、第三方登录、在线作业调度、对象存储、可视化数据大屏、报表设计器、在线文件预览、国际化、全文检索、统一认证服务等。

  • 本平台采用松耦合设计,微内核和插件架构,模块增减便捷,支持集群,支持 SaaS 架构,支持读写分离、分库分表、Spring Cloud 微服务架构;并内置了众多账号安全设置、密码策略、系统访问限制等安全解决方案,支持等保评测。

  • 本平台专注于为初级研发人员提供强大的支持,使他们能够高效、快速地开发出复杂的业务功能,同时为中高级人员腾出宝贵的时间,专注于更具战略性和创新性的任务。我们致力于让开发者能够全心投入业务逻辑中,而将繁琐的技术细节交由平台来封装处理。这不仅降低了技术实现的难度,还确保了系统架构的稳定性和安全性,进而帮助企业节省人力成本、缩短项目周期,并提高整体软件的安全性和质量。

  • 2013 年发布以来已被广大爱好者用到了企业、政府、医疗、金融、互联网等各个领域中,拥有:精良架构、易于扩展、大众思维的设计模式,工匠精神,用心打磨每一个细节,深入开发者的内心,并荣获开源中国《最受欢迎中国开源软件》多次奖项,期间也帮助了不少刚毕业的大学生,教师作为入门教材,快速的去实践。

  • 2019 年换代升级,我们结合了多年总结和经验,以及各方面的应用案例,对架构完成了一次全部重构,也纳入很多新的思想。不管是从开发者模式、底层架构、逻辑处理还是到用户界面,用户交互体验上都有很大的进步,在不忘学习成本、提高开发效率的情况下,安全方面也做和很多工作,包括:身份认证、密码策略、安全审计、日志收集等众多安全选项供您选择。努力为大中小微企业打造全方位企业级快速开发解决方案。

  • 2021 年终发布 Vue3 的前后分离版本,使得 JeeSite 拥有同一个后台服务 Web 来支撑分离版和全栈版两套前端技术栈。

  • 支持国产化软硬件环境,如国产芯片、操作系统、数据库、中间件、国密算法等。

#二、核心优势

  1. JeeSite 非常易于二次开发,可控性高,整体架构清晰、技术稳定而先进、源代码书写规范、经典技术会的人多、易于维护、易于扩展、安全稳定。

  2. JeeSite 功能全,知识点非常多,也非常少。因为她使用的都是一些通用的技术,通俗的设计风格,大多数基础知识点,多数人都能掌握,所以每一个 JeeSite 的功能点都非常容易掌握。只要您学会使用这些功能和组件的应用,就可以顺利的完成系统开发了。

  3. JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,封装不是限制您去做一些事情,而是在便捷的同时,也具有较好的扩展性,在不具备一些功能的情况下,JeeSite 提供了扩展接口,提供了原生调用方法。

  4. 大家都在用 Spring,也在学习 Spring 的优点,Spring 提供了较好的扩展性,可又有多少人去修改它的源代码呢,退一步说,大家去修改了 Spring 的源码,反而会对未来升级造成很大困扰,您说不是呢?这样的例子很多,所以不要纠结,我们非常注重这一点,JeeSite 也一样具备强大的扩展性。为你解决升级的困扰。

为什么说 JeeSite 比较易于学习?JeeSite 很好的把握了设计的 “度”,避免过度设计的情况。过度设计是在产品设计过程中忽略了产品和用户的实际需求,反而带来了不必要的复杂性,而忽略了系统的学习、开发和维护成本。

  • 至今 JeeSite 平台架构已经非常稳定,我们持续升级,并不失架构的先进性。

  • JeeSite 精益求精,用心打磨每一个细节,界面 UI 操作便捷,体验性好。

  • JeeSite 是一个专业的平台,是一个可以让您使用放心的平台。

  • 社区版基于 Apache License 2.0 开源协议,永久免费使用。

更多优势,请继续阅读下一章节:JeeSite 的架构特点