In the following conditions, you may consider to use the layered solution template:
If your project code-base is relatively larger.
If your project is relatively complex and involves multiple business domains or complex workflows.
If your project is a long-term project and you want to design it maintainable for long years.
If you are a team of developers working on your solution. When multiple teams or developers work on different parts of the system.
If your solution will have multiple web, mobile or other type of applications that need to share the same business logic.
If your project needs scalability, solutions that may need to scale in functionality or user load over time.
If your project needs extensibility, which requires the addition of new features or integration with third-party services.
In this quick start guide, you will learn how to create and run a layered and modular web application using ABP Studio.
Document LinkBuild a real-world bookstore application step-by-step with ABP Framework and its layered startup template.
Document LinkABP Studio provides pre-architected, production-ready templates to jump-start a new solution. One of these templates is the Layered solution template.
Document LinkWe love different ways to create the UI. This startup solution provides three UI framework options for your business application.
You have two database provider options (in addition to using both in a single application). Use Entity Framework Core to work with any relational database and optionally use Dapper when you need to write low-level queries for better performance. MongoDB is another option if you need to use a document-based NoSQL database. While these providers are well-integrated, abstracted and pre-configured, you can actually interact with any database system that you can use with .NET.
Mobile applications are an essential part of modern software solutions. They provide a user-friendly interface to the end-users and allow them to access the system from anywhere. ABP allows you to create mobile applications for your layered solution. You can create a new mobile application project, configure it, and run it on your device.
This solution supports the following mobile application types:
MAUI: Cross-platform mobile applications with .NET MAUI (Multi-platform App UI). You can create MAUI projects with ABP Studio.
React Native: Cross-platform mobile applications that share code between iOS and Android platforms. You can create React Native projects with ABP Studio.
See Technical DocumentThe layered solution template includes Helm charts for each application and infrastructure (Redis, RabbitMQ, etc.). You can use these charts to deploy the solution to a Kubernetes cluster.
See Technical DocumentAutomated tests are essential in any serious software product. The startup solution template has the following libraries already installed and configured for you:
While you are free to replace them with your favorite tools, the startup solution template is ready to author your test code.
See Technical DocumentThe Layered solution template is fully configured for authentication. All the services and applications are configured to use the OpenIddict library for authentication. They are configured in a common way for authentication. This document explains that common authentication structure.
The authentication server handles token generation, validation, and user account management (e.g., login, registration). It uses the Account or Account Pro module. The Account Pro* module additionally supports social logins (e.g., Google, Facebook). Social logins can be enabled, disabled, and configured directly from the application's user interface.
See Technical DocumentThe LeptonX theme is pre-configured for the solution. You can select one of the color palettes (System, Light, or Dark) as default, while the end-user dynamically change it on the fly.
This module provides CMS (Content Management System) capabilities for your application. It provides core building blocks and fully working sub-systems to create your own website with CMS features enabled, or use the building blocks in your web sites with any purpose.
Optionally separate your Web and API layers into physical tiers. In this way, the Web application server does not have direct access to the database server; instead, all operations are performed using the HTTP API server.
Modularity is a first-class citizen in the ABP.IO platform. All the application functionalities are split into well-isolated optional modules. The startup solution already comes with the fundamental ABP Commercial modules pre-installed. You can also create your own modules to build a modular system for your own application.
The solution has been fully configured to support multi-tenant systems. It allows the tenants to share or have their own databases with on-the-fly database creation and migration system.