ABP 核心框架(Core Framework)
框架架构概述
- 基础:基于 ASP.NET Core 构建的分层架构,实现领域驱动设计模式和复杂模块系统。
- 核心:围绕依赖注入、约定配置和扩展点构建。
- 框架包结构:以 NuGet 包形式分发,通过
Directory.Packages.props
进行集中式版本管理,目标为 .NET 9.0,版本为 10.0.0-preview(定义于 common.props
)。
核心组件与服务
ABP 框架由多个基础组件构成,提供横切关注点和基础设施服务。
- 包依赖项:依赖中央包管理系统中特定版本的 Microsoft 包,如
Microsoft.Extensions.DependencyInjection
、Microsoft.AspNetCore.Authorization
及 Entity Framework Core 包等。
模块化系统
ABP 实现了复杂的模块系统,支持从可重用模块组合应用程序,每个模块可定义依赖、配置服务并提供初始化逻辑。
- 模块配置:模板项目展示了模块配置模式,例如 Blazor 应用通过项目引用核心框架模块。
依赖注入集成
ABP 扩展了标准 .NET 依赖注入容器,具备常规注册、拦截器和模块感知服务发现等高级功能。
- 容器配置:框架默认使用 Autofac 作为依赖注入容器,通过
Volo.Abp.Autofac
包配置,Autofac 版本集中管理以确保框架组件一致性。
构建与打包系统
ABP 拥有完善的构建系统,协调多个解决方案和项目的编译、测试和打包。
- 解决方案结构:构建系统处理
build/common.ps1
中定义的多个解决方案路径,支持开发模式和带 -f
标志的完整构建。 - 包管理:所有 NuGet 包使用集中式版本管理,通过自动化 PowerShell 脚本构建和打包,处理依赖协调和版本同步。
- 测试基础设施:通过
build/test-all.ps1
实现全面的测试自动化,执行所有解决方案的测试并收集代码覆盖率。
配置与选项系统
ABP 扩展了 .NET 配置系统,提供强类型选项、验证和模块特定配置范围。
- 模板配置:模板项目通过
common.props
文件展示配置模式,定义项目元数据、警告和构建设置,继承框架级设置同时保持自身版本控制。 - 全局属性:
common.props
定义框架范围的属性,包括版本、目标框架、许可证和适用于所有框架组件的包元数据。