Sample implementation of the Clean Architecture Principles with .NET Core. Use cases as central organizing structure, decoupled from frameworks and technology details. Built with small components that are developed and tested in isolation.
ProTip #1: Hit the WATCH
button 👀 to get the latest Clean Architecture updates.
Manga is a Virtual Wallet application in which the customer could register an account then manage the balance by Deposits
, Withdraws
and Transfers
.
The Manga's demo is hosted on Azure
servers and the Swagger UI
client is available at https://clean-architecture-manga.azurewebsites.net/swagger/index.html. It is just beautiful!
Run the Docker container in less than 2 minutes using Play With Docker:
pushd src/WebApi/ClientApp
npm install
popd
dotnet run --project src/WebApi/WebApi.csproj --environment="Development"
Then navigate to:
- App:
http://localhost:5001
- Swagger:
http://localhost:5001/swagger/index.html
or try the Docker approach:
docker build -t my-app . -f src/WebApi/Dockerfile
docker run -p 6001:80 my-app
- App:
http://localhost:6001
- Swagger:
http://localhost:6001/swagger/index.html
Learn how to design modular applications.
Explore the .NET Core features.
Learning how to design modular applications will help you become a better engineer. Designing modular applications is the holy grail of software architecture, it is hard to find engineers experienced on designing applications which allows adding new features in a steady speed.
.NET Core brings a sweet development environment, an extensible and cross-platform framework. We will explore the benefits of it in the infrastructure layer and we will reduce its importance in the application and domain layers. The same rule is applied for modern C# language syntax.
This is continually updated, open source project.
Contributions are welcome!
Learn from the community.
Feel free to submit pull requests to help:
- Fix errors.
- Improve sections.
- Add new sections.
- Submit questions and bugs.
- I am part of a large network of Brazilian developers, to include them in the discussions I pinned the Discussão em Português.
- Single Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Swagger and API Versioning
- Microsoft Extensions
- Feature Flags
- Logging
- Data Annotations
- Authentication
- Authorization
- Running the Application Locally
- Running the Tests Locally
- Continuous Integration & Continuous Deployment
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
ProTip #3: Would you like to show Clean Architecture on your GitHub profile? Hit the FORK
button