ABP框架快速搭建

一、前置环境准备

先确认你的环境满足以下要求(比 SQL Server 多一个 MySQL 驱动依赖,但 ABP 会自动处理):

  1. 安装 .NET 8.0 SDK

    (ABP 主流支持版本):

    • 下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
  2. 安装 ABP CLI

    dotnet tool install -g Volo.Abp.Cli
    # 若已安装,升级到最新版:dotnet tool update -g Volo.Abp.Cli
    
  3. MySQL 环境

    • 安装 MySQL 8.0+(推荐),确保服务正常运行,且能通过账号密码访问。
    • 记住 MySQL 的 服务器地址(默认 localhost)、端口(默认 3306)、用户名(如 root)、密码

二、快速创建基于 MySQL 的 ABP 项目

1. 创建项目(核心命令,指定 MySQL)

打开 PowerShell/CMD,进入你想存放项目的目录(如 D:\Projects),执行以下命令:

# 创建名为 MyAbpMysqlProject 的 Web 应用,MVC UI,MySQL 数据库
abp new MyAbpMysqlProject -t app -u mvc -d mysql

参数说明

  • -t app:应用程序模板(而非模块);
  • -u mvc:UI 框架选 MVC(也可换 react/vue/blazor,只需改 -u 参数);
  • -d mysql关键,指定数据库为 MySQL(ABP 会自动引入 MySQL 驱动)。

等待 1-2 分钟,ABP CLI 会自动生成完整的分层项目(领域层、应用层、Web 层等),并自动配置 MySQL 相关依赖。

2. 配置 MySQL 连接字符串

打开生成的项目(用 Visual Studio/Rider),找到 MyAbpMysqlProject.DbMigrator 项目下的 appsettings.json 文件,修改连接字符串:

"ConnectionStrings": {
  "Default": "Server=localhost;Port=3306;Database=MyAbpMysqlDb;Uid=root;Pwd=你的MySQL密码;Allow User Variables=True;Character Set=utf8mb4;"
}

关键配置说明

  • Server:MySQL 服务器地址(本地为 localhost);
  • Port:默认 3306,若修改过需对应调整;
  • Database:自定义数据库名(无需提前创建,ABP 会自动生成);
  • Uid/Pwd:MySQL 的账号和密码;
  • Allow User Variables=TrueCharacter Set=utf8mb4:ABP 适配 MySQL 的必需配置,避免字符集 / 语法问题。
3. 执行数据库迁移(创建表 + 初始化数据)

ABP 的 DbMigrator 项目是专门用来初始化数据库的,步骤如下:

  1. 在解决方案资源管理器中,右键 MyAbpMysqlProject.DbMigrator → 设置为启动项目
  2. 直接运行(F5),程序会自动:
    • 连接 MySQL 并创建 MyAbpMysqlDb 数据库;
    • 生成 ABP 内置的所有表(用户、角色、权限等);
    • 插入默认种子数据(管理员账号 admin,密码 1q2w3E*)。
  3. 运行完成后,查看 MySQL 数据库,能看到数十张以 abp_ 开头的表,说明迁移成功。
4. 运行 Web 项目
  1. 右键 MyAbpMysqlProject.Web → 设置为启动项目;
  2. 运行(F5),浏览器会自动打开登录页面;
  3. 输入默认账号 admin / 密码 1q2w3E*,成功登录并看到 ABP 仪表盘,说明整个框架搭建完成。

三、MySQL 专属注意事项(新手必看)

  1. MySQL 版本兼容:ABP 推荐 MySQL 8.0+,5.7 版本可能存在少量语法兼容问题(如排序规则);
  2. 字符集配置:必须确保 MySQL 数据库的字符集为 utf8mb4(支持 emoji 等特殊字符),ABP 连接字符串中已配置,无需额外操作;
  3. 权限要求:连接 MySQL 的账号需要有 CREATE DATABASECREATE TABLE 等权限(root 账号默认满足);
  4. 驱动版本:ABP 会自动引用 Pomelo.EntityFrameworkCore.MySql(EF Core 官方推荐的 MySQL 驱动),无需手动安装。

总结

  1. 核心命令:创建项目时通过 -d mysql 指定数据库,这是和 SQL Server 唯一的核心区别;
  2. 关键配置:MySQL 连接字符串需包含 Allow User Variables=TrueCharacter Set=utf8mb4,避免适配问题;
  3. 验证标准:迁移后 MySQL 生成 abp_ 开头的表,能登录默认账号,即为搭建成功。

