当前位置: 首页 > news >正文

3 Abp 核心框架(Core Framework)

ABP 核心框架(Core Framework)

框架架构概述

  • 基础:基于 ASP.NET Core 构建的分层架构,实现领域驱动设计模式和复杂模块系统。
  • 核心:围绕依赖注入、约定配置和扩展点构建。
  • 框架包结构:以 NuGet 包形式分发,通过 Directory.Packages.props 进行集中式版本管理,目标为 .NET 9.0,版本为 10.0.0-preview(定义于 common.props)。
Microsoft Foundation
ABP Core Framework
Third-Party Integrations
.NET 9.0
Microsoft.Extensions.*
ASP.NET Core 9.0
Microsoft.AspNetCore.*
Entity Framework Core 9.0
Microsoft.EntityFrameworkCore.*
Volo.Abp.AutoMapper
AbpAutoMapperModule
Volo.Abp.Autofac
AbpAutofacModule
Volo.Abp.AspNetCore
AbpAspNetCoreModule
Volo.Abp.Core
IAbpApplication
AbpModule
Autofac 8.2.1
Dependency Injection
AutoMapper 14.0.0
Object Mapping
Serilog 4.2.0
Structured Logging

核心组件与服务

ABP 框架由多个基础组件构成,提供横切关注点和基础设施服务。

Framework Extensions
Cross-Cutting Services
Volo.Abp.Core
IBundleManager
Asset Bundling
ITenantResolver
Multi-tenancy
IFeatureChecker
Feature Management
IPermissionChecker
Authorization
IAuditingManager
Audit Logging
IDistributedCache
Caching Abstraction
IConfiguration
Configuration System
IStringLocalizer
Localization
IAbpApplication
Application Lifecycle
AbpModule
Module Definition
IModuleLoader
Module Discovery
IServiceCollection
Service Registration
  • 包依赖项:依赖中央包管理系统中特定版本的 Microsoft 包,如 Microsoft.Extensions.DependencyInjectionMicrosoft.AspNetCore.Authorization 及 Entity Framework Core 包等。

模块化系统

ABP 实现了复杂的模块系统,支持从可重用模块组合应用程序,每个模块可定义依赖、配置服务并提供初始化逻辑。

Module Discovery
Service Registration
Module Definition
AbpModuleLoader
Dependency Graph
Initialization Order
IConventionalRegistrar
ServiceConfigurationContext
IServiceCollection
[DependsOn(typeof(OtherModule))]
ConfigureServices()
OnApplicationInitialization()
MyModule : AbpModule
  • 模块配置:模板项目展示了模块配置模式,例如 Blazor 应用通过项目引用核心框架模块。

依赖注入集成

ABP 扩展了标准 .NET 依赖注入容器,具备常规注册、拦截器和模块感知服务发现等高级功能。

Service Types
Registration Strategies
Container Integration
IScopedDependency
ISingletonDependency
ITransientDependency
IConventionalRegistrar
Convention - based
Registration
Explicit Registration
(Configure)
Castle DynamicProxy
Interceptor
Microsoft.Extensions.DI
IServiceCollection
AbpServiceCollectionExtensions
Autofac.Extensions.DI
ContainerBuilder
  • 容器配置:框架默认使用 Autofac 作为依赖注入容器,通过 Volo.Abp.Autofac 包配置,Autofac 版本集中管理以确保框架组件一致性。

构建与打包系统

ABP 拥有完善的构建系统,协调多个解决方案和项目的编译、测试和打包。

  • 解决方案结构:构建系统处理 build/common.ps1 中定义的多个解决方案路径,支持开发模式和带 -f 标志的完整构建。
  • 包管理:所有 NuGet 包使用集中式版本管理,通过自动化 PowerShell 脚本构建和打包,处理依赖协调和版本同步。
  • 测试基础设施:通过 build/test-all.ps1 实现全面的测试自动化,执行所有解决方案的测试并收集代码覆盖率。

配置与选项系统

ABP 扩展了 .NET 配置系统,提供强类型选项、验证和模块特定配置范围。

  • 模板配置:模板项目通过 common.props 文件展示配置模式,定义项目元数据、警告和构建设置,继承框架级设置同时保持自身版本控制。
  • 全局属性common.props 定义框架范围的属性,包括版本、目标框架、许可证和适用于所有框架组件的包元数据。
http://www.lryc.cn/news/619041.html

相关文章:

  • Milvus 结合极客天成 NVFile 与 NVMatrix 实现高性能向量存储
  • LDAP 登录配置参数填写指南
  • 【VB.NET快乐数】2022-10-17
  • (树形 dp、数学)AT_dp_v Subtree 题解
  • 5年保留期+4次补考机会,灵活通关的申研机制
  • 【CV 目标检测】②——NMS(非极大值抑制)
  • git+lfs 如何安装
  • 股票智能体系统的设计与开发
  • Vue3 组合式API vs 选项式API:深度对比与最佳实践
  • SQL连接操作全解析:从入门到精通
  • 自动驾驶决策算法 —— 有限状态机 FSM
  • 基于SpringBoot的旅游网站系统
  • Jenkins + SonarQube 从原理到实战三:SonarQube 打通 Windows AD(LDAP)认证与踩坑记录
  • Linux内核进程管理子系统有什么第二十六回 —— 进程主结构详解(22)
  • 基于51单片机RFID智能门禁系统红外人流量计数统计
  • 【K8s】K8s控制器——Deamonset、Statefulset、Job与CronJob
  • 下一代防火墙部署
  • 树结构无感更新及地图大批量点位上图Ui卡顿优化
  • C#对接Ollama,调用大模型禁用思考模式
  • JMeter并发测试与多进程测试
  • pcl 按比例去除点云的噪点
  • 编程模型设计空间的决策思路
  • QT第四讲-QString和QT数据类型之间转换
  • 当多模态大语言模型遇上视觉难题!AI视觉探索之旅
  • NLP基础
  • CASS11计算斜面面积
  • sqli-libs通关教程(41-50)
  • 【leetcode】45. 跳跃游戏2
  • cuda排序算法--双调排序(Bitonic_Sort)
  • __base__属性