【Microi吾码】:低代码加速业务和技术深度融合

目录
一.低代码优势:
1.1低代码平台和传统代码开发:
低代码平台显著提升开发速度,通过可视化界面与预建模块,能快速搭建应用,大幅缩短开发周期,适用于快速迭代项目。而传统代码开发需从零编写大量代码,开发过程复杂、耗时久,对简单应用也需较长时间完成开发架构与功能实现。
1.2低代码和0代码平台:
低代码平台提供了更多的可扩展性选项,能够构建新的应用程序以应付随着业务增长而增长的用户,可满足企业长远发展需求 。而0代码平台的可扩展性相对较弱,难以满足企业在业务规模扩大和功能复杂程度增加时的进一步发展需求。
0代码开发几乎不需要编程知识,学习曲线低,但不利于开发人员编程技能的提升。低代码开发需要一些基本编程知识,如变量、条件语句和循环等概念,有助于开发人员提升技术能力,更好地应对复杂项目开发需求。

1.3低代码平台:Microi吾码
该平台可以多人操作、不限制人数,表单数、数据量、数据库数量等。另外还支持垮平台性,跨数据库,支持扩展组件、支持自定义vue组件嵌入表单、支持二次开发调用表单引擎,支持V8引擎事件,灵活实现复杂业务逻辑。集成Google V8引擎,支持使用JavaScript在线编写后端接口,支持get、post请求,支持响应文件、读取文件等。微服务、组件、内置界面模板等。支持一键加载第三方数据库,在接口引擎中访问任意数据库。多公众号配置(不同集团分公司用户绑定不同公众号发送模板消息)、多小程序配置、模板消息配置。

Microi吾码官网: https://microi.net GitEE开源地址:microi.net: 开源低代码平台-Microi吾码,基于.NET8+Vue3+Element-Plus,始于2014年(基于Avalon.js),2018年使用Vue重构,于2024年10月开源。
二.关于开源低代码平台:Microi吾码
2.1Mircroi吾码介绍:
专注于“零代码全局应用搭建平台”领域,以“加速社会数字化转型与企业运营创新”为使命,由拥有10余年全栈开发经验的专业团队组成,让原先耗时以“月”计的繁杂编码过程,被有效缩减到“小时”计,极大降低了平台开发、维护成本,为开发方与使用方减负。公司服务经验包括百余个跨行业项目,并以“全业务管理平台”为应用场景,目前,小吾科技所开发的软件产品、开源组件在数千家企业中应用,从商务、财务、销售到服务类等行业领域,覆盖寻求数字转型企业的所有需求,实现个性化的行业解决方案。

2.2产品特点:
1.多语言支持:
前后端均支持多语言管理,可在线配置多语言,满足不同地区和用户的语言需求。
2.细粒度权限控制:
能够细化到每张表、每个字段、每个菜单、每个V8按钮、每个接口的权限控制,提供更精准的访问权限管理,保障系统安全性。
3.界面自定义:
提供界面自定义引擎,用户可根据自身需求灵活定制界面,满足个性化的设计要求,提高用户体验。
4.框架特点:
采用.NET8 + Redis + MySql/SqlServer/Oracle + Vue2/3 + Element-UI/Element-Plus的技术架构,支持跨平台、跨数据库、分布式部署,并集成消息队列、搜索引擎、MongoDB等组件,提供强大的后端支持。

2.3产品团队优势:
1.研发部90%为技术开发人员,分为两组。
2.Microi.net产品研发组。
3.基于Microi.net进行二次定制开发组。
4.提供稳定的更新与售后服务。
三.使用Microi吾码:
3.1安装:
3.1.1CentOS7一键安装脚本:
url=https://static.itdos.com/install/install-microi-centos.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install-microi-centos.sh $url;fi;bash install-microi-centos.sh 3.1.2注意事项:
1.根据上面的提示进行操作以后,在界面中会出现【输入 g 以公网IP安装,输入 n 以内网IP安装】,然后按自己的实际情况继续,输入g或n。
2.如果服务器没有docker环境,也会提示是否按y安装,虽然博主建议使用1Panel、宝塔之类的面板工具来管理服务器并安装docker,但如果您想快速开始就直接键入y吧。
3.安装成功后,必需开放microi-api端口、前端传统界面端口、前端Web操作系统端口、MinIO端口。
4.脚本安装mysql默认为4G内存服务器的性能配置,2G内存服务器建议下载脚本去掉性能配置再运行脚本 重复执行一键脚本前会提示先删除所有已安装容器,这将导致所有数据丢失。
下面是安装成功的界面!

