一、前置环境准备
先确认你的环境满足以下要求(比 SQL Server 多一个 MySQL 驱动依赖,但 ABP 会自动处理):
-
安装 .NET 8.0 SDK
(ABP 主流支持版本):
- 下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
-
安装 ABP CLI
dotnet tool install -g Volo.Abp.Cli # 若已安装,升级到最新版:dotnet tool update -g Volo.Abp.Cli -
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=True和Character Set=utf8mb4:ABP 适配 MySQL 的必需配置,避免字符集 / 语法问题。
3. 执行数据库迁移(创建表 + 初始化数据)
ABP 的 DbMigrator 项目是专门用来初始化数据库的,步骤如下:
- 在解决方案资源管理器中,右键
MyAbpMysqlProject.DbMigrator→ 设置为启动项目; - 直接运行(F5),程序会自动:
- 连接 MySQL 并创建
MyAbpMysqlDb数据库; - 生成 ABP 内置的所有表(用户、角色、权限等);
- 插入默认种子数据(管理员账号
admin,密码1q2w3E*)。
- 连接 MySQL 并创建
- 运行完成后,查看 MySQL 数据库,能看到数十张以
abp_开头的表,说明迁移成功。
4. 运行 Web 项目
- 右键
MyAbpMysqlProject.Web→ 设置为启动项目; - 运行(F5),浏览器会自动打开登录页面;
- 输入默认账号
admin/ 密码1q2w3E*,成功登录并看到 ABP 仪表盘,说明整个框架搭建完成。
三、MySQL 专属注意事项(新手必看)
- MySQL 版本兼容:ABP 推荐 MySQL 8.0+,5.7 版本可能存在少量语法兼容问题(如排序规则);
- 字符集配置:必须确保 MySQL 数据库的字符集为
utf8mb4(支持 emoji 等特殊字符),ABP 连接字符串中已配置,无需额外操作; - 权限要求:连接 MySQL 的账号需要有
CREATE DATABASE、CREATE TABLE等权限(root 账号默认满足); - 驱动版本:ABP 会自动引用
Pomelo.EntityFrameworkCore.MySql(EF Core 官方推荐的 MySQL 驱动),无需手动安装。
总结
- 核心命令:创建项目时通过
-d mysql指定数据库,这是和 SQL Server 唯一的核心区别; - 关键配置:MySQL 连接字符串需包含
Allow User Variables=True和Character Set=utf8mb4,避免适配问题; - 验证标准:迁移后 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 框架)
| 参数值 | 含义 | 特点 | 适用场景 |
|---|---|---|---|
mvc | ASP.NET Core MVC | 服务端渲染,前后端不分离,上手快 | 中小型应用、内部系统、快速原型 |
react | React + Ant Design Pro | 前端分离,React 生态,UI 美观 | 中大型应用、对交互要求高的系统 |
vue | Vue + Ant Design Vue | 前端分离,Vue 生态,易上手 | 中小型应用、Vue 技术栈团队 |
blazor-server | Blazor Server | .NET 写前端,无 JS/TS 成本 | .NET 全栈开发者、内部系统 |
blazor-wasm | Blazor 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 | 中大型后台管理系统,前后端分离 |
总结
- -t app:核心是「模板类型」,
app代表创建完整的独立应用(而非模块 / 控制台),是搭建项目的基础; - -u mvc:核心是「UI 框架」,
mvc代表使用服务端渲染的 MVC 模式,适合.NET 开发者快速上手; - 灵活组合:根据项目需求选择模板和 UI 框架,比如前后端分离选
-u react,纯接口服务选-t api -u none。
如果你的项目是「内部管理系统,想快速开发,不用前后端分离」,那 -t app -u mvc 就是最优选择;如果你的项目需要给前端 / APP 提供接口,建议用 -t api -u none。

7866

被折叠的 条评论
为什么被折叠?



