Skip to main content
Version: 2.4.1

Installation

RCommon is distributed as a family of focused NuGet packages. Install only the ones relevant to your application — you are not forced to take every dependency.

Target framework requirements​

All RCommon packages target .NET 8, .NET 9, and .NET 10. There is no support for .NET Framework or .NET Standard.

Core package​

Every RCommon application starts with the core package. It provides the fluent builder entry point, the in-memory event bus, guard clauses, GUID generation, system time abstraction, and the extension method library.

NuGet Package
dotnet add package RCommon.Core

Models and entities​

Shared CQRS models (commands, queries, execution results, pagination) and domain entity base classes live in two separate packages so you can reference only what each project layer needs.

NuGet Package
dotnet add package RCommon.Models
NuGet Package
dotnet add package RCommon.Entities

Persistence​

Choose one or more persistence providers. Each package registers repository implementations behind the shared ILinqRepository<T>, IReadOnlyRepository<T>, and IWriteOnlyRepository<T> abstractions.

Entity Framework Core

NuGet Package
dotnet add package RCommon.Persistence
NuGet Package
dotnet add package RCommon.EFCore

Dapper

NuGet Package
dotnet add package RCommon.Persistence
NuGet Package
dotnet add package RCommon.Dapper

Linq2Db

NuGet Package
dotnet add package RCommon.Persistence
NuGet Package
dotnet add package RCommon.Linq2Db

CQRS / Mediator​

NuGet Package
dotnet add package RCommon.Mediator

Choose a backing implementation:

NuGet Package
dotnet add package RCommon.MediatR
NuGet Package
dotnet add package RCommon.Wolverine

Event handling​

The in-memory event bus is part of RCommon.Core. For distributed messaging, add one of:

NuGet Package
dotnet add package RCommon.MassTransit
NuGet Package
dotnet add package RCommon.Wolverine

For the transactional outbox pattern:

NuGet Package
dotnet add package RCommon.MassTransit.Outbox
NuGet Package
dotnet add package RCommon.Wolverine.Outbox

Caching​

NuGet Package
dotnet add package RCommon.Caching
NuGet Package
dotnet add package RCommon.MemoryCache
NuGet Package
dotnet add package RCommon.RedisCache

Validation​

NuGet Package
dotnet add package RCommon.FluentValidation

Email​

NuGet Package
dotnet add package RCommon.Emailing
NuGet Package
dotnet add package RCommon.SendGrid

Blob storage​

NuGet Package
dotnet add package RCommon.Blobs
NuGet Package
dotnet add package RCommon.Azure.Blobs
NuGet Package
dotnet add package RCommon.Amazon.S3Objects

Serialization​

NuGet Package
dotnet add package RCommon.Json
NuGet Package
dotnet add package RCommon.SystemTextJson
NuGet Package
dotnet add package RCommon.JsonNet

Multi-tenancy​

NuGet Package
dotnet add package RCommon.MultiTenancy
NuGet Package
dotnet add package RCommon.Finbuckle

Security and web​

NuGet Package
dotnet add package RCommon.Security
NuGet Package
dotnet add package RCommon.Web
NuGet Package
dotnet add package RCommon.Authorization.Web

State machines​

NuGet Package
dotnet add package RCommon.Stateless
NuGet Package
dotnet add package RCommon.MassTransit.StateMachines

Application services​

NuGet Package
dotnet add package RCommon.ApplicationServices

Picking what you need​

A typical web API that uses EF Core, MediatR, FluentValidation, and in-process events needs only:

RCommon.Core
RCommon.Models
RCommon.Entities
RCommon.Persistence
RCommon.EFCore
RCommon.Mediator
RCommon.MediatR
RCommon.FluentValidation
RCommon.ApplicationServices

Add further packages incrementally as requirements grow. Packages that share abstractions (for example RCommon.Persistence and RCommon.EFCore) must be compatible versions; use the same version number for all RCommon packages in a single project.

RCommonRCommon