How abpframework/abp works
ABP is a modular .NET application framework for building enterprise applications. A typical developer starts from an ABP solution or module, implements business behavior, and composes framework infrastructure and application modules into a running application. The README also identifies DDD, modularity, microservices, multi-tenancy, infrastructure, cross-cutting concerns, UI themes, and tooling as major capabilities. The graph emphasizes runtime framework and module behavior represented in the supplied tree and excerpts; unsampled subsystems are included only where their paths are supported, and their internal wiring is not inferred.
Main entry points: TemplateRenderingEngineBase.cs Template rendering · AbpControllerBase.cs MVC controller base · IdentityUserManager.cs Identity management · TemplateDefinitionManager.cs Template definitions
Components 23
Application surface
- ABP application
- Domain services
- CLI and tools
Framework foundations
- Modularity and DDD
- Current tenant
framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/ICurrentTenant.cs - Cross-cutting services
framework/src/Volo.Abp.Core/Volo/Abp/Check.cs
Infrastructure
- Template rendering
framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/TemplateRenderingEngineBase.cs - Template definitions
framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs - Template metadata
framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/TemplateDefinition.cs - Razor renderer
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs - Blob storage
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobPipelineContext.cs - Event bus
- Background jobs
- Audit logging
Application modules
- Identity management
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs - Resource permissions
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/ResourcePermissionManager.cs - Public comments
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs - Setting pages
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageContributorManager.cs - Identity user model
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs
Presentation
- MVC controller base
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpControllerBase.cs - UI themes
- API versioning
framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo/Abp/ApiVersioning/IRequestedApiVersion.cs
Other components
- Application developer
Connections 27
- Application developer → ABP application: builds
README.md - ABP application → Modularity and DDD: composes modules
README.md - ABP application → MVC controller base: exposes APIs
README.md - ABP application → Domain services: implements business rules
README.md - ABP application → Current tenant: uses
README.md - ABP application → Cross-cutting services: uses
README.md - ABP application → Identity management: adds identity features
README.md - ABP application → Resource permissions: adds permissions
README.md - ABP application → Public comments: adds CMS features
README.md - ABP application → Setting pages: adds settings
README.md - ABP application → Template rendering: uses templates
README.md - ABP application → Blob storage: uses storage
README.md - ABP application → Event bus: uses events
README.md - ABP application → Background jobs: uses jobs
README.md - ABP application → Audit logging: uses auditing
README.md - ABP application → UI themes: uses themes
README.md - Application developer → CLI and tools: runs tools
README.md - MVC controller base → Cross-cutting services: resolves services
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpControllerBase.cs - MVC controller base → Public comments: routes comment requests
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs - Public comments → MVC controller base: maps comment input
modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicCommentsController.cs - Identity management → Identity user model: manages users
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs - Identity management → Current tenant: changes tenant scope
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs - Template rendering → Template definitions: resolves definitions
framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/TemplateRenderingEngineBase.cs - Template rendering → Template metadata: reads metadata
framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/TemplateRenderingEngineBase.cs - Template definitions → Template metadata: returns definitions
framework/src/Volo.Abp.TextTemplating.Core/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs - Razor renderer → Template rendering: extends renderer
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs - Razor renderer → Template definitions: loads definition
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs