Resrcify.SharedKernel.Abstractions
4.13.0
dotnet add package Resrcify.SharedKernel.Abstractions --version 4.13.0
NuGet\Install-Package Resrcify.SharedKernel.Abstractions -Version 4.13.0
<PackageReference Include="Resrcify.SharedKernel.Abstractions" Version="4.13.0" />
<PackageVersion Include="Resrcify.SharedKernel.Abstractions" Version="4.13.0" />
<PackageReference Include="Resrcify.SharedKernel.Abstractions" />
paket add Resrcify.SharedKernel.Abstractions --version 4.13.0
#r "nuget: Resrcify.SharedKernel.Abstractions, 4.13.0"
#:package Resrcify.SharedKernel.Abstractions@4.13.0
#addin nuget:?package=Resrcify.SharedKernel.Abstractions&version=4.13.0
#tool nuget:?package=Resrcify.SharedKernel.Abstractions&version=4.13.0
Resrcify.SharedKernel.Abstractions
Resrcify.SharedKernel.Abstractions contains shared contracts used by other SharedKernel modules.
It exists to keep dependency direction explicit and prevent circular references between implementation projects.
Table of Contents
What you get
- Contracts grouped by module under
src/Resrcify.SharedKernel.Abstractions:Mediator/: the requests, handlers and dispatchers, and the markers the mediator's behaviors act on:ICachingQuery,ITransactionalCommand,IIdempotentRequest(answered with the first result when sent again with its key) andINonConcurrentRequest(handled one at a time per request type andConcurrencyKey: another waits, then runs itself; per process, not across replicas; see the Mediator package's "Non-concurrent requests")MessageBus/UnitOfWork/DomainDrivenDesign/Repository/Caching/Resilience/:ITransientFailureRuleandITransientFailureClassifier, the hook that adds a package's or a service's own rules to Results' transient rule (services.AddTransientFailureRule<TRule>(),AddTransientFailureRule(Func<Exception, bool>),TryAddTransientFailureClassifier(), which registers the default classifier: the built-in rule OR every registered rule, for the exception and each of its causes), andRetrySchedule(MaxAttempts, FirstDelay, MaxDelay, Jitter), SharedKernel's one backoff: attempts in all, the first delay doubling up to the longest (DelayAfter(failedAttempt)), which the outbox, the message bus and the HTTP resilience pipeline take as their retry options.Metrics/:DurationBuckets.Seconds, the bucket boundaries (5 ms to 1 h) every SharedKernel duration histogram in seconds advises, for a service's own too:advice: new InstrumentAdvice<double> { HistogramBucketBoundaries = DurationBuckets.Seconds }. Without advice, OpenTelemetry buckets a histogram for milliseconds, and durations in seconds all land in the first bucket.
- Interfaces/contracts only, but for the resilience registration and its default classifier, and the duration buckets. (Some interfaces carry a
default:
ISingleValueObject's staticFromPersistedisCreate(value).Valueunless the value object implements it;IIdempotentRequest.IdempotencyScopeandINonConcurrentRequest.ConcurrencyKeyarenullunless the request sets them.)
Prerequisites
- .NET 10 SDK.
Install
Option A: Project reference
<ProjectReference Include="..\path\to\Resrcify.SharedKernel.Abstractions.csproj" />
Option B: NuGet package
<PackageReference Include="Resrcify.SharedKernel.Abstractions" Version="<latest>" />
CLI:
dotnet add package Resrcify.SharedKernel.Abstractions
Folder and namespace conventions
- Keep namespace declarations aligned to folder structure from
src/andtests/roots. - Use module-rooted namespaces such as:
Resrcify.SharedKernel.Abstractions.MediatorResrcify.SharedKernel.Abstractions.RepositoryResrcify.SharedKernel.Abstractions.DomainDrivenDesignResrcify.SharedKernel.Abstractions.UnitOfWork
- When moving files, update both namespace declarations and corresponding
usingdirectives in the same change.
Usage guide
Reference this project from modules that should depend only on contracts.
using Resrcify.SharedKernel.Abstractions.Mediator;
using Resrcify.SharedKernel.Abstractions.UnitOfWork;
public sealed class ExampleService(
ISender sender,
IUnitOfWork unitOfWork)
{
public async Task ExecuteAsync(
IRequest<Result> request,
CancellationToken cancellationToken)
{
await sender.Send(request, cancellationToken);
await unitOfWork.CompleteAsync(cancellationToken);
}
}
Common issues
- If a module starts referencing implementation projects just for interfaces, move those contracts into this project.
- If namespace drift appears after file moves, run a namespace audit and fix declarations immediately.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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.DependencyInjection.Abstractions (>= 10.0.13)
- Resrcify.SharedKernel.Results (>= 4.13.0)
NuGet packages (10)
Showing the top 5 NuGet packages that depend on Resrcify.SharedKernel.Abstractions:
| Package | Downloads |
|---|---|
|
Resrcify.SharedKernel.DomainDrivenDesign
Implements the different building blocks used in Domain Driven Desing. |
|
|
Resrcify.SharedKernel.Caching
Adds interfaces and implements different caching options using the IDistributedCache interfaces. |
|
|
Resrcify.SharedKernel.Web
ASP.NET Core helpers around the result pattern: problem details for failures and unhandled exceptions, reading responses back as results, health endpoints, an ErrorType-keyed HTTP resilience preset and the shared JWT bearer setup. |
|
|
Resrcify.SharedKernel.UnitOfWork
Implements a unit of work pattern, including interceptors using EntityFrameworkCore. |
|
|
Resrcify.SharedKernel.Repository
Implements a generic repository pattern using EntityFrameworkCore. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.13.0 | 341 | 10/26/2026 |
| 4.12.0 | 290 | 10/24/2026 |
| 4.11.0 | 231 | 10/23/2026 |
| 4.10.0 | 204 | 10/23/2026 |
| 4.9.0 | 204 | 10/22/2026 |
| 4.8.0 | 189 | 10/21/2026 |
| 4.7.0 | 232 | 10/19/2026 |
| 4.6.0 | 211 | 10/19/2026 |
| 4.5.0 | 335 | 10/18/2026 |
| 4.4.1 | 245 | 10/17/2026 |
| 4.4.0 | 221 | 10/16/2026 |
| 4.3.0 | 208 | 10/16/2026 |
| 4.2.0 | 233 | 10/14/2026 |
| 4.1.0 | 211 | 10/14/2026 |
| 4.0.0 | 286 | 10/13/2026 |
| 3.0.0 | 252 | 10/3/2026 |
| 2.2.0 | 232 | 9/13/2026 |
| 2.1.1 | 1,589 | 6/8/2026 |
| 2.1.0 | 206 | 5/24/2026 |
| 2.0.0 | 216 | 5/22/2026 |