XDM 跟我一起撸一个低代码开发平台--01

490 阅读3分钟

Hw 低代码开发平台

项目简介

Hw 是一套基于代码生成器的低代码开发平台。 前后端分离,数据库优先模式。帮助解决开发过程中大量重复的CURD工作。Hw代码简洁,没有高深语法,让小白也能快速上手。

架构简介

graph LR
A(Hw低代码开发平台)-->B1(后端) 
A-->B2(前端) 
B1-->C1(Hw.Api提供Api访问) 
B1-->C2(Hw.CodeBuilder代码生产工具)    
B1-->C3(Hw.Common公用类库)
B1-->C4(Hw.Dto提供添/修/查/显示Dto模型)
B1-->C5(Hw.Extensions提供扩展)
B1-->C6(Hw.Model数据库模型)
B1-->C7(Hw.Repository仓储)
B1-->C8(Hw.Service服务)
B2-->D1(Hw.Vue.UI后端UI) 

后端技术

.net Core5,FreeSql,AutoMapper,Autofac,log4net

前端技术

Vue,Vuex,iview

功能简介

已完成功能

v 0.0.1

  • 基于数据库关系图快速生成CURD API
  • 基础中后台管理

计划功能

  • 集成权限管理
  • 数据合法性验证
  • JWT

使用文档

如何生成后端代码

思路:使用chiner设计数据库模型,根据模型文件生成后端代码。

chiner定制版 可参考 github.com/hw952/chine… chiner 使用方法可参考 gitee.com/robergroup/…

使用chiner设计数据库模型

使用chiner打开Hw.CodeBuilder/demo.chnr.json 这里保存了我定制chiner的一些信息,demo中包含了一个简单的权限管理的数据库设计。

QQ20210910153937.png

QQ20210910154023.png

基于此可完成自己模型设计。设计完成后在Hw.CodeBuilder项目中运行dotnet run生成对应的后端代码

Hw.CodeBuilder 中很多路径是写死的,记得修改哟!

chiner定制字段明细说明

新增字段说明
Dto添加实体模型添加时显示的字段
Dto修改实体模型修改时显示的字段
Dto显示实体模型展示时显示的字段
Dto搜索未实现
ParentId用于存储树形结构上一级Id

数据域生成对应C#类型说明

域字段C#类型说明
默认字符串string
主键标识-未实现
名称-未实现
整数int
小数-未实现
时间日期DateTime
是否bool
数据字典enum
描述文本-未实现
密码string
批量添加list用于多对多关系转换成的一对多的批量添加 (可参考添加用户时对应的角色可多选)

ui建议选项

根据Ui选项,前端会解析对应的输入类型

选项说明
普通输入框
下拉输入框
下拉(多选)输入框批量添加第三张表时选择
复选框未实现
单选框未实现
小数输入未实现
整数输入未实现
金额输入未实现
日期输入未实现
年月输入未实现
长文本输入未实现
富文本输入未实现
密码输入框
下拉(多选)树树形结构时,批量添加第三张表时选择
Icon选择

根据关系图生成实体类关系

关系类型说明
1:N
1:1未实现
N:N不支持(建议转换为1:N关系)

使用小技巧

如何显示关系 N:1 中 1的某个字段

字段代码...Dto显示
1_字段名称...

① "1" 表示表关系1中的表名称,必须与实际的一致 。 "_" 分隔符必须存在 。 "字段名称" 表关系1中的对应的字段名,必须存在

如何批量添加N:N(转换后的1:N模型)

QQ20210910172720.png 如图在用户管理中批量添加对应的用户角色

字段代码...Dto添加...数据域...ui建议选项
Role......批量添加...下拉(多选)输入框

① 必须为第三张表名称

如何保留自己的代码,不被新生成的代码覆盖

代码块包裹在#region ... #endregion 里的代码再下次生成代码时会保留

如何生成后端代码

数据库模型设计完成后。在Hw.CodeBuilder项目中运行dotnet run生成对应的后端代码

项目地址

Github:github.com/hw952/Hw