当前位置: 首页 > 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.dtcms.com/a/327599.html

相关文章:

  • 过程设计工具深度解析-软件工程之详细设计(补充篇)
  • 数字孪生如何推动智慧园区精细化管理
  • CV 医学影像分类、分割、目标检测,之【皮肤病分类】项目拆解
  • OHEM (在线难例挖掘) 详细讲解
  • 【Vue.js】生产设备规划工具(报价单Word文档生成)【开发全流程】
  • 无人机航拍数据集|第14期 无人机水体污染目标检测YOLO数据集3000张yolov11/yolov8/yolov5可训练
  • etcd 备份与恢复
  • Etcd客户端工具Etcd Workbench更新了1.2.0版本!多语言支持了中文,新增了许多快捷功能使用体验再次提升
  • Spark 运行流程核心组件(一)作业提交
  • 干货分享|如何从0到1掌握R语言数据分析
  • 小红书笔记信息获取_实在智能RPA源码解读
  • 邦纳BANNER相机视觉加镜头PresencePLUSP4 RICOH FL-CC2514-2M工业相机
  • C++实现LINGO模型处理程序
  • Java结课案例-景点人数统计的几种场景
  • 日期格式化成英文月,必須指定語言環境
  • Secure CRT做代理转发
  • HTTP应用层协议-长连接
  • 记对外国某服务器的内网渗透
  • C++少儿编程(二十二)—条件结构
  • 机械臂运动规划与控制12讲
  • SQL 语言分类
  • 后端学习路线
  • 3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
  • 开疆智能Ethernet转ModbusTCP网关连接发那科机器人与三菱PLC配置案例
  • Spring Boot部署万亿参数模型推理方案(深度解析)
  • css之再谈浮动定位float(深入理解篇)
  • 物联网、大数据与云计算持续发展,楼宇自控系统应用日益广泛
  • 黑马程序员mysql课程p65 安装linux版本的mysql遇到问题
  • [密码学实战]基于国密TLCP协议的Java服务端实现详解(四十四)
  • 【基于DesignStart的M3 SoC】