3.1.2脚本代码:
echo 'Microi:当前一键脚本版本:2024-11-24 11:47' # 获取局域网IP LAN_IP=$(hostname -I | awk '{print $1}') echo 'Microi:获取局域网IP: '$LAN_IP # 获取公网IP PUBLIC_IP=$(curl -s ifconfig.me) echo 'Microi:获取公网IP: '$PUBLIC_IP # 询问用户安装类型 echo 'Microi:您是想在公网访问系统还是内网访问?公网请提前做好端口开放。' echo 'Microi:输入 g 以公网IP安装,输入 n 以内网IP安装:' read -r install_type if [ "$install_type" == "g" ]; then ACCESS_IP=$PUBLIC_IP echo 'Microi:将以公网IP安装。' elif [ "$install_type" == "n" ]; then ACCESS_IP=$LAN_IP echo 'Microi:将以内网IP安装。' else echo 'Microi:无效的输入,脚本退出。' exit 1 fi # 检查Docker是否安装 if ! [ -x "$(command -v docker)" ]; then echo 'Microi:您未安装docker,推荐使用1Panel、宝塔等面板工具来安装docker并管理您的服务器!' echo 'Microi:是否立即安装Docker?(y/n)' read -r answer if [ "$answer" != "y" ]; then echo 'Microi:安装取消,脚本退出。' exit 1 fi # 安装Docker echo 'Microi:开始安装Docker...' sudo yum update -y sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker echo 'Microi:Docker已成功安装。' fi # 配置Docker镜像加速器(现在太难找了,如果报错timeout就去阿里云申请一个自己私有的加速地址) DOCKER_ACCELERATOR="https://mirrors.aliyun.com/docker-ce/" echo 'Microi:配置Docker镜像加速器' sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": ["${DOCKER_ACCELERATOR}"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker # 生成随机端口和密码函数 echo 'Microi:生成随机端口和密码函数' generate_random_port() { shuf -i 17777-65535 -n 1 } generate_random_password() { openssl rand -base64 12 | tr -dc 'A-Za-z0-9' | head -c16 } # 生成随机数据目录 generate_random_data_dir() { local container_name="$1" local dir="/home/data-${container_name}-$(openssl rand -hex 4)" mkdir -p "${dir}" echo "${dir}" } # 检查并提示用户手动删除已有容器 echo 'Microi:检查并提示用户手动删除已有容器' if docker ps -a --format '{{.Names}}' | grep -q '^microi-install-'; then echo 'Microi:脚本重复运行前,需要先通过命令【docker ps -a --format "{{.Names}}" | grep "^microi-install-" | xargs -r docker rm -f】删除所有相关容器后再重新运行,注意此操作将会删除数据库、MinIO文件,请谨慎操作' exit 1 fi # 检查并安装unzip if ! [ -x "$(command -v unzip)" ]; then echo 'Microi:您未安装unzip,正在为您安装...' sudo yum install -y unzip if [ $? -ne 0 ]; then echo 'Microi:unzip安装失败,脚本退出。' exit 1 fi echo 'Microi:unzip已成功安装。' else echo 'Microi:unzip已安装。' fi # 创建 MySQL 配置文件 MYSQL_CONF_FILE="/tmp/my_microi.cnf" echo '[mysqld]' > ${MYSQL_CONF_FILE} echo 'lower_case_table_names = 1' >> ${MYSQL_CONF_FILE} echo 'max_connections = 500' >> ${MYSQL_CONF_FILE} echo 'key_buffer_size = 268435456' >> ${MYSQL_CONF_FILE} echo 'query_cache_size = 268435456' >> ${MYSQL_CONF_FILE} echo 'tmp_table_size = 268435456' >> ${MYSQL_CONF_FILE} echo 'innodb_buffer_pool_size = 536870912' >> ${MYSQL_CONF_FILE} echo 'innodb_log_buffer_size = 268435456' >> ${MYSQL_CONF_FILE} echo 'sort_buffer_size = 1048576' >> ${MYSQL_CONF_FILE} echo 'read_buffer_size = 2097152' >> ${MYSQL_CONF_FILE} echo 'read_rnd_buffer_size = 1048576' >> ${MYSQL_CONF_FILE} echo 'join_buffer_size = 2097152' >> ${MYSQL_CONF_FILE} echo 'thread_stack = 393216' >> ${MYSQL_CONF_FILE} echo 'binlog_cache_size = 196608' >> ${MYSQL_CONF_FILE} echo 'thread_cache_size = 192' >> ${MYSQL_CONF_FILE} echo 'table_open_cache = 1024' >> ${MYSQL_CONF_FILE} echo 'character_set_server=utf8mb4' >> ${MYSQL_CONF_FILE} echo 'collation_server=utf8mb4_unicode_ci' >> ${MYSQL_CONF_FILE} # 安装MySQL 5.6 MYSQL_PORT=$(generate_random_port) MYSQL_ROOT_PASSWORD=$(generate_random_password) MYSQL_DATA_DIR=$(generate_random_data_dir "mysql") echo 'Microi:MySQL 将在端口 '${MYSQL_PORT}' 上安装,root 密码: '${MYSQL_ROOT_PASSWORD},数据目录: ${MYSQL_DATA_DIR} docker pull registry.cn-hangzhou.aliyuncs.com/microios/mysql5.6:latest docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name microi-install-mysql56 -p ${MYSQL_PORT}:3306 \ -v ${MYSQL_DATA_DIR}:/var/lib/mysql \ -v ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/my_microi.cnf \ -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \ -e MYSQL_TIME_ZONE=Asia/Shanghai \ -d registry.cn-hangzhou.aliyuncs.com/microios/mysql5.6:latest # 安装Redis 6.2 REDIS_PORT=$(generate_random_port) REDIS_PASSWORD=$(generate_random_password) echo 'Microi:Redis 将在端口 '${REDIS_PORT}' 上安装,密码: '${REDIS_PASSWORD} docker pull registry.cn-hangzhou.aliyuncs.com/microios/redis6.2:latest docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name microi-install-redis -p ${REDIS_PORT}:6379 \ -e REDIS_PASSWORD=${REDIS_PASSWORD} \ -d registry.cn-hangzhou.aliyuncs.com/microios/redis6.2:latest redis-server --requirepass ${REDIS_PASSWORD} # 等待MySQL容器启动 echo 'Microi:等待MySQL容器启动...' sleep 5 # 等待5秒,可根据实际情况调整 # 检查MySQL是否可以连接 echo 'Microi:检查MySQL是否可以连接...' for i in {1..10}; do docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "SELECT 1" > /dev/null 2>&1 && break sleep 1 done # 如果MySQL服务启动失败,则退出脚本 if [ $i -eq 60 ]; then echo 'Microi:MySQL服务启动失败,脚本退出。' exit 1 fi # 允许root用户从任意主机连接 echo 'Microi:允许root用户从任意主机连接' docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "USE mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' WITH GRANT OPTION;" docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "FLUSH PRIVILEGES;" # 下载并解压MySQL数据库备份 SQL_ZIP_URL="https://static.itdos.com/download/microi/file/mysql5.6.50-bak-latest.sql.zip" SQL_ZIP_FILE="/tmp/mysql_backup.zip" SQL_DIR="/tmp/mysql_backup" SQL_FILE="${SQL_DIR}/microi_demo.sql" # 创建目录 mkdir -p ${SQL_DIR} echo 'Microi:创建目录: '${SQL_DIR} # 下载ZIP文件 curl -o ${SQL_ZIP_FILE} ${SQL_ZIP_URL} echo 'Microi:下载ZIP文件: '${SQL_ZIP_FILE} # 解压ZIP文件并覆盖现有文件 unzip -o -d ${SQL_DIR} ${SQL_ZIP_FILE} echo 'Microi:解压ZIP文件到: '${SQL_DIR} # 创建数据库 echo 'Microi:创建数据库 microi_demo' docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "CREATE DATABASE IF NOT EXISTS microi_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 还原MySQL数据库备份 echo 'Microi:还原MySQL数据库备份: '${SQL_FILE} docker exec -i microi-install-mysql56 mysql -uroot -p${MYSQL_ROOT_PASSWORD} microi_demo < ${SQL_FILE} # 安装MongoDB MONGO_PORT=$(generate_random_port) MONGO_ROOT_PASSWORD=$(generate_random_password) MONGO_DATA_DIR=$(generate_random_data_dir "mongodb") echo 'Microi:MongoDB 将在端口 '${MONGO_PORT}' 上安装,root 密码: '${MONGO_ROOT_PASSWORD},数据目录: ${MONGO_DATA_DIR} docker pull registry.cn-hangzhou.aliyuncs.com/microios/mongo:latest docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name microi-install-mongodb -p ${MONGO_PORT}:27017 \ -v ${MONGO_DATA_DIR}:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=root \ -e MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD} \ -d registry.cn-hangzhou.aliyuncs.com/microios/mongo:latest # 安装MinIO MINIO_PORT=$(generate_random_port) MINIO_CONSOLE_PORT=$(generate_random_port) MINIO_ACCESS_KEY=$(generate_random_password) MINIO_SECRET_KEY=$(generate_random_password) MINIO_DATA_DIR=$(generate_random_data_dir "minio") echo 'Microi:MinIO 将在端口 '${MINIO_PORT}' 和控制台端口 '${MINIO_CONSOLE_PORT}' 上安装,access key: '${MINIO_ACCESS_KEY}',secret key: '${MINIO_SECRET_KEY},数据目录: ${MINIO_DATA_DIR} docker pull registry.cn-hangzhou.aliyuncs.com/microios/minio:latest docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name microi-install-minio -p ${MINIO_PORT}:9000 -p ${MINIO_CONSOLE_PORT}:9001 \ -v ${MINIO_DATA_DIR}:/data \ -v ${MINIO_DATA_DIR}/config:/root/.minio \ -e "MINIO_ROOT_USER=${MINIO_ACCESS_KEY}" \ -e "MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY}" \ -d registry.cn-hangzhou.aliyuncs.com/microios/minio:latest server /data --console-address ":9001" # 拉取并安装后端microi-api接口系统 API_PORT=$(generate_random_port) API_IMAGE="registry.cn-hangzhou.aliyuncs.com/microios/microi-api:latest" API_CONTAINER_NAME="microi-install-api" OS_CLIENT_DB_CONN="Data Source=${LAN_IP};Database=microi_demo;User Id=root;Password=${MYSQL_ROOT_PASSWORD};Port=${MYSQL_PORT};Convert Zero Datetime=True;Allow Zero Datetime=True;Charset=utf8mb4;Max Pool Size=500;sslmode=None;" echo 'Microi:拉取并安装后端microi-api接口系统: '${API_IMAGE} docker pull ${API_IMAGE} docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name ${API_CONTAINER_NAME} -p ${API_PORT}:80 \ -e "OsClient=iTdos" \ -e "OsClientType=Product" \ -e "OsClientNetwork=Internal" \ -e "OsClientDbConn=${OS_CLIENT_DB_CONN}" \ -e "OsClientRedisHost=${LAN_IP}" \ -e "OsClientRedisPort=${REDIS_PORT}" \ -e "OsClientRedisPwd=${REDIS_PASSWORD}" \ -e "AuthServer=http://${LAN_IP}:${API_PORT}" \ -v /etc/localtime:/etc/localtime \ -v /usr/share/fonts:/usr/share/fonts \ -d ${API_IMAGE} # 拉取并安装前端传统界面 VUE_PORT=$(generate_random_port) VUE_IMAGE="registry.cn-hangzhou.aliyuncs.com/microios/microi-client:latest" VUE_CONTAINER_NAME="microi-install-client" echo 'Microi:拉取并安装前端传统界面: '${VUE_IMAGE} docker pull ${VUE_IMAGE} docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name ${VUE_CONTAINER_NAME} -p ${VUE_PORT}:80 \ -e "OsClient=iTdos" \ -e "ApiBase=http://${ACCESS_IP}:${API_PORT}" \ -v /etc/localtime:/etc/localtime \ -v /usr/share/fonts:/usr/share/fonts \ -d ${VUE_IMAGE} # 拉取并安装前端WebOS操作系统 WEBOS_PORT=$(generate_random_port) WEBOS_IMAGE="registry.cn-hangzhou.aliyuncs.com/microios/microi-os:latest" WEBOS_CONTAINER_NAME="microi-install-os" echo 'Microi:拉取并安装前端WebOS操作系统: '${WEBOS_IMAGE} docker pull ${WEBOS_IMAGE} docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name ${WEBOS_CONTAINER_NAME} -p ${WEBOS_PORT}:80 \ -e "OsClient=iTdos" \ -e "ApiBase=http://${ACCESS_IP}:${API_PORT}" \ -v /etc/localtime:/etc/localtime \ -v /usr/share/fonts:/usr/share/fonts \ -d ${WEBOS_IMAGE} # 安装Watchtower WATCHTOWER_CONTAINER_NAME="microi-install-watchtower" echo 'Microi:安装Watchtower以自动更新API、Vue和WebOS容器' docker pull registry.cn-hangzhou.aliyuncs.com/microios/watchtower:latest docker run -itd --restart=always --log-opt max-size=10m --log-opt max-file=10 --privileged=true \ --name ${WATCHTOWER_CONTAINER_NAME} -v /var/run/docker.sock:/var/run/docker.sock \ registry.cn-hangzhou.aliyuncs.com/microios/watchtower:latest ${API_CONTAINER_NAME} ${VUE_CONTAINER_NAME} ${WEBOS_CONTAINER_NAME} # 输出所有服务的信息 echo -e "==================================================================" echo 'Microi:所有服务已成功安装。' echo 'Microi:前端传统界面访问地址: http://'$ACCESS_IP':'$VUE_PORT',账号: admin,密码: demo123456' echo 'Microi:前端WebOS操作系统访问地址: http://'$ACCESS_IP':'$WEBOS_PORT',账号: admin,密码: demo123456' echo 'Microi:Redis: 容器名称 microi-install-redis, 端口 '${REDIS_PORT}', 密码: '${REDIS_PASSWORD} echo 'Microi:MySQL: 容器名称 microi-install-mysql56, 端口 '${MYSQL_PORT}', Root 密码: '${MYSQL_ROOT_PASSWORD} echo 'Microi:MongoDB: 容器名称 microi-install-mongodb, 端口 '${MONGO_PORT}', Root 密码: '${MONGO_ROOT_PASSWORD} echo 'Microi:MinIO: 容器名称 microi-install-minio, 端口 '${MINIO_PORT}', 控制台端口 '${MINIO_CONSOLE_PORT}', Access Key: '${MINIO_ACCESS_KEY}, Secret Key: ${MINIO_SECRET_KEY} echo 'Microi:后端microi-api接口系统: 容器名称 '${API_CONTAINER_NAME}', 端口 '${API_PORT}', 镜像: '${API_IMAGE}', 局域网IP: '${LAN_IP} echo 'Microi:前端传统界面: 容器名称 '${VUE_CONTAINER_NAME}', 端口 '${VUE_PORT}', 镜像: '${VUE_IMAGE}', API URL: http://'${ACCESS_IP}':'${API_PORT} echo 'Microi:前端WebOS操作系统: 容器名称 '${WEBOS_CONTAINER_NAME}', 端口 '${WEBOS_PORT}', 镜像: '${WEBOS_IMAGE}', API URL: http://'${ACCESS_IP}':'${API_PORT} echo 'Microi:Watchtower: 容器名称 '${WATCHTOWER_CONTAINER_NAME}', 已安装以自动更新API、Vue和WebOS容器' echo -e "=================================================================="3.2快速使用---打印引擎:
基础组件包夸:
【表格/文本】:文本,键值文本,长文本,表格,图片,条形码。
【辅助/图形】:横线,竖线,矩形,椭圆。
拓展组件包括:
【常规单据表头】单据类型,订单编号,业务日期,平台名称,装订线。
【客户】:客户名称,客户电话。


编辑
3.3快速使用---接口引擎:
接口包含的信息:
序号,名称,Key,自定义接口地址,启用,分布式锁分布式锁Key,允许匿名调用响应文件可访问角色接口说明,参数相关附件创建时间创建人更新时间操作。

四.成功案例:
1.目前已有成功案例开发团队客户50家以上,而客户基于低代码平台研发的系统已应用到数百家企业。
2.房地产互联网平台(仿贝壳)(大量的前端微服务定制)。
3.大型电器ERP(300+表,100+模块)(大量的后端定制)。
4.多个服装ERP(100+表,1个人1个月完成)(纯低代码平台实现的服装ERP系统)。
5.物联网智能家居(亿级数据量处理)、植物工厂智能硬件控制。
6.集团、国企OA系统。
7.停车场、潮汐检测、固定资产、CRM 等等平台。
8.四所大学实训课程。