This is a dotnet solution template from projects based on hexagonal architecture and best practices
hexagonal-solution-full: Full hexagonal architecture template (Domain, Application, Infrastructure, WebApp, tests and load tests).hexagonal-solution-bff: Backend-for-Frontend focused template with HTTP/gRPC integration patterns and integration/load tests.hexagonal-solution-contracts: Contracts-only template for shared request/response models, DTOs, gRPC protobuf definitions and unit tests.
- FluentValidation
- OpenTelemetry
- EntityFrameworkCore
- EntityFrameworkCore.SqlServer
- Xunit
- Moq
- AutoFixture
- gRPC / Protobuf
- Docker and Docker Compose
- K6
- Stryker
- GitHub Actions
- Hybrid cache
- Rabbit Mq
- When use the template i recommend you dot not remove Order example scenario until you have you own implementations
To install the project template you have to use the following command
dotnet new install GPreviatti.Template.Hexagonal.SolutionAfter that you can use it to create your project where -n is the name of your solution to create the full solution template you can use the following command
dotnet new hexagonal-solution-full -n HexagonalSolutionTo create only the BFF template you can use the following command
dotnet new hexagonal-solution-bff -n HexagonalSolutionTo create only the Contracts template you can use the following command
dotnet new hexagonal-solution-contracts -n HexagonalSolutionThe Contracts template is recommended when you want a lightweight shared library for API and messaging contracts that can be reused across services.
If you had any doubts about the existing parameters you can also use -h to get more information
dotnet new hexagonal-solution-full -hor
dotnet new hexagonal-solution-bff -hor
dotnet new hexagonal-solution-contracts -hIf you want to update the template to the latest version just execute the following command
dotnet new update GPreviatti.Template.Hexagonal.SolutionIf you want to uninstall the template just execute the following command :(
dotnet new uninstall GPreviatti.Template.Hexagonal.Solution