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.
dotnet add package RCommon.CoreModels 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.
dotnet add package RCommon.Modelsdotnet add package RCommon.EntitiesPersistence
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
dotnet add package RCommon.Persistencedotnet add package RCommon.EFCoreDapper
dotnet add package RCommon.Persistencedotnet add package RCommon.DapperLinq2Db
dotnet add package RCommon.Persistencedotnet add package RCommon.Linq2DbCQRS / Mediator
dotnet add package RCommon.MediatorChoose a backing implementation:
dotnet add package RCommon.MediatRdotnet add package RCommon.WolverineEvent handling
The in-memory event bus is part of RCommon.Core. For distributed messaging, add one of:
dotnet add package RCommon.MassTransitdotnet add package RCommon.WolverineFor the transactional outbox pattern:
dotnet add package RCommon.MassTransit.Outboxdotnet add package RCommon.Wolverine.OutboxCaching
dotnet add package RCommon.Cachingdotnet add package RCommon.MemoryCachedotnet add package RCommon.RedisCacheValidation
dotnet add package RCommon.FluentValidationEmail
dotnet add package RCommon.Emailingdotnet add package RCommon.SendGridBlob storage
dotnet add package RCommon.Blobsdotnet add package RCommon.Azure.Blobsdotnet add package RCommon.Amazon.S3ObjectsSerialization
dotnet add package RCommon.Jsondotnet add package RCommon.SystemTextJsondotnet add package RCommon.JsonNetMulti-tenancy
dotnet add package RCommon.MultiTenancydotnet add package RCommon.FinbuckleSecurity and web
dotnet add package RCommon.Securitydotnet add package RCommon.Webdotnet add package RCommon.Authorization.WebState machines
dotnet add package RCommon.Statelessdotnet add package RCommon.MassTransit.StateMachinesApplication services
dotnet add package RCommon.ApplicationServicesPicking 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.