入门手册1. 什么是 ABP FrameworkABPASP.NET Boilerplate / ABP Framework是一个开源、模块化、领域驱动设计DDD的应用程序开发框架用于构建基于 ASP.NET Core 的现代 Web 应用程序。官网https://abp.ioGitHub 仓库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.0ABP v8.x 基于 .NET 8推荐 IDEVisual Studio 2022 / JetBrains Rider / VS Code数据库可选SQL Server / PostgreSQL / MySQL / SQLite通过 EF Core 支持3. 快速开始创建你的第一个 ABP 项目步骤 1安装 ABP CLIdotnet toolinstall-g Volo.Abp.Cli若已安装请更新至最新版dotnet tool update -g Volo.Abp.Cli步骤 2创建新项目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还原依赖并运行cdAcme.BookStore dotnet restore首次运行需创建数据库cdAcme.BookStore.DbMigrator dotnet run该步骤会创建数据库应用迁移Migrations种子初始数据如 admin 用户admin / 1q2w3E*然后启动 Web 项目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(...)]声明依赖。[DependsOn(typeof(BookStoreDomainModule),typeof(BookStoreApplicationModule),typeof(BookStoreEntityFrameworkCoreModule))]publicclassBookStoreWebModule:AbpModule{publicoverridevoidConfigureServices(ServiceConfigurationContextcontext){// 配置服务}}5.2 应用服务Application Service定义业务逻辑入口自动暴露为 HTTP API。publicclassBookAppService:ApplicationService,IBookAppService{publicasyncTaskListBookDtoGetListAsync(){varbooksawait_bookRepository.GetListAsync();returnObjectMapper.MapListBook,ListBookDto(books);}}5.3 实体Entity继承AggregateRootGuid或Entityint。publicclassBook:AuditedAggregateRootGuid{publicstringName{get;set;}publicfloatPrice{get;set;}}5.4 自动 API 控制器只要应用服务实现接口并继承ApplicationServiceABP 会自动生成 RESTful API无需手动写 Controller。6. 学习资源官方文档https://docs.abp.io示例项目https://github.com/abpframework/abp-sampleshttps://github.com/bartvanhoey/abp/tree/main/BookStore社区GitHub Discussionshttps://github.com/abpframework/abp/discussionsStack Overflow标签abp-framework7. 常见误区澄清误区事实“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 Frameworkabp.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 CoreABP Framework核心目标内容管理系统CMS 模块化应用平台通用企业应用开发框架非 CMS架构风格基于组件/模块的 CMS 架构领域驱动设计DDD分层架构多租户支持核心特性支持深度集成可全局/每实体启用内容管理内置强大内容项、工作流、模板引擎无内置 CMS 功能需自行实现或集成适用场景网站、博客、门户类应用ERP、CRM、SaaS、后台管理系统等业务密集型应用✅结论Orchard Core 是CMS 优先的框架ABP 是业务逻辑优先的框架。两者目标不同不直接竞争。来源Orchard Core 官网、ABP Docs - Comparison三、与 Oqtane 对比维度OqtaneABP Framework技术栈Blazor Server/WASM 专属支持 MVC、Razor Pages、Angular、React、Blazor全栈架构单体 Blazor 应用 模块化多层 DDD 架构支持微服务拆分后端耦合前后端一体Blazor 直接调用服务前后端分离API 客户端代理企业特性基础权限、模块管理完整企业级功能审计、数据过滤、分布式事件、缓存集成等✅结论Oqtane 是Blazor 生态下的模块化 CMS/门户框架ABP 是跨 UI 技术的企业级应用框架。来源Oqtane GitHub四、与 NopCommerce 对比维度NopCommerceABP 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.jsABP FrameworkSpring Boot Spring Security JHipsterNestJS TypeORM Auth0 AdminJSABP 在 .NET 生态中的角色类似于JHipsterJava或NestJS 企业插件Node.js—— 提供全栈代码生成 架构约束 企业功能集成。总结ABP Framework 的独特优势真正的 DDD 实践不是口号而是强制分层与聚合根设计。企业级功能开箱即用多租户、审计日志、软删除、数据过滤、权限系统等无需重复造轮子。前后端高效协同应用服务自动生成 API 客户端代理减少接口联调成本。模块化与可扩展性支持构建可复用的业务模块如Volo.Commerce、Volo.Payment。活跃的商业支持由 Volo 公司主导开发提供商业许可、专业支持和 SaaS 工具如 ABP Commercial。⚠️ 注意ABP 并非适合所有场景。对于小型项目或高度定制化需求如游戏后端、高频交易系统原生 ASP.NET Core 可能更轻量。参考资料截至 2026 年 2 月https://docs.abp.io/en/abp/latesthttps://github.com/abpframework/abphttps://www.orchardcore.net/https://github.com/oqtane/oqtane.frameworkhttps://www.nopcommerce.com/https://github.com/jasontaylordev/CleanArchitecture