ABP是一个开源应用程序框架,专注于基于ASP.NET Core的Web应用程序开发,也适合微服务开发。在除夕那天,ABP更新到了2.0.1,其实在一年前我就在关注它,但是那时候还不是很成熟,所以一直处于观望阶段。这回终于有机会了。
在之前我就用aspnetboilerplate开发过一些应用,它能确实给我们带来更加简便的开发体验,像之前要搭建一个新项目需要自己从0开始,ABP的话是直接通过了模版分分钟生成一个可用的项目,而且还包含了权限、多租户、审计日志等功能。
aspnetboilerplate
abp vnext
新建ABP项目
官方准备了两种新建ABP项目的方式:
- ABP CLI,需要提前安装
dotnet tool install -g Volo.Abp.Cli,然后abp new 项目名称新建项目 - 通过在线生成项目,生成完成后下载到本地
这里我选择在线生成的方式.在线项目生成地址https://abp.io/get-started.
初始化ABP WebAPI
使用EF Core Update-Database初始化数据库,这里我的数据库是MariaDB,所以我们还需要安装一个插件Volo.Abp.EntityFrameworkCore.MySQL,然后在DemoEntityFrameworkCoreModule类中,将options.UseSqlServer();修改为options.UseMySQL();,DemoMigrationsDbContextFactory中UseSqlServer改为UseMySql,修改本地数据库连接:"Default": "server=localhost;Database=abpdemo;user=root;Password=root;pooling=true;CharSet=utf8;port=3306;sslmode=none",将Abp.Demo.DbMigrator为启动项目。进入到程序包管理器控制台,选择Abp.Demo.EntityFrameworkCore.DbMigrations项目,
然后我们删除掉原有的SqlServer的初始化脚本:
1 | PM> remove-migration |
我们重新生成:
1 | PM> add-migration Initial |
然后执行update-database即可生成相应的表:
1 | PM> update-database |
另外,MariaDB的时候,会出现
1 | used in key specification without a key length #longtext无法添加为unique等索引 |
我这里是通过修改类型和长度解决这些问题的,
执行成功后,我把表都删除掉,然后运行Abp.Demo.DbMigrator项目.
分别启动Abp.Demo.HttpApi.Host、Abp.Demo.IdentityServer、Abp.Demo.Web三个项目,


点击登录,默认用户名/密码:admin/1q2w3E*