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*