Excalibur.Domain
3.0.0-alpha.66
See the version list below for details.
dotnet add package Excalibur.Domain --version 3.0.0-alpha.66
NuGet\Install-Package Excalibur.Domain -Version 3.0.0-alpha.66
<PackageReference Include="Excalibur.Domain" Version="3.0.0-alpha.66" />
<PackageVersion Include="Excalibur.Domain" Version="3.0.0-alpha.66" />
<PackageReference Include="Excalibur.Domain" />
paket add Excalibur.Domain --version 3.0.0-alpha.66
#r "nuget: Excalibur.Domain, 3.0.0-alpha.66"
#:package Excalibur.Domain@3.0.0-alpha.66
#addin nuget:?package=Excalibur.Domain&version=3.0.0-alpha.66&prerelease
#tool nuget:?package=Excalibur.Domain&version=3.0.0-alpha.66&prerelease
Excalibur.Domain
Domain-Driven Design building blocks for the Excalibur framework.
Installation
dotnet add package Excalibur.Domain
Purpose
This package provides foundational DDD building blocks for domain modeling. Use it when implementing aggregate roots, entities, value objects, and domain events in your application. Designed for event-sourced and traditional persistence patterns.
Key Types
AggregateRoot/AggregateRoot<TKey>- Base class for aggregate rootsEntityBase/EntityBase<TKey>- Base class for entitiesValueObjectBase- Base class for value objectsIAggregateRoot/IAggregateRoot<TKey>- Aggregate interfaceIEntity/IEntity<TKey>- Entity interfaceIValueObject- Value object interfaceDomainException- Domain-specific exception baseApiException- API exception with problem details
Quick Start
// Define an aggregate root
public class Order : AggregateRoot<Guid>
{
public string CustomerId { get; private set; }
public Money Total { get; private set; }
public OrderStatus Status { get; private set; }
public Order(Guid id, string customerId) : base(id)
{
CustomerId = customerId;
Total = Money.Zero("USD");
Status = OrderStatus.Pending;
}
public void AddItem(string productId, decimal price, int quantity)
{
// Domain logic
Total = Total.Add(new Money(price * quantity, "USD"));
}
}
// Define a value object
public class Money : ValueObjectBase
{
public decimal Amount { get; }
public string Currency { get; }
public Money(decimal amount, string currency)
{
Amount = amount;
Currency = currency;
}
protected override IEnumerable<object> GetEqualityComponents()
{
yield return Amount;
yield return Currency;
}
}
Documentation
Full documentation: https://github.com/TrigintaFaces/Excalibur
License
This project is multi-licensed under:
See LICENSE for details.
| 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
- Ben.Demystifier (>= 0.4.1)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.66)
- Medo.Uuid7 (>= 1.4.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
-
net8.0
- Ben.Demystifier (>= 0.4.1)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.66)
- Medo.Uuid7 (>= 1.4.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.0)
-
net9.0
- Ben.Demystifier (>= 0.4.1)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.66)
- Medo.Uuid7 (>= 1.4.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on Excalibur.Domain:
| Package | Downloads |
|---|---|
|
Excalibur.Data
Data access layer implementation for Excalibur with repository patterns, unit of work, and data abstractions. Provides concrete implementations for data persistence. |
|
|
Excalibur.Data.Abstractions
Core abstractions for the Excalibur data persistence layer, supporting multiple database providers. |
|
|
Excalibur.EventSourcing.Abstractions
Event sourcing abstractions for the Excalibur framework. |
|
|
Excalibur.Testing
Testing utilities for Excalibur event-sourced aggregates. Provides a fluent Given-When-Then API for aggregate testing. |
|
|
Excalibur.Testing.Conformance
Conformance test kits for Excalibur infrastructure implementations. Provides reusable abstract test suites for IEventStore, IOutboxStore, ISagaStore, ISnapshotStore, and other provider contracts. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-alpha.156 | 0 | 4/17/2026 |
| 3.0.0-alpha.155 | 0 | 4/17/2026 |
| 3.0.0-alpha.143 | 154 | 4/14/2026 |
| 3.0.0-alpha.138 | 151 | 4/13/2026 |
| 3.0.0-alpha.131 | 174 | 4/10/2026 |
| 3.0.0-alpha.129 | 197 | 4/10/2026 |
| 3.0.0-alpha.125 | 177 | 4/10/2026 |
| 3.0.0-alpha.120 | 184 | 4/8/2026 |
| 3.0.0-alpha.118 | 156 | 4/8/2026 |
| 3.0.0-alpha.85 | 166 | 4/3/2026 |
| 3.0.0-alpha.84 | 185 | 3/31/2026 |
| 3.0.0-alpha.83 | 172 | 3/31/2026 |
| 3.0.0-alpha.82 | 185 | 3/31/2026 |
| 3.0.0-alpha.80 | 178 | 3/30/2026 |
| 3.0.0-alpha.79 | 185 | 3/29/2026 |
| 3.0.0-alpha.76 | 153 | 3/29/2026 |
| 3.0.0-alpha.75 | 156 | 3/27/2026 |
| 3.0.0-alpha.74 | 160 | 3/27/2026 |
| 3.0.0-alpha.66 | 125 | 3/25/2026 |
| 2.2.14 | 386 | 8/26/2025 |