KSociety.Base.EventBus

K-Society Base is a full stack framework for microservices.


Keywords
framework, fullstack, k-society, ksociety, microservices, c-sharp, cqrs, csharp, ddd, domain-driven-design, dotnet, event-sourcing, eventsourcing
License
MS-RL
Install
Install-Package KSociety.Base.EventBus -Version 1.0.114

Documentation

Logo

build status NuGet

K - Society Framework

KSociety.Base - Framework for microservices

K-Society Base is a full stack framework is based on .NET to quickly build layered structure, ideal for implementing microservices.

Introduction

KSociety.Base is a .NET Standard 2.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.

Developing K-Society

Prerequisites

Visual Studio 2022 with the following installed:

Workloads
ASP.NET and web development
.NET desktop development
Getting started:
To build the KSociety.Base:
  • Run 'build.cmd' script
Uses your newly built KSociety.Base framework

Examples

Here you can find several examples.

Architecture

Image of Architecture

1. Presentation (KSociety.Base.Pre.*)

The presentation layer.

GitHub Repository NuGet Download
KSociety.Base.Pre.Model NuGet NuGet

1.1 Presentation - Form (KSociety.Base.Pre.Form.*)

GitHub Repository NuGet Download
KSociety.Base.Pre.Form.View NuGet NuGet
KSociety.Base.Pre.Form.Presenter NuGet NuGet

2. Service (KSociety.Base.Srv.*)

The service layer.

GitHub Repository NuGet Download
KSociety.Base.Srv.Agent NuGet NuGet
KSociety.Base.Srv.Behavior NuGet NuGet
KSociety.Base.Srv.Contract NuGet NuGet
KSociety.Base.Srv.Dto NuGet NuGet
KSociety.Base.Srv.Shared NuGet NuGet

2.1 Service - Host (KSociety.Base.Srv.Host.*)

Contains the autofac modules.

GitHub Repository NuGet Download
KSociety.Base.Srv.Host.Shared NuGet NuGet

3. Application (KSociety.Base.App.*)

The application layer, abstraction on the command handler library. Contains the abstraction of the request handlers.

GitHub Repository NuGet Download
KSociety.Base.App.Shared NuGet NuGet
KSociety.Base.App.Utility NuGet NuGet

4. Business

GitHub Repository NuGet Download

5. Domain (KSociety.Base.Domain.*)

The domain layer.

GitHub Repository NuGet Download
KSociety.Base.Domain.Shared NuGet NuGet

6. Infrastructure (KSociety.Base.Infra.*)

The infrastructure layer, data access layer (DAL). It also contains the implementation of the UnitOfWork. Supported databases:

  1. SqlServer
  2. Sqlite
  3. MySql
  4. PostgreSQL
GitHub Repository NuGet Download
KSociety.Base.Infra.Abstraction NuGet NuGet
KSociety.Base.Infra.Shared NuGet NuGet

EventBus (KSociety.Base.*)

The event bus abstraction and RbbitMQ implementation.

GitHub Repository NuGet Download
KSociety.Base.EventBus NuGet NuGet
KSociety.Base.EventBusRabbitMQ NuGet NuGet

InfrastructureSub (KSociety.Base.InfraSub.*)

The generic shared library.

GitHub Repository NuGet Download
KSociety.Base.InfraSub.Shared NuGet NuGet

License

The project is under Microsoft Reciprocal License (MS-RL)

Dependencies

List of technologies, frameworks and libraries used for implementation: