dotnetcore+vue+elementUI 前后端分离---支持前端、后台业务代码扩展的快速开发框架
框架采用.netcore + vue前后端分离,并且支持前端、后台代码业务动态扩展,框架内置了一套有着20多种属性配置的代码生成器,可灵活配置生成的代码,代码生成器界面配置完成即可生成单表/主从表的增、删、改、查、导入、导出、上传、审核基础功能。只需要简单了解即可上手开发
框架基础功能已构建完成,可直接上手开发功能
- vol.webapi类库可独立用于restful api服务单独部署,用于其他系统单独提供接口,直接上手编写业务代码即可。
- vue+vol.webapi 可用于现有框架前后端分离进行开发
- vol.web类库可用于传统mvc+razor方式进行项目开发
- vol.builder类库可作为一个独立的代码生成器,可生成cshtml页面、vue页面、model文件、service与repository.cs业务处理代码类
- 可作为一个独立站点来发布静态html网页.
- 可直接用于h5移动app开发h5开发看这里
框架特点
- 支持前端、后台基础业务代码动态扩展,可在现有框架增、删、改、查、导入、导出、审核基础业务上扩展复杂的业务代码
- 基本业务全部由框架完成,上手即可对基础业务以外的代码进行扩展
- 上手简单,需要.net core2.1、vscode mysql/sqlservcer 2012、redis(可选) 及以上版本的开发环境
- 学习成本低,封装了常用可扩展组件及demo(前端基于iview/element-ui组件进行了二次封装、后台提供了大量的扩展方法)
- 开发效率高,内定制开发的代码生成器,生成前端(vue、后台代码),代码生成器已完成90%以上的重复工作,只需要在提供的扩展类型中实现其他业务
- 前端vue页面表单下拉/多选框完成自动绑定数据源,不需要写任何代码,并支持扩展自定开发绑定。
- 后台已完成权限、菜单、jwt等内部功能
如果你没有做过webpack+vue工程化开发项目,可能会刚开始相当不适应,或者安装环境总是出问题,但只要你熟悉开发流程后,你会发现采用vue开发比jquery爽太多了。上手项目需重点了解基础vue语法,特别是了解组件、路由及import的使用
开发及依赖环境
vs2017 、.netcore2.1 、efcore2.1、jwt、dapper、autofac、sqlserver/mysql、redis(可选,没有redis的在appsetting.json中不用配置,默认使用内置imemory)、
vscode、vue2.0(webpack、node.js,如果没有此环境自行搜索:vue webpack npm)、vuex、axios、promise、iview、element-ui
项目运行
如果你没有前端环境,请先安装node
前端开发使用vscode
- 1、使用cmd命令切换至前端vue项目.../vol.vue路径下,执行npm install命令(只有从来没执行过此命令的才执行npm install)
- 2、运行后端项目:在后端项目路径.../vol.webapi/运行builder_run.bat端口设置的是9991,运行前先看appsettings.josn配置属性说明
- 3、运行前端项目:在前端vue项目路径.../vol.vue/运行run.bat(每次启动会进行编译,这个时间可能会有点长)
- 4、输入http://localhost:8080访问
功能介绍
功能 | 描述 | 完成情况 |
用户管理(登陆、密码修改) | 登陆、密码修改 | √ |
角色管理 | 角色管理 | √ |
权限分配 | 用户基础权限分配,后台支持多种权限控制方式,也可自行定义 | √ |
用户权限/菜单静态化处理 | 为减少redis读取数据传输量,对用户权限/菜单在本地服务器作静态化处理,只有在用户权限/菜单变化时才刷新redis缓存 | √ |
jwt认证 | 采用前台端分离jwt认证,并且支持jwt过期动态刷新 | √ |
异步队列批量写日志 | 框架封装了一个异步队列写日志,此前项目每天pv约150w左右,采用异步队列的方式批量写入日志非常顺畅 | √ |
repository | repository作为数据提供,提供了常用ef方法封装 | √ |
前端常用组件封装 | 此框架主要围绕表单组件进行开发,并且封装的组件都支持扩展 | √ |
基础业务实现 | 已实现(表/主从表)的增、删、改、查、导入、导出、审核基础功能(前提建一张带主键的mysql/sqlserver表),这些基础业务不要写任何代码,直接用代码生成器生成即可,并且生成的代码支持其他业务代码扩展 | √ |
代码生成器 | 代码生成器为可视化配置,提供了可配置属性的20多种,所有基础功能只需要勾选确认,生成的代码包括vue/vue扩展文件/路由,后台表相关的类(控制器/扩展控制器,业务接口/扩展业务接口,接口实现/扩展接口实现类),支持单表表单、主从表单的代码生成 | √ |
数据源预先配置 | 数据源作为前端下拉框/多选框的字典项源,支持key/value配置及sql从数据源加载配置 | √ |
表单数据源自动绑定 | 如果一个表单带有多个下拉框,这里只需要配置数据源编号即可自动绑定 | √ |
redis/memory缓存 | 已对redis/memory封装直接使用即可 | √ |
dapper | 已对dapper封装直接使用即可 | √ |
扩展方法 | 框架封装了大量的扩展方法,如:通用实体校验(框架所有实现校验全部依赖于此扩展)扩展、string扩展、object扩展、表达式生成/解析扩展、文件操作扩展等 | √ |
h5开发 | 可支持直接开发并部署h5页面 h5开发看这里 | √ |
分库分表 | 分库分表操作 | x |
静态页面发布 | x | |
消息推送 | x |
1、只读基础表单
整个只读的基础表单的所有前后端代码,全部由代码生成器生成,代码生成器中几乎不需要配置,并支持并后端业务代码扩展,直接生成代码后,配置菜单权限即可
2、自动绑定下拉框数据表单
整个自动绑定下拉框数据表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,在代码生成器中只需要指定数据源编号,页面加载时会根据编号自动加载数据源并绑定
3、启用图片支持、审核表单
整个启用图片支持、审核表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,审核功能需要在菜单配置权限、代码生成器中勾选启用图片支持
4、高级查询
整个表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,查询字段、类型(下拉框、日期、textarea等)、所在行与列都由代码生成器完成,不需要写任何代码
5、单表新建、编辑
单表新建、编辑所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,新建、编辑字段、类型(下拉框、日期、textarea等)、所在行与列、字段是否只读、标签显示的长度等都由代码生成器完成,不需要写任何代码
6、主从表新建、编辑
主从表新建、编辑所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,新建、编辑从表配置、字段、类型(下拉框、日期、textarea等)、所在行与列、字段是否只读、标签显示的长度等都由代码生成器完成,不需要写任何代码
7、单列、多列form表单
单列、多列form表单,已封装成组件,并且支持组件扩展。可配置显示的列的数量、是否只读、列的数据类型(日期、下拉框、textarea、列宽、自动绑定数据源、图片上传等), 这些只需要配置json格式即可使用
8、可配置的table(自动/手动加载table数据、自动绑定数据源、编辑功能)
单列、多列form表单,已封装成组件,并且支持组件扩展。可配置显示的列的数量、是否只读、列的数据类型(日期、下拉框、textarea、列宽、自动绑定数据源、图片上传等), 这些只需要配置json格式即可使用
从后台加载数据、自动绑定数据
可编辑的table,手动绑定数据、自动绑定数据源
表单与table混合使用
9、excel导入
excel导入整个页面都由代码生成器生成,导入的字段、字段是否必填,下载模板也由代码生成器上配置(自己根据实际需要决定是否采用此方法),导入时会验证是否为空与数据的合法性,逻辑校验自己实现扩展方法即可
10、h5开发
h5只是做了一个简单的demo,如果你有h5开发经验,请忽略,如果你没有h5开发经验,可看看这里
11、权限分配
目前只实现了对用户的角色的action进行权限分配
12、菜单管理
默认8种权限,可自行定义其他权限(代码生成器完后,直接在菜单上配置url(url路径为自动生成前端的router->path,从此处复制过过即可))
13、个人中心
个人中心目前只开发了页面与修改密码,其他功能自行根据需要实现
14、前端、后台业务代码动态扩展
框架提供了前台后端扩展方法与属性,只需要根据自己的业务实现扩展业务。后台大部分都采用的委托扩展方法,这里只截了一张图前端数据加载事件的扩展方法,前后台完整扩展参考demo:http://132.232.2.109/sellorder
15、代码生成器
代码生成器提供了20多种可配置的属性,可灵活配置显示、查询、编辑、导入、导出、主从关系等功能
还有角色管理、日志管理、数据源管理、其他组件、后台代码等功能就不再介绍了,
下一篇: 线程状态