ABP为一个脚手架项目,源码启动起来就是一个项目,已经内置了用户,角色,权限等基础服务,让我们可以直接进入业务开发。
最新的ABP基于.Net6建议使用VS2022进行开发
ABP项目的分层
.Application 为应用层:构建服务
.Core 为领域层:定义实体,实现实体功能,定义仓储接口
.EntityFrameworkCore (EF层)为数据库处理:实体与数据表的对应与配置,实现仓储接口
.Web.Core 为控制层:负责把应用服务自动解析为Controller
.Web.Host 为程序入口:系统配置(数据库连接,系统端口,日志框架等)
启动ABP只需要简单的3步:
1,到官网下载模版项目: https://aspnetboilerplate.com/
2,用VS2022打开解决方案,将Web.Host设置为启动项
3,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore,执行命令建库:Update-Database
如果建库成功就可以启动项目了
下面是详细步骤
1,下载ABP模版:基于.NetCore的Vue或者Anjular单页面应用(前后端分离)
https://aspnetboilerplate.com/
2,用VS2022打开解决方案
3,如果你在本机安装了SqlServer,这一步可以跳过;非本地数据库需要修改数据库连接;
"ConnectionStrings": {
"Default": "Server=localhost; Database=AbpDemoDb; Uid=root; Pwd=123456;"
}
如果使用MySQL,请看步骤4,步骤5
如果使用默认的SQL Server,跳过步骤4,步骤5
4,修改为使用MySQL:在XXX.EntityFrameworkCore层用Nuget安装添加Pomelo.EntityFrameworkCore.MySql
5,修改 XXXDbContextConfigurer类的数据库连接配置
namespace AbpDemo.EntityFrameworkCore
{
public static class AbpDemoDbContextConfigurer
{
public static void Configure(DbContextOptionsBuilder<AbpDemoDbContext> builder, string connectionString)
{
//builder.UseSqlServer(connectionString);
builder.UseMySql(connectionString);
}
public static void Configure(DbContextOptionsBuilder<AbpDemoDbContext> builder, DbConnection connection)
{
//builder.UseSqlServer(connection);
builder.UseMySql(connection);
}
}
}
6,数据迁移:
将Web.Host设置为启动项,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore,执行命令更新数据库即可:Update-Database
ABP会自动建库;
下面是常用数据库迁移命令,供你参考
产生迁移文件 (可以先删除EntityFrameworkCore项目中的Migrations文件夹,产生的迁移文件更好看)
Add-Migration init
更新数据库
Update-Database
产生数据库脚本 (不执行第2步,用这个命令产生的脚本建库也可以,适用于生产环境)
Script-Migration [from] [to]
7,将Web.Host设置为启动项,运行项目,如果没有问题会自动在浏览器里面打开Swagger页面