# onecode低代码引擎 **Repository Path**: cplus/ocstudio ## Basic Information - **Project Name**: onecode低代码引擎 - **Description**: onecode低代码引擎 编译运行环境 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: http://cluster.raddev.cn:9090/RAD/DSMdsm/projectManager - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 44 - **Created**: 2023-04-06 - **Last Updated**: 2023-04-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### OneCode低代码引擎 随着低代码概念的火热,相关的技术及产品也是层出不穷,不管是老牌行业软件厂商还是开放平台厂商,不论是互联网行业企业SAAS软件新动向还是新兴的低代码创新产品服务,都在第一时间打出了低代码这张牌。各个平台虽然各有优势,但大多又是自成体系,真正在企业方面进行选择时却一时难以抉择。对于低代码平台的功能评价,以及各平台组件间的互联互通则成为了市场上迫切需求。 ### 在线演示地址 http://cluster.raddev.cn:9090/RAD/DSMdsm/projectManager ### 产品白皮书 [OneCode开源低代码引擎白皮书](https://www.toutiao.com/article/7195806447953904128/?log_from=117e4a6cca10e_1677482293750) 在刚刚过去的2022年,在平台互联互通的方面,阿里在第二季度推出开源引擎 “LowCodeEngin”,国家队信通院也应市场需求在第四季度推出了《低代码开发平台通用技术要求》,针对低代码相关概念以及功能点新型了进一步的规范和梳理。 在全面开放的大背景下,CodeBee团队,推出了基于开源LGPL协议 低代码引擎(LowCodeEngine)。 ![输入图片说明](https://foruda.gitee.com/images/1677484365415989085/c0152cdf_8526535.png "屏幕截图") ### 产品组成 低代码引擎,由界面设计器、OneCode通码框架以及,DSM领域建模工具 三部分支撑体系相互支撑的部分来组成,通过开放标准的组件协议完成相互继承支持。 ![输入图片说明](https://foruda.gitee.com/images/1677484419428814634/9d2fd8b6_8526535.png "屏幕截图") ### (1) 视图设计器引擎 设计器,采用的是拖拽引擎+插件的构造模型,用户可以通过开放的低代码协议编写插件。支持JS和JAVA两种扩展语言。样式构建提供了标准CSS3编辑器,支持事件动作以及函数动态扩展。支持自定义函数库扩展,支持阿里字体图片等资源库。 ![输入图片说明](https://foruda.gitee.com/images/1677484450797462866/34af449a_8526535.png "屏幕截图") ### (2)OneCode通码编辑器: OneCode,是一款为低代码语言定制的统一语法体系,采用Java语言作为原生语言,运行在JVM环境中,用户可以通过Java语言与低代码应用进行交互,也可以通过Java语言完成引擎插件,调用代码引擎完成编译部署应用。 ![输入图片说明](https://foruda.gitee.com/images/1677484498028647779/68f60265_8526535.png "屏幕截图") ### (3)DSMEngine领域建模 ![输入图片说明](https://foruda.gitee.com/images/1677484512876418738/7cd9c270_8526535.png "屏幕截图") DSM模型支持三种建模模式: (1)CodeFrist 代码优先模式 通过Java语言 OneCode 模式原生撰写。 (2)ViewFrist 视图优先 通过视图引擎拖拽完成前期的交互模型,反向完成DSM模型。 (3)ModuleFrist 模型优先 通过数据库,微服务接口等模式,构建基础模型。 DSM逆向转换 通过不同方式完成的DSM模型,可以通过OneCode 在视图、Code 、以及Module 三种方式之间自由切换,利用相关工具完成仿真调试以及部署运行。 DSM第三方语言转换 DSM出码模块采用了独立的模板架构,除了可以以OneCode形式存在,还可以支持独立的出码模块定制独立的第三方语言模型输 出 ### 工作原理 OneCode 本身基于JAVA语言体系,是在Java Spring 注解基础上的一套扩展子集,混合编译引擎器通过扩展注解构建完整的Domain模型,通过读取标准Spring 注解完成普通Web数据交付及调度过程,通过Domin域模型动态渲染JS文件输出为JSON交付给前端引擎构建页面。 ![输入图片说明](https://foruda.gitee.com/images/1677481475543882307/b790657a_8526535.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1677481604694633769/4b0d1d24_8526535.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1677481491781322366/c7e80cb6_8526535.png "屏幕截图") ### OneCode 建模过程 用户通过,拖拽完成页面建模序列化为按标准协议序列化JSON文件,后端OneCode服务支撑系统解析JSON文件并混合DSM建模信息以及后端服务逻辑后,通过混合编译,通过代码工厂指定出码模板,完成前后端一体的编译文件。 ![输入图片说明](https://foruda.gitee.com/images/1677481807952628963/e7b75bd9_8526535.png "屏幕截图") ### 拖拽建模 用户由前端低代码引擎提供拖拽支持,将用户需求转换为相应的组件组合,完成建模后根据标准的低代码组件序列化为JSON文件。 ![输入图片说明](https://foruda.gitee.com/images/1677481725850909630/9f5e0854_8526535.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1677481733594640386/df356402_8526535.png "屏幕截图") ### 后端融合 后端融合系统,通过读取标准JSON组件,完成组件在后端的模型转换。用户可以通过,DSM模型工具或者通过OneCode提供的建模通讯SDK,针对前端需要的服务调用逻辑以及业务数据逻辑,进行建模干预。 ### 混合编译出码 完成后端建模的融合后,通过代码工厂通过出码配置输出为OneCode源码。 ### (1)标准化能力 OneCode平台在设计上将前端组件的设计上即采用了开放式设计模型及及存储通讯标准。这将在很大程度上为各家低代码平台组件互联互通提供便利,在设计上实现通用通行。避免形成应用孤岛。解决用户被绑定在特定平台的忧虑。 ### (2)混合编译赋能 OneCode除了在前端实现了标准化组件定义外,还额外提供了后端建模的工具DSM,并通过领域模型将二者打通。这样在前端组件建模时便可以直接调用后端服务模型完成数据部分API构建。而DSM模型工具也可以在后端建模时直接读取前端组件属性,打通前端动作与后端服务的通讯能力。 ![输入图片说明](https://foruda.gitee.com/images/1677481896368006704/eb2a85cd_8526535.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1677481901887009963/af10cfca_8526535.png "屏幕截图") 二者模型的打通大幅降低了低代码平台的劳动强度,同时通过针对模型的建模干预API,在模型建立重构的方面可以从更深的层次上建立业务模型的构建能力。 ### (3)混编检测(预编译) 传统低代码平台基本上都是完全建立在JS的模型下,在初期建模时结构还算清晰但经过稍有点复杂的逻辑,构建时代码的冗余度以及结构就会变得混乱,特别是页跨页面操作或者完成前后台数据交互时。由于其脚本语言的特点无法完成实时校验,只能运行期测试才能发现问题。采用低代码构建的页面往往只是由于页面中做了一些简单的组件增删或者属性样式就该就会造成不可预期的结果,这大大降低了代码的可维护度。OneCode所构建的领域模型则很好的解决了这一问题,在前后端任意模型发生变化时即可调用混合编译,将页面间的连接关系以及前后台的数据关系进行校验通知。在预编译中提升整体的编译能力。 ### (4)传统低代码服务赋能 在低代码平台有几个领域是有很不错的实施效果的我们以最常见的表单流程模式来谈一下OneCode赋能 ### 编译文件下载 http://custer.raddev.cn/ocstudio.rar ### 在线演示地址 http://cluster.raddev.cn:9090/RAD/DSMdsm/projectManager ### 产品白皮书 [OneCode开源低代码引擎白皮书](https://www.toutiao.com/article/7195806447953904128/?log_from=117e4a6cca10e_1677482293750) 作者微信 ![输入图片说明](https://foruda.gitee.com/images/1677482173857765308/3b14ba92_8526535.png "屏幕截图")