Home

Awesome

:warning: Warning

The code samples contain multiple ways and patterns to do things and not always be considered best practices or recommended for all situations.

Database Centric vs Domain Centric Architecture

alt text

(open on draw.io)

Hexagonal Architecture

alt text

(open on draw.io)

Onion Architecture

alt text

(open on draw.io)

The Clean Architecture

alt text

(open on draw.io)

Classic Three-layer Architecture

alt text

(open on draw.io)

Modern Four-layer Architecture

alt text

(open on draw.io)

Layer Dependencies

alt text

(open on draw.io)

Layer Examples

alt text

(open on draw.io)

Testing Pyramid

alt text alt text alt text

(open on draw.io)

Vertical Slice Architecture (Modular Monolith)

alt text

(open on draw.io)

Solution Structure

alt text

alt text

alt text

How to Run:

Update Configuration

<details> <summary><b>Additional Configuration Sources</b></summary> </details> <details> <summary><b>Storage</b></summary> </details> <details> <summary><b>Message Broker</b></summary> </details> <details> <summary><b>Logging</b></summary> </details> <details> <summary><b>Caching</b></summary> </details> <details> <summary><b>Monitoring</b></summary> </details> <details> <summary><b>Interceptors</b></summary> </details> <details> <summary><b>Security Headers</b></summary> </details> <details> <summary><b>Cross-Origin Resource Sharing (CORS)</b></summary> </details> <details> <summary><b>External Login</b></summary> </details> <details> <summary><b>Sending Email</b></summary> </details> <details> <summary><b>Sending SMS</b></summary> </details>

Run or Debug the Solution

How to Build and Run Single Page Applications:

How to Run on Docker Containers:

How to Run Integration & End to End Tests:

Application URLs:

https://github.com/phongnguyend/Practical.CleanArchitecture/wiki/Application-URLs

Roadmap:

https://github.com/phongnguyend/Practical.CleanArchitecture/wiki/Roadmap

Licence 🔑

This repository is licensed under the MIT license.

Duende.IdentityServer License 🔑

Duende.IdentityServer is available under both a FOSS (RPL) and a commercial license.

For the production environment, it is necessary to get a specific license, if you would like more information about the licensing of Duende.IdentityServer - please check this link.

The source code under /src/IdentityServer/Duende folder uses the source code from https://github.com/DuendeSoftware/IdentityServer.Quickstart.UI which is under the terms of the following license.

EPPLus License 🔑

EPPlus 5 can be used under Polyform Noncommercial license or a commercial license.

For the production environment, it is necessary to get a specific license, if you would like more information about the licensing of EPPlus 5 - please check this link.