Layered Monolith Startup Template

Layered Solution Structure

The solution is layered based on Domain Driven Design principles and patterns to isolate your business logic from the infrastructure and integrations and to maximize code maintainability and reusability. ABP Framework already provides abstractions, base classes and guides to truly implement DDD for your application.

Layered Solution Structure

Who is For?

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.

Get Started

In this quick start guide, you will learn how to create and run a layered and modular web application using ABP Studio.

Document Link

Web Application Development Tutorial

Build a real-world bookstore application step-by-step with ABP Framework and its layered startup template.

Document Link

Solution Structure Guide

ABP Studio provides pre-architected, production-ready templates to jump-start a new solution. One of these templates is the Layered solution template.

Document Link

Multiple UI Options

We love different ways to create the UI. This startup solution provides three UI framework options for your business application.

Multiple UI Options

Multiple Database Options

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.

Multiple Database Options

Mobile Application

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 Document
Mobile Application

Kubernetes & Helm Configuration is Included

The 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 Document
Kubernetes & Helm Configuration is Included

Automated Tests Pre-Configured

Automated 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 Document

Authentication

The 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 Document

UI Theme

The 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.

  • 1 Simplified menu.
  • 2 Your favorite pages at your reach.
  • 3 Breadcrumb for seamless switching.
  • 4 Your menu, as you wish.
  • 5 RTL support for your language.
  • 6 Easily arrange your content width.
  • 7 Your colors on your admin dashboard UI.
Explore LeptonX
UI Theme

Landing Website Option with CMS Kit Integration

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.

  • Provides a page management system to manage dynamic pages with dynamic URLs.
  • Provides a  blogging system to create publish blog posts with multiple blog support.
  • Provides a tagging  system to tag any kind of resource, like a blog post.
  • Provides a comment system to add comments feature to any kind of resource, like blog post or a product review page.
  • Provides a reaction  system to add reactions (smileys) feature to any kind of resource, like a blog post or a comment.
  • Provides a rating system to add rating feature to any kind of resource.
  • Provides a menu system to manage public menus dynamically.
  • Provides a global resources to add global styles and scripts dynamically.
  • Provides a  dynamic widget system to create dynamic widgets for page and blog posts.
  • Provides a marked item system to mark any kind of resource, like a blog post or a product, as a favorite, starred, flagged, or bookmarked.

Tiered Architecture Option

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.

Multi-Tenancy for your SaaS Business

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.

Multi Tenancy