Cirreum.Domain
1.1.0
dotnet add package Cirreum.Domain --version 1.1.0
NuGet\Install-Package Cirreum.Domain -Version 1.1.0
<PackageReference Include="Cirreum.Domain" Version="1.1.0" />
<PackageVersion Include="Cirreum.Domain" Version="1.1.0" />
<PackageReference Include="Cirreum.Domain" />
paket add Cirreum.Domain --version 1.1.0
#r "nuget: Cirreum.Domain, 1.1.0"
#:package Cirreum.Domain@1.1.0
#addin nuget:?package=Cirreum.Domain&version=1.1.0
#tool nuget:?package=Cirreum.Domain&version=1.1.0
Cirreum.Domain
The default implementation of Cirreum's domain-centric application model.
Overview
Cirreum.Domain is the default implementation of Cirreum's domain-centric application model — the runtime-agnostic engine that supplies the concrete classes behind the contracts declared in Cirreum.Contracts.
Cirreum.Domain provides:
- Conductor — the CQRS engine:
Dispatcher,Publisher,ConductorBuilder, the pipeline machinery, and the validation / query-caching / handler-performance intercepts - Caching —
InMemoryCacheService,InstrumentedCacheService,NoCacheService, and cache telemetry - Authorization —
DefaultAuthorizationEvaluator, the operation-grant accessor / factory / evaluator and grant-cache machinery,ResourceAccessEvaluator,RoleDefinitionScanner, and the FluentValidation validators (AuthorizerBase, theHas*Validatorfamily) - State —
ScopedNotificationState - Presence —
UserPresenceBuilder - RemoteServices —
RemoteClientand the connection base - FileSystem —
FileSystemUtilsand the CSV implementations - Registration & extensions —
AddDomainServices(the default Conductor pipeline + authorization wiring),ResultExtensions,SystemIOExtensions, and format helpers
Where it fits
Cirreum.Domain is L3 — the framework engine, implemented over Cirreum.Contracts (L2, the contract surface) and Cirreum.Kernel (L1, the dependency-free floor), both referenced as published packages. It carries no host or provider dependencies, so the same domain core runs unchanged on a server, in WebAssembly, or in a serverless function.
Contribution Guidelines
Be conservative with new abstractions
The API surface must remain stable and meaningful — Domain is the engine the whole framework runs on; changes ripple through the entire ecosystem.Limit dependency expansion
Only add foundational, version-stable dependencies. Concrete dependencies belong here (not inCirreum.Contracts), but keep them deliberate.Favor additive, non-breaking changes
Breaking changes cascade through every dependent package and every Cirreum app. Major version bumps are rare.Include thorough unit tests
All behavior should be independently testable.Document architectural decisions
Context and reasoning should be clear for future maintainers.Follow .NET conventions
Use established patterns fromMicrosoft.Extensions.*libraries.
Versioning
Cirreum.Domain follows Semantic Versioning:
- Major — Breaking API changes
- Minor — New features, backward compatible
- Patch — Bug fixes, backward compatible
Given its foundational role, major version bumps are rare and carefully considered.
License
This project is licensed under the MIT License — see the LICENSE file for details.
Cirreum Foundation Framework
Layered simplicity for modern .NET
| 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
- Cirreum.Contracts (>= 1.1.0)
- Cirreum.Exceptions (>= 1.1.0)
- FluentValidation (>= 12.1.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.