
入门手册
1. 什么是 ABP Framework?
ABP(ASP.NET Boilerplate / ABP Framework)是一个开源、模块化、领域驱动设计(DDD) 的应用程序开发框架,用于构建基于 ASP.NET Core 的现代 Web 应用程序。
- 官网:https://abp.io
- GitHub 仓库:https://github.com/abpframework/abp
- 许可证:MIT(完全开源,可用于商业项目)
- 核心特性 :
- 分层架构(Domain, Application, Infrastructure, Presentation)
- 内置多租户支持
- 身份认证与授权(集成 IdentityServer / OpenIddict)
- 自动 API 控制器生成(基于应用服务)
- 动态客户端代理(支持 Angular / React / Blazor / MVC / Razor Pages)
- 模块化系统(可插拔模块)
- 审计日志、数据过滤、本地化、设置管理等基础设施
注:ABP Framework 是 ASP.NET Boilerplate 的下一代演进,两者不兼容。当前主流使用的是 ABP Framework(即 abp.io)。
2. 系统要求
- .NET SDK 8.0(ABP v8.x 基于 .NET 8)
- 推荐 IDE:Visual Studio 2022 / JetBrains Rider / VS Code
- 数据库(可选):SQL Server / PostgreSQL / MySQL / SQLite(通过 EF Core 支持)
3. 快速开始:创建你的第一个 ABP 项目
步骤 1:安装 ABP CLI
bash
dotnet tool install -g Volo.Abp.Cli
若已安装,请更新至最新版:
bashdotnet tool update -g Volo.Abp.Cli
步骤 2:创建新项目
bash
abp new Acme.BookStore --ui mvc --database ef
参数说明:
Acme.BookStore:项目名称(命名空间)--ui mvc:使用 MVC / Razor Pages 作为前端(也可选angular、react、blazor-server、blazor-wasm)--database ef:使用 Entity Framework Core(默认);也可选mongodb
其他常用选项:
--tiered:启用分层部署(IdentityServer 分离)--mobile:包含 MAUI 移动端(实验性)
步骤 3:还原依赖并运行
bash
cd Acme.BookStore
dotnet restore
首次运行需创建数据库:
bash
cd Acme.BookStore.DbMigrator
dotnet run
该步骤会:
- 创建数据库
- 应用迁移(Migrations)
- 种子初始数据(如 admin 用户:admin / 1q2w3E*)
然后启动 Web 项目:
bash
cd ../Acme.BookStore.Web
dotnet run
访问 https://localhost:44329(端口可能不同),使用默认账号登录。
4. 项目结构概览(MVC 模板)
Acme.BookStore/
├── src/
│ ├── Acme.BookStore.Application # 应用层(DTO、应用服务)
│ ├── Acme.BookStore.Application.Contracts # 应用契约(接口、DTO 共享)
│ ├── Acme.BookStore.Domain # 领域层(实体、领域服务)
│ ├── Acme.BookStore.Domain.Shared # 领域共享(常量、枚举)
│ ├── Acme.BookStore.EntityFrameworkCore # EF Core 配置、仓储实现
│ ├── Acme.BookStore.HttpApi # API 控制器(自动生成)
│ ├── Acme.BookStore.HttpApi.Client # C# 客户端代理
│ ├── Acme.BookStore.Web # Web 层(MVC / Razor Pages)
│ └── Acme.BookStore.DbMigrator # 数据库迁移工具
└── test/
├── Acme.BookStore.Application.Tests
├── Acme.BookStore.Domain.Tests
└── Acme.BookStore.EntityFrameworkCore.Tests
所有层均遵循依赖倒置原则,通过 ABP 模块系统自动注册。
5. 核心概念简述
5.1 模块(Module)
每个项目都是一个 ABP 模块,继承 AbpModule,通过 [DependsOn(...)] 声明依赖。
csharp
[DependsOn(
typeof(BookStoreDomainModule),
typeof(BookStoreApplicationModule),
typeof(BookStoreEntityFrameworkCoreModule)
)]
public class BookStoreWebModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
// 配置服务
}
}
5.2 应用服务(Application Service)
定义业务逻辑入口,自动暴露为 HTTP API。
csharp
public class BookAppService : ApplicationService, IBookAppService
{
public async Task<List<BookDto>> GetListAsync()
{
var books = await _bookRepository.GetListAsync();
return ObjectMapper.Map<List<Book>, List<BookDto>>(books);
}
}
5.3 实体(Entity)
继承 AggregateRoot<Guid> 或 Entity<int>。
csharp
public class Book : AuditedAggregateRoot<Guid>
{
public string Name { get; set; }
public float Price { get; set; }
}
5.4 自动 API 控制器
只要应用服务实现接口并继承 ApplicationService,ABP 会自动生成 RESTful API,无需手动写 Controller。
6. 学习资源
- 官方文档:https://docs.abp.io
- 示例项目 :
- 社区 :
- GitHub Discussions:https://github.com/abpframework/abp/discussions
- Stack Overflow(标签:
abp-framework)
7. 常见误区澄清
| 误区 | 事实 |
|---|---|
| "ABP 是一个 CMS" | ❌ ABP 是开发框架,不是内容管理系统 |
| "必须使用 Angular" | ❌ 支持多种 UI 技术(MVC、Blazor、React 等) |
| "只能用于 SaaS" | ❌ 虽然内置多租户,但可关闭用于单租户应用 |
| "性能差" | ❌ 性能接近原生 ASP.NET Core,开销极小 |
8. 版本策略
- ABP Framework 遵循 语义化版本(SemVer)
- 主版本每年发布一次(通常 Q1),与 .NET LTS 对齐
- 当前(2026年2月)最新稳定版为 v8.3(基于 .NET 8)
可通过 NuGet 查看各包版本。
结语
ABP Framework 极大提升了 ASP.NET Core 应用的开发效率和架构规范性,尤其适合中大型企业级应用。建议从官方模板入手,结合文档逐步深入 DDD 和微服务实践。

