ABP is a modular application framework which consists of dozens of NuGet & NPM 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 are 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 as a part of the ABP Framework.
- 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.
- Client Simulation: A simple web UI to stress test HTTP APIs by simulating concurrent clients.
- CMS Kit: A set of reusable Content Management System features.
- Docs: Used to create technical documentation website. ABP's own documentation already using this module.
- Feature Management: Used to persist and manage the features.
- Identity: Manages organization units, 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.
- Virtual File Explorer: Provided a simple UI to view files in virtual file system.
See the GitHub repository for source code of all modules.