功能描述:

  1. 使用模型编辑工具编辑模型,每个模型对应数据库一张表,内含多个字段。
  2. 从模型生成数据库(现支持sqlite)。
  3. 从模型生成golang微服务代码,并自动进行编译。
  4. 从模型生成winform dll项目,并可自动编译、拷贝dll到模型工具同目录下、生成模型工具菜单配置文件,重启模型即可看到新的表单菜单,打开对应表单,编辑数据。
  5. 从模型生成vue项目,并可自动安装依赖,启动开发测试环境,build发布程序。
  6. 从模型生成flutter项目表单,并可自动安装依赖,生成模型json序列化代码,build apk安装包

当前状况:

  1.  本工具目前是1.0版本,功能非常简单,后面有大量功能需要完善、扩展。
  2. 还有部分技术问题需要解决,为了快速出一个版本,暂时绕过,后续需要跟进。
  3. 代码已经上传github并开源(https://github.com/henreash/AutoCodeToolChain),希望有兴趣的同仁加入。
  4. angular的自动表单工具还没有开发,暂时延后。
  5. 为了简化,当前字段类型仅支持bool、string、number类型,后续增加对datetime、image类型的支持。
  6. 目前数据库仅支持sqlite的自动生成,需要扩展到MsSql、MySql、Oracle等主流数据库,也可引入mongodb...

一、模型编辑工具

点击模型编辑器界面的添加、修改、删除按钮,编辑模型,最后点击保存按钮,将模型保存到本地的json文件。

模型编辑界面如下图:

字段编辑界面如下图:

说明:在这个界面中指定字段名称、标题、类型、长度等信息,内容与数据库中相应概念一致。后面基于这些字段属性自动生成各种平台代码。

模型编辑完毕,在图一界面点击保存按钮,将模型存储在ModelDefine.json文件中。json格式如下所示:

{
	"ModelList": [{
		"ModelName": "UserTable",
		"Title": "用户信息",
		"FieldList": [{
			"FieldName": "Id",
			"Title": "编号",
			"IsPrimaryKey": true,
			"ForeignKey": {
				"IsForeignKey": false,
				"ModelName": null,
				"PrimaryKeyName": null
			},
			"Type": "integer",
			"Length": 0,
			"Precision": 0,
			"Scale": 0,
			"IsNullable": false
		}, {
			"FieldName": "Name",
			"Title": "姓名",
			"IsPrimaryKey": false,
			"ForeignKey": {
				"IsForeignKey": false,
				"ModelName": null,
				"PrimaryKeyName": null
			},
			"Type": "varchar",
			"Length": 20,
			"Precision": 0,
			"Scale": 0,
			"IsNullable": false
		}, {
			"FieldName": "Age",
			"Title": "年龄",
			"IsPrimaryKey": false,
			"ForeignKey": {
				"IsForeignKey": false,
				"ModelName": null,
				"PrimaryKeyName": null
			},
			"Type": "int",
			"Length": 0,
			"Precision": 0,
			"Scale": 0,
			"IsNullable": false
		}, {
			"FieldName": "Remark",
			"Title": "备注",
			"IsPrimaryKey": false,
			"ForeignKey": {
				"IsForeignKey": false,
				"ModelName": null,
				"PrimaryKeyName": null
			},
			"Type": "varchar",
			"Length": 200,
			"Precision": 0,
			"Scale": 0,
			"IsNullable": true
		}]
	}, {
		......
	}
		
	}]
}

二、生成golang微服务代码

在转换引擎菜单命令中,点击模型-Golang转换,打开如下图界面:

分别点击解压模板按钮、生成Main.go按钮、生成模型按钮、生成控制器按钮、编译按钮。将会自动生成Golang可执行微服务程序。如下图:

注意:如果编译失败,错误信息中将提示缺少依赖,请go get安装。

这时点击启动服务按钮,提示:

因为还没有生成数据库文件,这时运行自动生成的golang程序,会报错,因此需要生成sqlite数据库(见下一步),在启动服务。

三、创建sqlite数据库

在转换引擎菜单命令中,点击模型-数据库转换,打开如下图界面:

 点击生成脚本按钮,再点击创建Sqlite库,弹出对话框,直接点保存按钮,即可创建数据库(目录和文件名都不用改,程序已经自动做了默认设置)。再到第二步中的最后一小步,启动golang服务。

注意:在工具程序同目录下,有个SysConfig.json文件:

{
  "Application": {
    "Name": "模型工具",
    "Version": "1.0.0",
    "Culture": "zh-cn",
    "LogoPicFile": "pic/logo.png",
    "IconPicFile": "pic/app.icon"
  },
  "Server": {
    "ServerUrl": "http://94.191.85.82:8081"
  },
  "AutoGen": {
    "Devenv": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\IDE\\devenv.com"
  }
}

 其中ServerUrl就是golang微服务的url地址,请把db文件及golang可执行程序拷贝到此服务器并启动。如下图:

四、自动生成Winform表单代码

在转换引擎菜单命令中,点击模型-Winform转换,打开如下图界面:

 

 分别点击上图界面的生成项目文件按钮、生成模型按钮、生成窗体按钮、编译dll按钮。在弹出的目录中找到build.bat,双击这个批处理文件,编译出dll:

编译成功后,按任意键关闭命令行界面。

继续点击拷贝dll按钮、生成菜单配置文件按钮,弹出提示框,重启工具后,可以启动自动生成的winform表单界面。

在工具同目录的Winform子目录下,可查看自动生成的winform代码,用vs2019打开既可查看、编辑、编译:

五、自动生成vue表单代码:

请安装好vue开发环境(nodejs、vue脚手架)。

在转换引擎菜单命令中,点击模型-Vue转换,打开如下图界面:

依次点击解压Vue模板按钮、生成路由按钮、生成View按钮、生成Restful Api按钮,界面如上图。

接着点击npm install按钮,生成批处理,双击启动后下载Vue依赖程序。

点击npm run dev按钮,编译服务并启动测试页面(由于测试过程需要跨域,请采用chrome浏览器(安装Access-Control-Allow-Origin插件)) :

在chrome浏览器打开http://localhost:8080地址:

 点击npm build按钮,打开目录,找到npm_run_build.bat文件,双击启动build过程。build后生成dist目录。

注意:生成发布文件后,在dist目录,打开index.html文件,需将css、js引用目录进行手动调整(build指定的目录有误)。

至此,vue自动生成代码结束。可在工具同目录下找到Vue子目录,使用vs code打开查看、编辑代码。

 六、自动生成flutter表单代码

请安装好flutter开发环境(flutter环境、android studio及插件)。

在转换引擎菜单命令中,点击模型-flutter转换,打开如下图界面:

分别点击解压Flutter模板按钮、生成main.dart按钮、生成Model按钮、生成Page按钮,如上图。

代码生成完毕后,点击flutter pub get按钮,生成flutter_pub_get.bat批处理文件,双击后下载依赖包:

接着点击生成json序列号辅助类按钮,生成json序列号支持代码:

最后,点击flutter build apk按钮,编译安卓apk安装包:

build完毕后,生成apk安装包,安装到安卓手机即可。

安卓运行界面如下图:

 

打开页面默认显示前20条记录,向上滑动到底部,自动加载下一页。向左滑动记录,显示编辑、删除操作按钮。新建、刷新按钮在页面标题栏。

 

页面没有做美化,后续完成...

在工具程序同目录下,找到flutter子目录,使用android studio查看、编译代码。

 

 

 

 

 

Logo

前往低代码交流专区

更多推荐