Abp vNext 学习(1)

Abp vNext 学习第一弹

在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开发的:

  • Entity Framework Core 做为数据库提供程序.
  • MVC / Razor Pages 做为UI框架.

先决条件

开发计算机上应安装以下工具:

一个集成开发环境 (比如: Visual Studio) 它需要支持 .NET 7.0+ 的开发.

Node v16 或 v18

Yarn v1.20+ (不是v2) 1 或 npm v6+ (已跟随Node一起安装)

Redis (启动解决方案使用 Redis 作为 分布式缓存).

安装 Abp CLI

dotnet tool install -g Volo.Abp.Cli

Abp Cli

创建新项目

abp new Acme.BookStore -dbms MYSQL -cs 'Server=xyfy-out.mysql.rds.aliyuncs.com;Database=Acme;User Id=dev;Password=Dzd@2020'

数据库连接字符串仅供参考,实际不能访问。

tiered结构 abp new Acme.BookStore --tiered

数据库修改

修改数据库连接字符串【如有必要】

检查在 和.Web、.DbMigrator 项目 中 appsettings.json 文件里的连接字符串.

修改为Mysql数据库【如果未指定-dbms参数】

  • 替换Volo.Abp.EntityFrameworkCore.SqlServer包,以及using

    Visual Studio Code 打开解决方案文件夹,替换 字符串 Volo.Abp.EntityFrameworkCore.SqlServerVolo.Abp.EntityFrameworkCore.MySQL

  • 依赖模块修改

    替换typeof(AbpEntityFrameworkCoreSqlServerModule)typeof(AbpEntityFrameworkCoreMySQLModule)

  • UseMySQL()

    在解决方案里寻找 UseSqlServer() 的调用.检查以下文件:

    src/Acme.BookStore.EntityFrameworkCore/EntityFrameworkCore/BookStoreEntityFrameworkCoreModule.cs文件,把UseSqlServer() 替换为 UseMySql()

    src/Acme.BookStore.EntityFrameworkCore/EntityFrameworkCore/BookStoreDbContextFactory.cs文件,把UseSqlServer()替换为UseMySql().并且添加新的参数(ServerVersion),比如:.UseMySql(configuration.GetConnectionString("Default"), ServerVersion.Parse("8.0.21-mysql"))

    根据不同的解决方案结构,你可能会发现更多需要修改的文件

  • 重新生成迁移文件

    启动模板使用Entity Framework Core’s Code First Migrations. EF Core Migrations依赖选择的DBMS提供者,修改数据库提供程序后会导致这些迁移失效。

    删除 .EntityFrameworkCore 项目里的Migrations文件夹,然后重新生成解决方案。

    1
    2
    3
    4
    cd src/Acme.BookStore.EntityFrameworkCore
    dotnet ef migrations add 'Initial'
    # 返回之前的目录
    cd -

    这会创建数据库迁移文件。

数据迁移

执行.DbMigrator项目

1
2
cd src/Acme.BookStore.DbMigrator
dotnet run

或者,您可以在Visual Studio的程序包管理器控制台中运行Update-Database命令以应用迁移。

程序启动

程序启动前, 在web项目运行 abp install-libs 命令来还原客户端库,这个将产生libs文件夹
分层解决方案使用 Redis 作为分布式缓存. 确保它已安装并在本地计算机上运行. 如果你使用的是远程 Redis 服务器, 请修改项目的 appsettings.json 文件中的配置.

  1. 确保 .Web 项目是启动项目. 运行此应用程序, 它将在浏览器中打开 登录 页面.

    在 Visual Studio 中使用 Ctrl+F5(而不是F5) 在不进行调试的情况下运行应用程序. 如果你没有调试目的, 这会更快.

输入用户名 admin 和 密码 1q2w3E* 登录应用程序. 应用程序已启动并正在运行. 你可以根据此启动模板开始开发应用程序.

Demo Codes

github commit

下一章

参考下一篇 :Abp vNext 学习(2).