Table of Contents

Namespace Savvyio.Domain

Assembly: Savvyio.Core.dll

The Savvyio.Domain namespace holds all the abstractions and core types related to DDD.

Availability: .NET 9 and .NET 8

Classes

Aggregate<TKey, TEvent>

Represents the base class from which all implementations of an Aggregate Root (as specified in Domain Driven Design) should derive.

AggregateRoot<TKey>

Provides a way to cover the pattern of an Aggregate Root as specified in Domain Driven Design. This is an abstract class.

DomainEvent

Provides a default implementation of the IDomainEvent interface.

DomainEventDispatcher

Provides a default implementation of of the IDomainEventDispatcher interface.

DomainEventDispatcherExtensions

Extension methods for the IDomainEventDispatcher interface.

DomainEventExtensions

Extension methods for the IDomainEvent interface.

DomainEventHandler

Provides a generic and consistent way of handling Domain Event (as specified in Domain Driven Design) objects that implements the IDomainEvent interface. This is an abstract class.

DomainException

The exception that is thrown when a domain model is not in a valid state.

Entity<TKey>

Provides a way to cover the pattern of an Entity as specified in Domain Driven Design. This is an abstract class.

SavvyioOptionsExtensions

Extension methods for the SavvyioOptions class.

SingleValueObject<T>

Provides an implementation of ValueObject tailored for handling a single value.

ValueObject

Represents an object whose equality is based on the value rather than identity as specified in Domain Driven Design.

Interfaces

IAggregateRepository<TEntity, TKey>

Defines a generic way of abstracting persistent repositories (CRUD) that is optimized for Domain Driven Design.

IAggregateRoot

Defines a marker interface of an Aggregate as specified in Domain Driven Design.

IAggregateRoot<TEvent>

Defines an Event based contract of an Aggregate as specified in Domain Driven Design.

IAggregateRoot<TEvent, TKey>

Defines an Event and Entity based contract of an Aggregate as specified in Domain Driven Design.

IDeletableRepository<TEntity, TKey>

Defines a generic way of abstracting deletable repositories (cruD).

IDomainEvent

A marker interface that specifies something that happened in the domain that you want other parts of the same domain (in-process/inner-application) to be made aware of.

IDomainEventDispatcher

Defines a Domain Event dispatcher that uses Fire-and-Forget/In-Only MEP.

IDomainEventHandler

Specifies a handler responsible for objects that implements the IDomainEvent interface.

IEntity<TKey>

Defines an Entity as specified in Domain Driven Design.

IPersistentRepository<TEntity, TKey>

Defines a generic way of abstracting persistent repositories (CRUD).

IReadableRepository<TEntity, TKey>

Defines a generic way of abstracting readable repositories (cRud).

IRepository<TEntity, TKey>

A marker interface that specifies an abstraction of data persistence based on the Repository pattern.

ISearchableRepository<TEntity, TKey>

Defines a generic way of abstracting searchable repositories (cRud).

IUnitOfWork

Defines a transaction that bundles multiple IRepository<TEntity, TKey> calls into a single unit.

IWritableRepository<TEntity, TKey>

Defines a generic way of abstracting writable repositories (CrUd).