K-Society Base is a full stack framework for .NET 6 application, ideal for implementing microservices.
KSociety.Base is a .NET 6.0 framework that can be used to create a clean design by enforcing single responsibility and separation of concerns. Its advanced features are ideal for Domain Driven Design (DDD), Command Query Responsibilty Segragation (CQRS) and Event Sourcing, is an open sourse .NET framework and represents the basic infrastructure. The whole framework is divided into layers listed below.
The install utility library.
GitHub Repository | NuGet | Download |
---|---|---|
InstallAction |
The presentation layer.
GitHub Repository | NuGet | Download |
---|---|---|
Model |
GitHub Repository | NuGet | Download |
---|---|---|
View | ||
Presenter |
The service layer.
GitHub Repository | NuGet | Download |
---|---|---|
Agent | ||
Behavior | ||
Contract | ||
Dto | ||
Shared |
Contains the autofac modules.
GitHub Repository | NuGet | Download |
---|---|---|
Shared |
The application layer, abstraction on the command handler library. Contains the abstraction of the request handlers.
GitHub Repository | NuGet | Download |
---|---|---|
Shared |
GitHub Repository | NuGet | Download |
---|
The domain layer.
GitHub Repository | NuGet | Download |
---|---|---|
Shared |
The infrastructure layer, data access layer (DAL). It also contains the implementation of the UnitOfWork. Supported databases:
- SqlServer
- Sqlite
- MySql
- PostgreSQL
GitHub Repository | NuGet | Download |
---|---|---|
Shared |
The event bus abstraction and RbbitMQ implementation.
GitHub Repository | NuGet | Download |
---|---|---|
EventBus | ||
EventBusRabbitMQ |
The generic shared library.
GitHub Repository | NuGet | Download |
---|---|---|
Shared |
The project is under Microsoft Reciprocal License (MS-RL)
List of technologies, frameworks and libraries used for implementation:
- .NET 6 (platform). Note for Visual Studio users: VS 2022 is required.
- Autofac (Inversion of Control Container)
- AutoMapper (A convention-based object-object mapper)
- CsvHelper (A .NET library for reading and writing CSV files)
- Grpc.Net.Client (.NET client for gRPC)
- MediatR (mediator implementation)
- Polly (Resilience and transient-fault-handling library)
- protobuf-net (protobuf-net is a contract based serializer for .NET code)
- Quartz.NET (background processing)
- RabbitMQ.Client (The RabbitMQ .NET client is an implementation of an AMQP 0-9-1 client library for C#)
- Serilog (structured logging)