ABP Framework与其他类似框架有何区别?
ABP Framework(abp.io)作为一款开源的、基于 ASP.NET Core 的应用开发框架,与其他类似框架(如 ASP.NET Core 原生、Orchard Core、Oqtane、NopCommerce、DotNetify、Clean Architecture 模板等)在目标定位、架构理念和功能特性上存在显著差异。以下从多个维度进行严格对比 ,所有信息均基于截至 2026年2月 的官方文档、GitHub 仓库及社区共识,杜绝幻觉。
一、与 ASP.NET Core 原生开发对比
| 维度 | ASP.NET Core 原生 | ABP Framework |
|---|---|---|
| 定位 | 通用 Web 开发平台 | 高抽象企业级应用框架 |
| 架构 | 无强制架构,开发者自由设计 | 强制分层(Domain / Application / Infrastructure / Presentation),遵循 DDD |
| 基础设施 | 需手动集成身份认证、审计日志、多租户等 | 内置完整企业级基础设施(审计日志、数据过滤、权限系统、本地化、设置管理等) |
| API 开发 | 需手写 Controller | 应用服务自动暴露为 REST API(无需写 Controller) |
| 客户端代理 | 无 | 自动生成 TypeScript / C# 客户端代理(支持 Angular/React/Blazor/MVC) |
| 模块化 | 无原生模块系统 | 支持可插拔模块(通过 AbpModule 和依赖注入自动注册) |
✅ 结论 :ABP 是对 ASP.NET Core 的高阶封装,适合需要快速构建结构规范、功能完备的企业应用,而非简单 CRUD。
二、与 Orchard Core 对比
| 维度 | Orchard Core | ABP Framework |
|---|---|---|
| 核心目标 | 内容管理系统(CMS) + 模块化应用平台 | 通用企业应用开发框架(非 CMS) |
| 架构风格 | 基于组件/模块的 CMS 架构 | 领域驱动设计(DDD)分层架构 |
| 多租户 | 支持(核心特性) | 支持(深度集成,可全局/每实体启用) |
| 内容管理 | 内置强大内容项、工作流、模板引擎 | 无内置 CMS 功能(需自行实现或集成) |
| 适用场景 | 网站、博客、门户类应用 | ERP、CRM、SaaS、后台管理系统等业务密集型应用 |
✅ 结论 :Orchard Core 是 CMS 优先 的框架,ABP 是 业务逻辑优先 的框架。两者目标不同,不直接竞争。
三、与 Oqtane 对比
| 维度 | Oqtane | ABP Framework |
|---|---|---|
| 技术栈 | Blazor Server/WASM 专属 | 支持 MVC、Razor Pages、Angular、React、Blazor(全栈) |
| 架构 | 单体 Blazor 应用 + 模块化 | 多层 DDD 架构,支持微服务拆分 |
| 后端耦合 | 前后端一体(Blazor 直接调用服务) | 前后端分离(API + 客户端代理) |
| 企业特性 | 基础权限、模块管理 | 完整企业级功能(审计、数据过滤、分布式事件、缓存集成等) |
✅ 结论 :Oqtane 是 Blazor 生态下的模块化 CMS/门户框架 ,ABP 是 跨 UI 技术的企业级应用框架。
四、与 NopCommerce 对比
| 维度 | NopCommerce | ABP Framework |
|---|---|---|
| 类型 | 专用电商平台(开箱即用) | 通用开发框架(需编码构建业务) |
| 可定制性 | 插件扩展,但核心封闭 | 完全开放源码,架构可深度定制 |
| 学习曲线 | 适合电商场景快速上线 | 适合构建任意领域系统 |
| DDD 支持 | 无明确 DDD 分层 | 强 DDD 实践 |
✅ 结论 :NopCommerce 是 垂直领域产品 ,ABP 是 水平开发平台。若要开发电商,可用 ABP 从零构建;若需快速上线商城,选 NopCommerce。
五、与 Clean Architecture 模板(如 Jason Taylor 模板)对比
许多开发者使用 CleanArchitecture 作为起点。
| 维度 | Clean Architecture 模板 | ABP Framework |
|---|---|---|
| 抽象程度 | 基础分层示例(无企业功能) | 完整企业级抽象 + 功能实现 |
| 功能覆盖 | 仅演示架构,无审计、多租户、动态 API 等 | 内置数十个企业级模块 |
| 生产力 | 需自行实现基础设施 | 开箱即用,CLI 一键生成项目 |
| 维护成本 | 社区模板,无官方长期支持 | 由 Volo 官方维护,持续更新 |
✅ 结论 :Clean Architecture 模板是教学范例 ,ABP 是生产级解决方案。ABP 可视为"工业级 Clean Architecture + 企业功能套件"。
六、与其他语言生态框架类比(辅助理解)
| .NET 生态 | Java 生态 | JavaScript/Node.js |
|---|---|---|
| ABP Framework | Spring Boot + Spring Security + JHipster | NestJS + TypeORM + Auth0 + AdminJS |
ABP 在 .NET 生态中的角色类似于 JHipster(Java) 或 NestJS + 企业插件(Node.js) ------ 提供全栈代码生成 + 架构约束 + 企业功能集成。
总结:ABP Framework 的独特优势
- 真正的 DDD 实践:不是口号,而是强制分层与聚合根设计。
- 企业级功能开箱即用:多租户、审计日志、软删除、数据过滤、权限系统等无需重复造轮子。
- 前后端高效协同:应用服务自动生成 API + 客户端代理,减少接口联调成本。
- 模块化与可扩展性 :支持构建可复用的业务模块(如
Volo.Commerce、Volo.Payment)。 - 活跃的商业支持:由 Volo 公司主导开发,提供商业许可、专业支持和 SaaS 工具(如 ABP Commercial)。
⚠️ 注意:ABP 并非适合所有场景。对于小型项目或高度定制化需求(如游戏后端、高频交易系统),原生 ASP.NET Core 可能更轻量。
参考资料(截至 2026 年 2 月):