Clean architecture with .NET 5

Diego Martin | 15 Nov 2020

.NET 5 diagram

Microsoft has just released its .NET 5 framework as an evolution of .NET Core that unifies development of web, desktop, web assembly, IoT, artificial intelligence, gaming, cloud and mobile under one single SDK umbrella. Open source, free and amazing.

It's exciting times to be a .NET developer and I, for instance, enjoy working with C# and .NET very much, and I hope to remain doing so for a long time because it's getting more and more interesting.

Today I decided to install .NET 5 SDK and give it a try by migrating a whole project from .NET Core 3.1. It's been a breeze. In fact, I haven't had to deal with any single breaking change doing so, but it's also clean architecture merit because as I explain in this video, when using a clean architecture, your domain or application layers should not depend on any external library.

I wanted to demonstrate this with a simple project and today I've released sasw-scheduler, an open source project built on the top of hangfire, capable of scheduling tasks and delaying http requests up to a specific date. More info about all the features and how to use on the project's README itself.

This project uses netstandard2.1 class libraries compatible with .NET Core 3.1 and with .NET 5, and the web application and xUnit test application both target .NET 5. Also it has a small CI/CD GitLab script that uses a .NET 5 SDK docker container to build and run tests.