Template for microservice based on DDD and Clean Architecture with .NET
The main aim of this project is to provide a means for building microservices with the latest technology and architecture.
dotnet new install .\
Creating a new application
dotnet new nkz-template -o My.NewApp
If you're using this repository for your learning, samples or your project, please give a star. Thanks ๐
I would like this project to help you find simplified and effortless solutions. You can treat it as a modular project and reuse the modules in your projects.
- REST API samples
- GRPC API samples
- Improve integration tests to use Testcontainers
- GraphQL API samples
- MassTransit and RabbitMq
- Minimal hosting model
- Migrate to .NET 7
- HealthCheck
- Websocket (SignalR)
- GRPC Error handling in interceptors
- Enabling Central Package Management
- Uses Chiseled Ubuntu image
- OpenTelemetry
- Add caching for EF Core
- MongoDB data provider
NET Core 7 : .NET Core, including ASP.NET Core
EntityFrameworkCore: EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.
Npgsql: Npgsql is the open source .NET data provider for PostgreSQL. It allows you to connect and interact with PostgreSQL server using .NET.
Mapster: A mapper library for .NET.
GuardClauses: A simple extensible package with guard clause extensions.
Testcontainers: Testcontainers is a library to support tests with throwaway instances of Docker containers for all compatible .NET Standard versions.
FluentValidation: A validation library for .NET that uses a fluent interface and lambda expressions for building strongly-typed validation rules.
FluentAssertions: A very extensive set of extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests.
protobuf-net: protobuf-net is a contract based serializer for .NET code, that happens to write data in the "protocol buffers" serialization format engineered by Google.
hotchocolate: A GraphQL server to create GraphQL endpoints and merge schemas.
MassTransit: MassTransit is a free, open-source distributed application framework for .NET.
FluentResults: FluentResults is a lightweight .NET library developed to solve a common problem. It returns an object indicating success or failure of an operation instead of throwing/using exceptions.
Specification: Base class with tests for adding specifications to a DDD model. Also includes a default generic Repository base class with support for EF6 and EF Core.
Scrutor: Assembly scanning and decoration extensions for Microsoft.Extensions.DependencyInjection.
RestSharp: RestSharp is a lightweight HTTP client library. It's a wrapper around HttpClient, not a full-fledged client on its own.
SignalR: ASP.NET Core SignalR is a library for ASP.NET Core developers that makes it incredibly simple to add real-time web functionality to your applications.