Skip to main content
Version: Next

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