Namespace Savvyio.Domain
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).