abp vnext 快速搭建项目框架
刚发现图片不可看,https://shimo.im/docs/tHRDPcxw88rr6pgg/ 《abp vnext 快速搭建项目框架》,这是石墨笔记原文
安装.net core develop 环境
请查阅.net core 环境安装,也可以从VS 2019中安装,版本3.1.10(暂时项目不考虑.net5)
安装 abp VNext cli
- dotnet tool install -g Volo.Abp.Cli --version 3.3.2
- 如果安装了最新版本,创建项目的时候需要指定为3.3.2
- 安装时如意外终止,再进行安装时会报错,abp 与已有命令冲突,解决方法,在其他电脑安装好,将报错目录的文件拷贝过来就可以
创建项目
- abp new Dx.Csp.VerificationCode -t app --tiered --no-ui --version 3.3.2
- -t 是模板默认是app,创建项目是可以不使用-t,另外一个选项为module,创建模块用
- --tiered 创建前后分离的项目
- --no-ui是忽略ui
- --version abp 版本
项目结构如下
![](https://uploader.shimo.im/f/F74QMtVzdDlnAqL4.png!thumbnail)
依赖关系
![](https://uploader.shimo.im/f/gVo7A1deAFv7zN54.png!thumbnail)
去除生成时自带模块
1.Application
![](https://uploader.shimo.im/f/w0Pwqahb6IZJopva.png!thumbnail)
2.Application.Contracts
![](https://uploader.shimo.im/f/GLZkGzoEfAdGVdpS.png!thumbnail)
3.注释租户相关的服务
![](https://uploader.shimo.im/f/NLMbUNQvas43GUW2.png!thumbnail)
![](https://uploader.shimo.im/f/l5kaOklepLrOeoVD.png!thumbnail)
4.删除或者注释掉IdentityServer相关服务如下
![](https://uploader.shimo.im/f/WNfZFVa9gKSCAPL6.png!thumbnail)
5.注释Domian中不需要的模块
![](https://uploader.shimo.im/f/2Me3iGylhxKPMhOr.png!thumbnail)
6.注释租户配置
![](https://uploader.shimo.im/f/WgPJNNIRKKe4T1Xc.png!thumbnail)
7.注释Domian.Shared中不需要的模块
![](https://uploader.shimo.im/f/zdLdvCJT2VdFgxfS.png!thumbnail)
8.注释掉自带用户相关配置包括DbSet<AppUser>
![](https://uploader.shimo.im/f/yPDx04kuFyzpLZep.png!thumbnail)
9.注释EFCore中不需要的模块
![](https://uploader.shimo.im/f/dRsAuE3bdRCzbfXY.png!thumbnail)
10.注释EfCore不使用的模块数据迁移
![](https://uploader.shimo.im/f/Qe1uf5MvLJESkko2.png!thumbnail)
11.删除创建项目自带的Migrations目录,执行数据迁移的时候自动生成
![](https://uploader.shimo.im/f/04copnWhz9xwzZm9.png!thumbnail)
12.注释HttpApi中不需要的模块
![](https://uploader.shimo.im/f/D9LEZ1ND1nSLppQK.png!thumbnail)
13.注释Client模块中不需要的模块
![](https://uploader.shimo.im/f/bXFMVKqBpyQDthk6.png!thumbnail)
14.注释租户、认证、授权中间件(网关鉴权)
![](https://uploader.shimo.im/f/aa9e602z4twluStd.png!thumbnail)
修改配置
1.修改Dx.Csp.Examples.DbMigrator,Dx.Csp.Examples.HttpApi.Host中appsettings.json数据库配置
![](https://uploader.shimo.im/f/3NivM8hHn8WfSMYY.png!thumbnail)
2.也可以自定义名称和DbContext中注解处相同即可
![](https://uploader.shimo.im/f/6sTye9SPKUHI60Ss.png!thumbnail)
3.修改使用mysql数据库,替换sqlserver引用
![](https://uploader.shimo.im/f/6TrUHaC2GrL5oqAb.png!thumbnail)
4.配置使用MySQL
![](https://uploader.shimo.im/f/FloTojgflsluOvcS.png!thumbnail)
![](https://uploader.shimo.im/f/9GXRW5DfhBFqCfEQ.png!thumbnail)
新建实体配置数据库映射关系,Domain中新建目录可以将命名空间改短一些
1.新建实体
![](https://uploader.shimo.im/f/hDdPbtw6UtE4kIG3.png!thumbnail)
2.配置数据库映射
![](https://uploader.shimo.im/f/qF6OkpewjnagTvjv.png!thumbnail)
创建服务接口,注意继承的接口不要丢了
创建服务实现服务接口,注意箭头指的父类,和接口
![](https://uploader.shimo.im/f/8L8u5SArLTgz55F4.png!thumbnail)
执行数据命令生成迁移脚本
1.打开程序包管理控制器,选择DbMigrations类库
![](https://uploader.shimo.im/f/p4alYuRx79JZAVh3.png!thumbnail)
2.设置控制台项目DbMigrator为启动项目
![](https://uploader.shimo.im/f/9dyYeKipvB3a7JGz.png!thumbnail)
3.Dx.Csp.Examples.Application中应用迁移依赖类库,直接复制过来就可以了在DbMigrations那个类库项目中有
![](https://uploader.shimo.im/f/W1KFoRmAGsZelNNR.png!thumbnail)
4.Add-Migration "init",看到To undo this action,use Remove-Migration 就成功了
![](https://uploader.shimo.im/f/NapvoamvWjg9zqK9.png!thumbnail)
执行数据迁移,直接启动Dx.Csp.Examples.DbMigrator控制台项目就可以了,会提示迁移成功
数据验证参阅文档
https://docs.abp.io/zh-Hans/abp/latest/FluentValidation
命令生成最新版本没有问题,但是生成3.3.2这个版本是有问题的,可以生成最新版本然后改回去