# ABP Framework — Open-Source Web Application Framework for .NET > A complete infrastructure for building modular, multi-tenant, and domain-driven web applications on ASP.NET Core. Provides startup templates, pre-built modules, and architectural best practices. ## Install Save in your project root: # ABP Framework — Open-Source Web Application Framework for .NET ## Quick Use ```bash dotnet tool install -g Volo.Abp.Cli abp new MyApp -t app -u blazor cd MyApp dotnet run --project src/MyApp.HttpApi.Host ``` ## Introduction ABP Framework is an opinionated application framework built on top of ASP.NET Core that provides a layered architecture, modular design, and pre-built modules for common enterprise needs like authentication, authorization, and multi-tenancy. It reduces boilerplate by offering startup templates and a CLI that generates project scaffolding following domain-driven design principles. ## What ABP Framework Does - Generates layered project structures with domain, application, and infrastructure layers - Provides pre-built modules for identity management, tenant management, audit logging, and more - Supports multi-tenancy with database-per-tenant or shared-database isolation - Includes a dynamic API layer that automatically creates REST endpoints from application services - Offers UI theme packages for Blazor, Angular, and MVC Razor Pages ## Architecture Overview ABP follows a modular monolith architecture by default, where each module encapsulates its own domain, application, and data layers. Modules communicate through well-defined interfaces and can be extracted into microservices when needed. The framework uses Entity Framework Core or MongoDB for data access, and provides an event bus (local or distributed via RabbitMQ) for inter-module communication. ## Self-Hosting & Configuration - Requires .NET 8 SDK or later and a supported database (SQL Server, PostgreSQL, MySQL, or MongoDB) - Use the ABP CLI to create new projects: `abp new` supports multiple UI and database options - Configure connection strings, module options, and feature flags in `appsettings.json` - Deploy as a standard ASP.NET Core application to any hosting environment (IIS, Kestrel, Docker, Kubernetes) - Built-in database migration system handles schema updates across modules ## Key Features - Modular architecture with 50+ open-source and commercial pre-built modules - Multi-tenancy support with per-tenant database or schema isolation - Automatic REST API generation from application service interfaces - Background job system with Hangfire or RabbitMQ integration - Comprehensive authorization system with permissions, roles, and policies ## Comparison with Similar Tools - **ASP.NET Core (vanilla)** — ABP adds opinionated architecture, modularity, and pre-built features on top - **Clean Architecture templates** — provide folder structure only; ABP includes runtime infrastructure and modules - **Orchard Core** — CMS-focused; ABP targets general-purpose enterprise applications - **Spring Boot (Java)** — similar philosophy of convention over configuration, but for the JVM ecosystem ## FAQ **Q: Is ABP Framework free?** A: The core framework is fully open source under LGPL. ABP Commercial offers additional modules, themes, tooling, and support on a paid license. **Q: Can I use ABP with microservices?** A: Yes. ABP provides a microservice startup template and supports distributed events, API gateways, and shared module libraries across services. **Q: What UI frameworks does ABP support?** A: ABP supports Blazor (Server and WebAssembly), Angular, and MVC Razor Pages. Each has its own theme and component library. **Q: How steep is the learning curve?** A: Developers familiar with ASP.NET Core and domain-driven design concepts will find ABP approachable. The documentation includes step-by-step tutorials for common scenarios. ## Sources - https://github.com/abpframework/abp - https://docs.abp.io --- Source: https://tokrepo.com/en/workflows/asset-d6b571b2 Author: AI Open Source