一、引言
Microi 吾码作为一款开源低代码平台,自 2014 年基于 Avalon.js 开发,并在 2018 年使用 Vue 重构,于 2024 年 10 月正式开源。它采用了先进的技术架构,包括.NET8 + Redis + MySql/SqlServer/Oracle + Vue2/3 + Element-UI/Element-Plus,为业务系统开发带来了全新的可能性。
Microi 吾码致力于为企业提供一站式低代码开发解决方案,其特点众多。首先,它不限制用户数、表单数、数据量、数据库数量等;其次,支持跨平台、分布式部署,能与 gRPC 实现跨开发语言通信,还支持 Docker、K8S 等容器化平台以及 Jenkins、Rancher 等 CI/CD 工具;此外,它还提供界面自定义引擎,满足个性化需求,同时支持多租户,包括数据库级别隔离多租户、TenantId 租户隔离、独立组织机构数据隔离。
本文将详细介绍如何利用 Microi 吾码快速进行业务系统开发,帮助开发者提升开发效率,实现高效的业务系统构建。
二、Microi 吾码简介
-
平台背景
Microi 吾码平台始于 2014 年,最初基于 Avalon.js 开发,历经发展,在 2018 年进行了重大重构,使用 Vue 技术,使得平台在用户界面和交互体验上有了显著提升。2024 年,Microi 吾码开源,为广大开发者提供了一个强大的低代码开发工具。其致力于为企业提供一站式低代码开发解决方案,在众多项目中得到了广泛应用。 -
技术架构
Microi 吾码采用了先进的技术架构,包括.NET8 + Redis + MySql/SqlServer/Oracle + Vue2/3 + Element-UI/Element-Plus。这种技术组合使得平台具备了强大的功能和灵活性。
.NET8 作为后端开发框架,提供了高效的服务器端处理能力。Redis 作为分布式缓存,能够极大地提高数据的读取速度,降低数据库的压力。MySql、SqlServer 和 Oracle 等多种数据库的支持,使得企业可以根据自身需求选择合适的数据库,同时也支持读写分离和分库分表,可扩展性强。Vue2/3 和 Element-UI/Element-Plus 则为前端开发提供了丰富的组件和良好的用户界面体验。
此外,Microi 吾码还支持跨平台、跨数据库、分布式部署。这意味着无论是在 Windows、Linux 还是其他操作系统上,都能够顺利运行。同时,对于不同类型的数据库,也能够轻松对接。分布式部署的支持,使得平台可以应对高并发和大规模数据处理的需求。
总的来说,Microi 吾码的技术架构为企业提供了一个强大、灵活、可扩展的低代码开发平台。
三、快速开始 -
创建模块的两种方式
Microi 吾码提供了两种创建模块的方式:
方式一:先在平台【表单引擎】创建表、再设计表单、再创建模块并关联表单。
方式二:先在【数据库管理工具(如 Navicat)】中创建物理表、再到平台【表单引擎】加载物理表、再设计表单、再创建模块并关联表单。
一张物理表可以被多个【模块引擎】进行关联设计模块,也可以被多个【流程引擎】进行关联流程审批,还可以被多个【报表引擎】进行关联设计虚拟报表。 -
设计表单
在表单引擎中创建数据后,点击【设计】进入表单设计器。每拖一个字段控件会立即往数据库添加物理字段,每次保存都是修改字段。 -
创建菜单(模块)
进入【模块引擎】,新增数据,选择打开方式为【Diy】,选择刚刚创建的物理表,选择模板为【搜索 + 表格】或【搜索 + 卡片】(可扩展更多模板)。更多配置玩法见平台文档【模块引擎.md】。 -
进入菜单
若看不到菜单,可能是权限问题,去平台【角色管理】配置权限。如果自动给 admin 角色赋值权限出错,或其它角色无权限查看,可在【角色管理】中进行相应的权限配置,以确保能够正常访问创建的菜单。进入菜单后即可看到增、删、改、查功能已全部就绪。
四、后端配置 -
源码本地运行
使用 git 工具拉取最新代码,下载并安装.NET 8 SDK,可从官方网址https://dotnet.microsoft.com/zh-cn/download获取安装包。 -
配置必须参数
要使项目跑起来,至少需要【数据库 + Redis】两个环境,缺一不可。配置【/Microi.net.Api/appsettings.json】文件,其中包含多个关键参数设置:
“OsClient”:【必须】自定义 SaaS 引擎 Key,需与数据库【sys_osclient】表的【OsClient】字段值对应。
“OsClientType”:【必须】自定义程序运行环境,如:Product(正式环境)、Dev(测试环境)等。
“OsClientNetwork”:【必须】自定义网络类型,如:Internet(公网)、Internal(内网)等。
“OsClientDbConn”:【必须】数据库连接字符串,建议使用源码提供的 MySql。SqlServer、Oracle 也支持,后期整理后提供数据库 demo。
“IS4SigningCredential”:【必须】可以直接使用源码中的默认签名。
若【OsClient + OsClientType + OsClientNetwork】在【sys_osclient】表中能匹配到数据,且数据中有 Redis 相关配置,则可以省略以下 Redis 配置:
“OsClientRedisHost”:Redis Host,如:119.31.116.88。
“OsClientRedisPort”:Redis 端口,如:6379。
“OsClientRedisPwd”:Redis 密码,如:123456。 -
使用开发工具打开解决方案
可使用【Visual Studio Code】或【Visual Studio 2022】打开解决方案,注意环境配置注意事项。
(1)使用 Visual Studio Code 打开解决方案(推荐)
下载并安装 vs code:https://code.visualstudio.com/。打开 vs code,安装插件:C#、C# Dev Kit、.NET Install Tool 三个组件。在欢迎页打开 Microi 吾码开源版根目录文件夹,稍等几秒后会自动出现【解决方案资源管理器】,等待 vs code 自动还原 nuget 库。必须配置【/Microi.net.Api/appsettings.json】文件,配置内容与上文一致。右键【Microi.net.Api】项目,调试 --> 启动新实例,访问地址:https://localhost:7266(端口在 /Microi.net.Api/Properties/launchSettings.json 配置)。
(2)使用 Visual Studio 2022 打开解决方案
下载并安装 vs2022:https://visualstudio.microsoft.com/zh-hans/。直接双击打开【/Microi.net.sln】文件,打开后稍等片刻,右键【Microi.net.Api】项目重新生成。若还原 nuget 包失败,请关闭 vs2022 并重新打开 Microi.net.sln 文件继续尝试,一般都是网络问题,也可尝试使用手机热点。必须配置【/Microi.net.Api/appsettings.json】文件,说明同上。
五、工作流引擎与流程引擎 -
吾码第四代工作流引擎优势
Microi 吾码的第四代工作流引擎具有诸多显著优势。首先,流程属性和节点属性由表单引擎驱动,极大地增强了灵活性,能够满足各种复杂业务需求。其次,拥有丰富的前后端事件,配合集成的前后端 V8 引擎,可以实现各种复杂场景,没有实现不了的业务逻辑。再者,流程引擎与业务表单解耦,这使得它可以集成第三方表单,也方便进行二次开发。此外,流程设计器源码在 Microi 吾码个人版中完全开源,开发者可以根据自己的需求进行深度定制和扩展。目前,该工作流引擎已经在上百家客户中得到应用。 -
流程引擎相关物理表说明
Microi 吾码的流程引擎涉及多个物理表,各有其特定的作用。WF_FlowDesign 是流程图设计表,一个流程图对应一条数据;WF_Node 为流程节点属性表;WF_Line 是流程条件(线)属性表;WF_Flow 是流程实例表,发起一个流程就会生成一条实例数据,且一条实例数据对应 WF_Work 表的 N 条工作数据;WF_Work 是流程工作待办表,如发起一个流程实例产生了多个待办,会写入相应条数的 WF_Work 数据;WF_History 是流程轨迹表,详细记录流程每一步、每个人的所有操作,如同意、拒绝、撤回等。
3.V8 事件顺序与内置函数
用户在操作流程中会经历一系列的事件顺序。首先,用户点击发起流程或处理工作表单进入事件 V8(前端)。接着,用户点击【提交】按钮,触发节点开始事件 V8(前端),在表单提交前会先后触发前端和后端的表单提交前事件 V8。表单提交后,同样会先后触发后端和前端的表单提交后事件 V8,然后调用后端处理工作接口。此时,会进行条件判断 V8(后端),根据条件确定流程走向。之后,触发节点开始事件 V8(后端),最后触发节点结束事件 V8(后端和前端)。
在所有事件中,可访问一些内置函数。例如,V8.WF.ApprovalType 可以获取用户点击的审批类型,可能的值有‘Auto’(发起流程 (开始节点)/ 业务节点)、‘Agree’(同意)、‘Disagree’(拒绝)、‘Recall’(撤回);V8.WF.ApprovalIdea 可获取用户填写的审批意见;V8.WF.AddUsers 和 V8.WF.SelectUsers 分别用于获取用户添加和选择的审批人;V8.WF.CurrentFlowDesign 是当前流程设计图实体,V8.WF.CurrentNode 是当前节点实体,V8.WF.BackNodeId 如果用户点击的是拒绝且选择了退回到某个节点,这里就是那个节点 Id。
节点开始事件 V8(前端)可以进行一些条件判断和操作,比如:
if(V8.Form.Money >1000){
V8.Tips(‘金额不能大于1000!’,false);
V8.Result=false;
}
//金额加1
V8.Form.Money =V8.Form.Money +1;
//强制指定下一节点审批人
V8.WF.ForceSelectUsers=[‘userid’];
节点开始事件 V8(后端)可使用 V8.Result = {Code :0, Msg : ‘阻止流程提交’}; 进行回滚事务、阻止流程提交。
条件判断 V8(后端)在服务器端执行,通过赋值 Linevalue 确定条件属性设置的【条件值】,例如:
if(V8.Form.Money <=100){
V8.Linevalue =1;
}else{
V8.Linevalue =2;
}
节点结束事件 V8(前端)可以通过 V8.WF.WorkResult 获取流程执行成功后返回的数据,如发送到了哪个节点、哪些审批人。节点结束事件 V8(后端)可以访问下一节点实体 V8.WF.NextNode 和接收人 V8.WF.NextTodoUsers。
4. 撤回功能介绍
在 Microi 吾码的流程引擎中,撤回功能具有明确的使用场景和限制。当 A 节点提交到 B 节点后,在 B 节点审批之前,A 节点提交人可随时主动撤回到自己手上,重新编辑表单数据并重新提交。B 节点审批后,A 节点无法再撤回,但 B 节点可以在 C 节点审批之前撤回到自己 B 节点手上。如果 A 节点实再想撤回,只有找 C 节点拒绝并退回到 A 节点。注意,撤回时,也会执行节点开始 V8、结束 V8。将来也可以在流程属性中增加提交人可以随时任意撤回的功能。
六、分布式存储配置
- 平台分布式存储支持
Microi 吾码作为一款强大的开源低代码平台,目前支持多种分布式存储方式,包括阿里云 OSS/CDN、MinIO、亚马逊 S3 等。这些分布式存储方式为用户提供了灵活的选择,以满足不同的业务需求。 - 配置方法
Microi 吾码的分布式存储配置基于 SaaS 引擎,通过表单引擎驱动可自由扩展配置项,具有很高的灵活性和可扩展性。其源码在 Microi.HDFS 插件中,开发者可以根据实际需求进行定制和扩展。
首先,在 [系统设置]-[开发配置] 中指定存储方式。由于系统设置由表单引擎驱动,因此可以在表单设计中自由扩展更多自定义存储方式。
如果选择阿里云 OSS+CDN,则在【SaaS 引擎】-【Aliyun】处配置相关参数。
如果选择 MinIO,则在【SaaS 引擎】-【MinIO】处配置相关参数。安装 MinIO 的方法可以参考文章:https://microi.blog.csdn.net/article/details/143576299。
如果选择亚马逊 S3,首先需要熟悉亚马逊 S3:https://blog.csdn.net/qq973702/article/details/143648974。平台使用 MinIO SDK 驱动亚马逊 S3,配置稍微有点复杂。
总之,Microi 吾码的分布式存储配置为开发者提供了强大的功能和灵活性,能够满足不同业务场景下的存储需求。
七、与其他平台对比
1.Microi 吾码与 Jeecg 对比
从平台背景、技术架构、功能、用户体验与易用性等方面对比 Microi 吾码与 Jeecg 的异同。
一、平台背景对比
Microi 吾码:平台始于 2014 年,基于 Avalon.js 开发,2018 年使用 Vue 重构,2024 年 10 月正式开源。致力于为企业提供一站式低代码开发解决方案。
Jeecg:是一个基于 Java 的开源低代码开发平台,集成了前端与后端的一体化开发环境,通过低代码的方式支持快速应用开发(RAD)。
二、技术架构对比
Microi 吾码:采用.NET8 + Redis + MySql/SqlServer/Oracle + Vue2/3 + Element-UI/Element-Plus 的技术架构,支持跨平台、跨数据库、分布式部署,并集成了消息队列、搜索引擎、MongoDB 等组件,提供强大的后端支持。
Jeecg:采用前后端分离的架构,前端使用 Vue.js,后端使用 Spring Boot。保证了良好的开发体验和高效的运行性能。
三、功能对比
组件与模板:
Microi 吾码:提供丰富的组件库和模板,支持扩展组件和自定义 Vue 组件嵌入表单,满足多样化需求。
Jeecg:同样提供丰富的组件和模板,支持在线表单开发、报表配置、在线图表设计等。
流程设计:
Microi 吾码:提供可视化的流程设计工具,支持拖拽方式创建流程,并设置流程节点、审批人等。
Jeecg:内置工作流引擎,支持复杂的流程逻辑和条件判断,提供图形化流程设计器。
数据集成与处理能力:
Microi 吾码:支持与其他系统的数据集成,实现顺畅对接,并提供全能采集引擎,可在接口引擎中采集网页、接口请求等数据。
Jeecg:支持大数据集成,内置对 Elasticsearch、Hadoop 等组件的支持,便于数据挖掘和分析。
权限管理与安全性:
Microi 吾码:提供细粒度的权限控制,细化到每张表、每个字段、每个菜单等,支持单点登陆和第三方系统单点登陆。
Jeecg:完善的 RBAC 角色权限控制,保障系统安全性和数据隐私。
四、用户体验与易用性对比
界面与操作:
Microi 吾码:界面自定义引擎提供高度灵活的界面设计,用户可根据需求进行个性化定制。
Jeecg:提供直观的可视化界面,开发者可以快速上手,降低学习成本。
社区与支持:
Microi 吾码:拥有活跃的开源社区,提供丰富的文档教程和问题解答,持续更新维护。
Jeecg:同样拥有活跃的社区和丰富的文档资源,遵循 Apache 2.0 协议,完全免费且可自由定制和扩展。
综上所述,Microi 吾码与 Jeecg 都是优秀的开源低代码平台,各自具有独特的优势和特点。Microi 吾码在跨平台、分布式部署、界面自定义以及数据集成与处理能力方面表现出色,适合对系统灵活性和数据集成有较高要求的企业。而 Jeecg 则在低代码开发、动态表单生成以及大数据集成方面有着显著优势,适合需要快速构建应用并进行数据挖掘和分析的企业。在选择低代码平台时,建议企业根据自身需求进行综合考虑,选择最适合自己的平台。
八、总结