ABP is a modular application framework which consists of dozens of nuget packages. It also provides a complete infrastructure to build your own application modules which may have entities, services, database integration, APIs, UI components and so on.
There are two types of modules. They don't have any structural difference but categorized by functionality and purpose:
- Framework modules: These are core modules of the framework like caching, emailing, theming, security, serialization, validation, EF Core integration, MongoDB integration... etc. They do not have application/business functionalities but makes your daily development easier by providing common infrastructure, integration and abstractions.
- Application modules: These modules implement specific application/business functionalities like blogging, document management, identity management, tenant management... etc. They generally have their own entities, services, APIs and UI components.
Open Source Application Modules
There are some free and open source application modules developed and maintained by the ABP community:
- Account: Provides UI for the account management and allows user to login/register to the application.
- Audit Logging: Persists audit logs to a database.
- Background Jobs: Persist background jobs when using the default background job manager.
- Blogging: Used to create fancy blogs. ABP's own blog already using this module.
- Docs: Used to create technical documentation pages. ABP's own documentation already using this module.
- Identity: Manages roles, users and their permissions, based on the Microsoft Identity library.
- IdentityServer: Integrates to IdentityServer4.
- Permission Management: Used to persist permissions.
- Setting Management: Used to persist and manage the settings.
- Tenant Management: Manages tenants for a multi-tenant application.
- Users: Abstract users, so other modules can depend on this module instead of the Identity module.
See the GitHub repository for source code of all modules.