RCommon.Core
2.3.2-alpha.0.1
dotnet add package RCommon.Core --version 2.3.2-alpha.0.1
NuGet\Install-Package RCommon.Core -Version 2.3.2-alpha.0.1
<PackageReference Include="RCommon.Core" Version="2.3.2-alpha.0.1" />
<PackageVersion Include="RCommon.Core" Version="2.3.2-alpha.0.1" />
<PackageReference Include="RCommon.Core" />
paket add RCommon.Core --version 2.3.2-alpha.0.1
#r "nuget: RCommon.Core, 2.3.2-alpha.0.1"
#:package RCommon.Core@2.3.2-alpha.0.1
#addin nuget:?package=RCommon.Core&version=2.3.2-alpha.0.1&prerelease
#tool nuget:?package=RCommon.Core&version=2.3.2-alpha.0.1&prerelease
RCommon.Core
The foundation package for the RCommon framework, providing the fluent builder for dependency injection configuration, an in-memory event bus with transactional event routing, guard clauses, GUID generation, system time abstraction, and a rich set of extension methods.
Features
- Fluent
AddRCommon()builder pattern for configuring framework services via Microsoft DI - In-memory event bus (
IEventBus) with publish/subscribe support and polymorphic event dispatch - Transactional event routing (
IEventRouter) that stores events and dispatches them to the correctIEventProducerinstances based on subscription configuration EventSubscriptionManagerfor isolating event subscriptions so each producer only receives its registered eventsGuardclass with validation methods for nulls, empty strings, ranges, types, collections, email, and more- Sequential and simple GUID generators (
IGuidGenerator) optimized for database-friendly ordering ISystemTimeabstraction for testable, time zone-aware date/time handlingICommonFactory<T>for DI-aware factory pattern with customization support- Extension methods for collections, strings, expressions, streams, dictionaries, reflection, and IQueryable
- Reflection utilities including
ObjectGraphWalkerfor traversing object graphs andReflectionHelperfor generic type inspection and compiled method invocation
Installation
dotnet add package RCommon.Core
Usage
using RCommon;
using RCommon.EventHandling;
// Bootstrap RCommon in your DI configuration
services.AddRCommon(builder =>
{
builder
.WithSequentialGuidGenerator(options =>
options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsString)
.WithDateTimeSystem(options =>
options.Kind = DateTimeKind.Utc)
.WithEventHandling<InMemoryEventBusBuilder>(eventHandling =>
{
eventHandling.AddSubscriber<OrderCreatedEvent, OrderCreatedEventHandler>();
});
});
Key Types
| Type | Description |
|---|---|
IRCommonBuilder |
Fluent builder interface for configuring RCommon framework services |
IEventBus |
In-process event bus for publishing events and subscribing handlers |
ISubscriber<TEvent> |
Strongly-typed event subscriber that handles a specific event type |
IEventRouter |
Routes stored transactional events to the appropriate IEventProducer instances |
IEventProducer |
Dispatches serializable events to a destination (bus, broker, etc.) |
EventSubscriptionManager |
Tracks event-to-producer subscriptions for isolated event routing |
Guard |
Utility class with guard clause methods for parameter validation |
IGuidGenerator |
Abstraction for GUID generation (sequential or simple) |
ISystemTime |
Abstracts the system clock for testable time-dependent code |
ICommonFactory<T> |
DI-aware factory pattern for creating service instances |
ObjectGraphWalker |
Recursively traverses an object graph searching for instances of a specified type |
ReflectionHelper |
Utilities for generic type inspection, attribute retrieval, and compiled method invocation |
Documentation
For full documentation, visit rcommon.com.
Related Packages
- RCommon.Models - Shared models for CQRS commands, queries, events, pagination, and execution results
- RCommon.Entities - Domain entity base classes with auditing, soft delete, and transactional event tracking
License
Licensed under the Apache License, Version 2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration.Binder (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.Hosting (>= 10.0.2)
- Microsoft.Extensions.Options (>= 10.0.2)
- Nito.AsyncEx.Context (>= 5.1.2)
- RCommon.Models (>= 2.3.2-alpha.0.1)
-
net8.0
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.Hosting (>= 8.0.1)
- Microsoft.Extensions.Options (>= 8.0.2)
- Nito.AsyncEx.Context (>= 5.1.2)
- RCommon.Models (>= 2.3.2-alpha.0.1)
-
net9.0
- Microsoft.Extensions.Configuration.Binder (>= 9.0.10)
- Microsoft.Extensions.DependencyInjection (>= 9.0.10)
- Microsoft.Extensions.Hosting (>= 9.0.10)
- Microsoft.Extensions.Options (>= 9.0.10)
- Nito.AsyncEx.Context (>= 5.1.2)
- RCommon.Models (>= 2.3.2-alpha.0.1)
NuGet packages (30)
Showing the top 5 NuGet packages that depend on RCommon.Core:
| Package | Downloads |
|---|---|
|
RCommon.Persistence
A cohesive set of infrastructure libraries for dotnet that utilizes abstractions for event handling, persistence, unit of work, mediator, distributed messaging, event bus, CQRS, email, and more |
|
|
RCommon.DataServices
A cohesive set of .NET 7 infrastructure libraries that utilizes abstractions for persistence, unit of work/transactions, distributed events, distributed transactions, and more. |
|
|
RCommon.BusinessEntities
A cohesive set of .NET 7 infrastructure libraries that utilizes abstractions for persistence, unit of work/transactions, distributed events, distributed transactions, and more. |
|
|
RCommon.ExceptionHandling
A cohesive set of .NET 7 infrastructure libraries that utilizes abstractions for persistence, unit of work/transactions, distributed events, distributed transactions, and more. |
|
|
RCommon.Validation
A cohesive set of .NET 7 infrastructure libraries that utilizes abstractions for persistence, unit of work/transactions, distributed events, distributed transactions, and more. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.3.2-alpha.0.1 | 72 | 2/9/2026 |
| 2.3.1 | 478 | 2/5/2026 |
| 2.3.0 | 462 | 2/3/2026 |
| 2.2.2-alpha.0.1 | 391 | 12/11/2025 |
| 2.2.1-alpha.0.2 | 132 | 10/24/2025 |
| 2.2.1-alpha.0.1 | 156 | 10/24/2025 |
| 2.1.11-alpha.0.2 | 125 | 10/24/2025 |
| 2.1.11-alpha.0.1 | 99 | 7/18/2025 |
| 2.1.10 | 647 | 7/17/2025 |
| 2.1.9-alpha.0.1 | 143 | 7/17/2025 |
| 2.1.2.4 | 598 | 5/21/2025 |
| 2.1.2.3 | 569 | 5/1/2025 |
| 2.1.2.2 | 905 | 1/23/2025 |
| 2.1.2.1 | 713 | 1/17/2025 |
| 2.1.2 | 548 | 1/17/2025 |
| 2.1.1.4 | 597 | 1/7/2025 |
| 2.1.1.3 | 574 | 11/22/2024 |
| 2.1.1.2 | 589 | 11/22/2024 |
| 2.1.1.1 | 550 | 11/22/2024 |
| 0.0.0-alpha.0 | 172 | 7/17/2025 |