RCommon.Core 2.3.2-alpha.0.1

This is a prerelease version of RCommon.Core.
dotnet add package RCommon.Core --version 2.3.2-alpha.0.1
                    
NuGet\Install-Package RCommon.Core -Version 2.3.2-alpha.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RCommon.Core" Version="2.3.2-alpha.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RCommon.Core" Version="2.3.2-alpha.0.1" />
                    
Directory.Packages.props
<PackageReference Include="RCommon.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RCommon.Core --version 2.3.2-alpha.0.1
                    
#r "nuget: RCommon.Core, 2.3.2-alpha.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RCommon.Core@2.3.2-alpha.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RCommon.Core&version=2.3.2-alpha.0.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=RCommon.Core&version=2.3.2-alpha.0.1&prerelease
                    
Install as a Cake Tool

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 correct IEventProducer instances based on subscription configuration
  • EventSubscriptionManager for isolating event subscriptions so each producer only receives its registered events
  • Guard class with validation methods for nulls, empty strings, ranges, types, collections, email, and more
  • Sequential and simple GUID generators (IGuidGenerator) optimized for database-friendly ordering
  • ISystemTime abstraction for testable, time zone-aware date/time handling
  • ICommonFactory<T> for DI-aware factory pattern with customization support
  • Extension methods for collections, strings, expressions, streams, dictionaries, reflection, and IQueryable
  • Reflection utilities including ObjectGraphWalker for traversing object graphs and ReflectionHelper for 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.

  • 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed