Harmony is a set of code structuring tools that aim to simplify the creation of well structured, systematic and easily testable .NET code bases. It provides the foundation to implement modern programming paradigms, like railway oriented programming, and common design patterns like mediator and cqrs in a flexible way. Harmony has some opinionated elements, but overall it aims to be as flexible as possible, so it can be used in various different systems and architectures.
Harmony includes three packages, all requiring a minimum of .NET 6 and fully supported up to .NET 8.
Harmony Package | NuGet |
---|---|
Harmony.Cqrs | |
Harmony.Results | |
Harmony.MinimalApis |
Harmony.Results and Harmony.Cqrs are completely independent of each other, while Harmony.MinimalApis has a dependency on Harmony.Results.
A complete documentation is available at the wiki of this repository.
A complete Todo minimal API utilizing Harmony is included in the project files as an example. Additionally, numerous usage examples are provided throughout the documentation.
Does Harmony offer value to you and your project? If so, consider showing your support by giving it a star! ⭐