如果需要切换 UI 框架(比如 React/Blazor),只需修改创建命令的 -u 参数,例如:

# 创建 React UI + MySQL 的 ABP 项目
abp new MyAbpMysqlProject -t app -u react -d mysql

四、ABP核心参数分析

-t app-u mvc 是 ABP CLI 创建项目时的核心参数

一、-t app:指定项目模板类型(Template)

-t--template 的简写,用来告诉 ABP CLI 你要创建哪种类型的项目模板,app 是最常用的模板值。

1. 核心含义

-t app 表示创建一个完整的、可独立运行的 ABP 应用程序(Application),包含从领域层、应用层到 UI 层、数据库层的全套 DDD 分层结构,是搭建完整项目的基础模板。

2. 其他常用的 -t 可选值(对比理解)
参数值含义使用场景
app完整应用程序模板(默认)搭建独立运行的 Web 应用、API 应用等完整项目
module模块模板开发可复用的 ABP 模块(比如用户模块、订单模块),供多个项目引用
console控制台应用模板开发基于 ABP 的控制台程序(比如定时任务、数据迁移工具)
api纯 API 应用模板只生成 API 层 + 核心层,无 UI 界面,适合前后端分离的后端服务
举例对比
  • 如果你要做一个完整的电商网站:用 -t app
  • 如果你要做一个可被多个项目复用的「商品模块」:用 -t module
  • 如果你只需要提供接口给前端 / APP 调用:用 -t api
二、-u mvc:指定 UI 框架(UI Framework)

-u--ui 的简写,用来指定项目的前端 UI 框架,mvc 表示使用 ASP.NET Core MVC 作为 UI 层。

1. 核心含义

-u mvc 表示项目的 UI 层基于 ASP.NET Core MVC 实现:

  • 包含 Razor 视图(.cshtml 文件)、控制器(Controller)、静态资源(CSS/JS);
  • 是「前后端不分离」的开发模式,页面渲染、逻辑处理都在服务端完成;
  • 适合快速开发中小型应用,上手成本低(对.NET 开发者友好)。
2. 其他常用的 -u 可选值(主流 UI 框架)
参数值含义特点适用场景
mvcASP.NET Core MVC服务端渲染,前后端不分离,上手快中小型应用、内部系统、快速原型
reactReact + Ant Design Pro前端分离,React 生态,UI 美观中大型应用、对交互要求高的系统
vueVue + Ant Design Vue前端分离,Vue 生态,易上手中小型应用、Vue 技术栈团队
blazor-serverBlazor Server.NET 写前端,无 JS/TS 成本.NET 全栈开发者、内部系统
blazor-wasmBlazor WebAssembly前端运行在浏览器,无服务端依赖轻量应用、离线应用
none无 UI 层只有后端核心 + API 层纯接口服务、微服务后端
关键补充
  • 如果你选 -u react/vue,ABP CLI 会自动生成前端项目(单独的 React/Vue 工程)+ 后端 API 工程,实现前后端分离;
  • 如果你选 -u none,项目只有后端核心层和 API 层,没有任何 UI 相关代码;
  • 不同 UI 模板的项目结构会有差异:比如 -u mvc 会有 Web 项目(包含 MVC 控制器 / 视图),而 -u react 会有 HttpApi.Host(后端 API)+ react(前端项目)两个核心项目。
三、参数组合举例(帮你理解实际用法)
命令效果适用场景
abp new MyProject -t app -u mvc -d mysql完整应用 + MVC UI + MySQL中小型内部系统,快速开发
abp new MyApi -t api -u none -d mysql纯 API 服务 + 无 UI + MySQL给前端 / APP 提供接口的后端服务
abp new MyAdmin -t app -u react -d sqlserver完整应用 + React UI + SQL Server中大型后台管理系统,前后端分离
总结
  1. -t app:核心是「模板类型」,app 代表创建完整的独立应用(而非模块 / 控制台),是搭建项目的基础;
  2. -u mvc:核心是「UI 框架」,mvc 代表使用服务端渲染的 MVC 模式,适合.NET 开发者快速上手;
  3. 灵活组合:根据项目需求选择模板和 UI 框架,比如前后端分离选 -u react,纯接口服务选 -t api -u none

如果你的项目是「内部管理系统,想快速开发,不用前后端分离」,那 -t app -u mvc 就是最优选择;如果你的项目需要给前端 / APP 提供接口,建议用 -t api -u none

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值