Build Enterprise Applications
Without Reinventing the Wheel
RCommon provides battle-tested abstractions for persistence, CQRS, event handling, messaging, caching, and more — so you can focus on your domain, not your plumbing.
dotnet add package RCommon.CoreEverything You Need
Pluggable abstractions with multiple provider implementations
Persistence
Repository, Unit of Work, Specifications — with EF Core, Dapper, and Linq2Db providers
CQRS & Mediator
Command/Query Bus with MediatR and Wolverine implementations
Event Handling
In-memory and distributed events with transactional outbox support
Messaging
Message bus with MassTransit and Wolverine, including state machines
Caching
Unified caching abstraction with Memory and Redis providers
Domain-Driven Design
Entities, Aggregates, Domain Events, Auditing, and Soft Delete
Blob Storage
Azure Blob Storage and Amazon S3 behind a unified abstraction
Multi-Tenancy
Tenant resolution and isolation with Finbuckle integration
Validation & More
FluentValidation, Email (SMTP/SendGrid), JSON serialization, Security
Simple, Fluent Configuration
Configure everything through a single fluent builder in Program.cs
builder
.AddRCommon()
.WithPersistence<EfCorePeristenceBuilder>(ef =>
ef.AddDbContext<AppDbContext>(...))
.WithMediator<MediatRBuilder>(mediator =>
mediator.AddRequest<CreateOrderCommand>())
.WithEventHandling<MassTransitBuilder>(events =>
events.AddProducer<OrderCreatedEvent>())
.WithCaching<MemoryCacheBuilder>()
.WithValidation<FluentValidationBuilder>();Built for Any Architecture
RCommon fits into the architecture you choose