SawKing.DotNetSolutionKit
2.7.0
dotnet new install SawKing.DotNetSolutionKit@2.7.0
DotNetSolutionKit
A dotnet new template for microservices on .NET 8 and PostgreSQL or SQL Server. It generates a solution with shared
Common libraries and services split into domain, application, infrastructure and API projects. The host,
errors, validation, persistence, domain events, background jobs and tests are wired in every service; the
message bus, secrets, feature flags, object storage, ClickHouse, an API gateway, deployment files and CI are
switched on by flags.
Site and documentation, in English and Russian: dnsk.sawking.tech
Install
dotnet new install SawKing.DotNetSolutionKit
Generate
# the shared Common projects, the solution file and the first service
dotnet new DotNetSolutionKit -N MyCompany -P MyProduct -S Orders -M false
# every further service
dotnet new DotNetSolutionKit -N MyCompany -P MyProduct -S Billing
Generated solutions, regenerated from every release with their CI running: DotNetSolutionKit.Samples.
Parameters
| Parameter | Default | What it does |
|---|---|---|
-N, --NamespaceRoot |
MyCompany |
Organization name, the root namespace. May be dotted. |
-P, --ProductName |
Product |
Product name. May be dotted. |
-S, --ServiceNameOrCustom |
Service |
Service name. May be dotted. |
-M, --Minimal |
true |
true generates only the service folder, false the full kit. |
--Database |
postgres |
Database: postgres or mssql (SQL Server). |
-H, --Hangfire |
true |
Background jobs on Hangfire. |
--Messaging |
none |
Message bus: outbox or direct. |
-I, --Infisical |
false |
Secrets and settings from Infisical. |
--Vault |
false |
Secrets and settings from HashiCorp Vault. |
--DiffApi |
false |
API contract diff on pull requests. |
--GitHubCiCd |
false |
CI on GitHub Actions: build, tests on real servers, coverage, secret scan. |
-FF, --FeatureFlags |
false |
Feature flags. |
--HierarchyRules |
false |
Access rules over a tenant tree. |
--Storage |
false |
Object storage, S3-compatible. |
-CH, --ClickHouse |
false |
ClickHouse: connections, schema check, readiness. |
--TestFramework |
nunit |
Test framework of the service's tests: nunit or xunit (v3). |
--Audit |
false |
Audit journal of entity changes, through the outbox; with --Messaging outbox. |
--ApiGateway |
false |
An API gateway on YARP in place of a service, with -M true. |
--Deploy |
compose |
Deployment files: compose, k8s or none. |
--Agent |
claude |
Rules and skills for an AI agent: claude, opencode or none. |
--HttpPort |
free port | Port in launchSettings.json and on the host under compose. |
Dotted names, running locally and the rest of the details: generating a solution.
Versions
Version 2 targets .NET 8. To install a given version:
dotnet new install SawKing.DotNetSolutionKit::2.6.2
Do not apply version 2 with --force over a solution generated from version 1: namespaces, project references,
package management and the shape of error responses changed. What changed and how to carry it over:
versions of the template. What each release brings:
releases.
Source and license
github.com/sawking-tech/DotNetSolutionKit, MIT. Made by Vladimir Savkin at sawking.tech.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
SQL Server, HashiCorp Vault and a stronger API gateway.
- Generate a solution on SQL Server with --Database mssql.
- Read secrets from HashiCorp Vault with --Vault.
- Improved the API gateway and its Swagger documents.
- Settings read on each use change without a redeploy.
- Simplified feature flags.
- Secrets live only in their store and in memory.
How to update a solution generated from an earlier version: https://github.com/sawking-tech/DotNetSolutionKit/blob/v2.7.0/docs/getting-started/upgrading.md