ABP Framework(abp.io)入门手册
入门手册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

相关新闻

有幸抢先体验了Ubuntu 26.04 LTS的daily build版本,安全性拉满到让我震惊

有幸抢先体验了Ubuntu 26.04 LTS的daily build版本,安全性拉满到让我震惊

最近,我有幸抢先体验了Ubuntu 26.04 LTS(代号Resolute Raccoon)的daily build版本。作为一名每天都在折腾各种发行版的“重度Linux用户”,我原本以为又是一次“常规升级”——界面差不多、内核新一点、包更新一下就完事了。 结果呢?上手之后,我彻底被震惊了!表面看,它还…

2026/5/17 3:39:29 阅读更多 →
启动一个three.js项目 不使用vue框架

启动一个three.js项目 不使用vue框架

新建文件夹: 选择:Vanilla (就是不用vue框架的意思) 报错:node版本: 展示: 代码中使用index.html引入three.js 删除main.js: 创建style.css: index.html引入: 安装three.js: 当前版本: 切…

2026/7/3 3:59:58 阅读更多 →
期刊让我投“预印本”,我投还是不投?投它有啥用?

期刊让我投“预印本”,我投还是不投?投它有啥用?

在学术研究的道路上,科研工作者们常常会面临各种选择,其中之一就是当收到期刊让投“预印本”的邀请时,该何去何从。预印本近年来在学术领域逐渐崭露头角,但其对于许多研究者来说,仍然笼罩着一层神秘面纱。那么&#xf…

2026/5/17 3:39:27 阅读更多 →

最新新闻

3分钟极速指南:MetaTube插件为Jellyfin/Emby实现智能元数据刮削

3分钟极速指南:MetaTube插件为Jellyfin/Emby实现智能元数据刮削

3分钟极速指南:MetaTube插件为Jellyfin/Emby实现智能元数据刮削 【免费下载链接】jellyfin-plugin-metatube MetaTube Plugin for Jellyfin/Emby 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metatube MetaTube插件是Jellyfin和Emby媒体服…

2026/7/3 10:49:28 阅读更多 →
13DOF传感器与PIC18F24K50的自主定位导航方案

13DOF传感器与PIC18F24K50的自主定位导航方案

1. 项目概述:13DOF与PIC18F24K50的定位导航方案在嵌入式系统开发领域,高精度定位与导航一直是个极具挑战性的课题。传统方案往往需要依赖GPS等外部信号,不仅功耗高,在室内或复杂环境中还会出现信号丢失的问题。而采用13DOF&#x…

2026/7/3 10:47:27 阅读更多 →
如何高效跳过FF14副本动画:30分钟掌握智能插件实战指南

如何高效跳过FF14副本动画:30分钟掌握智能插件实战指南

如何高效跳过FF14副本动画:30分钟掌握智能插件实战指南 【免费下载链接】FFXIV_ACT_CutsceneSkip 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip 想象一下这样的场景:你正沉浸在《最终幻想14》的副本挑战中,团…

2026/7/3 10:43:26 阅读更多 →
5个步骤让你的普通鼠标在macOS上获得苹果触控板般的流畅体验

5个步骤让你的普通鼠标在macOS上获得苹果触控板般的流畅体验

5个步骤让你的普通鼠标在macOS上获得苹果触控板般的流畅体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否在macOS上使用第三方鼠标时感…

2026/7/3 10:41:25 阅读更多 →
构建 AI Agent 应该优先设计路由,把模型选型留到最后。Tom Tunguz 谏言。

构建 AI Agent 应该优先设计路由,把模型选型留到最后。Tom Tunguz 谏言。

在 2026 年的今天,如果你去翻看各大技术团队构建 AI 智能体(Agent)的架构设计文档,你会发现一个非常普遍的“反向骚操作”:绝大多数团队都是先敲定用哪个大模型(比如非 GPT-5.5 或 Claude 4.8 不选&#xf…

2026/7/3 10:41:25 阅读更多 →
Adobe软件快速激活终极指南:3分钟解锁Photoshop等全套专业工具

Adobe软件快速激活终极指南:3分钟解锁Photoshop等全套专业工具

Adobe软件快速激活终极指南:3分钟解锁Photoshop等全套专业工具 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 想要免费使用Adobe Creative Cloud中的专…

2026/7/3 10:35:21 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