NowAround.SharedKernel.Domain 0.2.1-ci.254

NowAround.SharedKernel.Domain

Shared domain model primitives for NowAround services.

Features

  • Entity base class with identity-based equality.
  • ValueObject base class with component-based equality.
  • AggregateRoot base class with domain event support.
  • Domain event contracts based on MediatR notifications.

Installation

dotnet add package NowAround.SharedKernel.Domain

Entities

Use Entity for domain objects that are identified by a stable Guid:

using NowAround.SharedKernel.Domain.Common;

public sealed class Customer : Entity
{
    public Customer(Guid id, string name) : base(id)
    {
        Name = name;
    }

    public string Name { get; private set; }
}

Two entities are equal when they have the same runtime type and the same Id.

Value Objects

Use ValueObject for immutable concepts identified by their values:

using NowAround.SharedKernel.Domain.Common;

public sealed class Money(decimal amount, string currency) : ValueObject
{
    public decimal Amount { get; } = amount;
    public string Currency { get; } = currency;

    public override IEnumerable<object> GetEqualityComponents()
    {
        yield return Amount;
        yield return Currency;
    }
}

Equality is based on the sequence returned by GetEqualityComponents().

Aggregate Roots And Domain Events

Use AggregateRoot for aggregate roots that collect domain events:

using NowAround.SharedKernel.Domain.Common;
using NowAround.SharedKernel.Domain.DomainEvents;

public sealed class Order : AggregateRoot
{
    private readonly List<IDomainEvent> _domainEvents = [];

    public Order(Guid id) : base(id)
    {
    }

    public override IEnumerable<IDomainEvent> DomainEvents => _domainEvents;

    public void MarkSubmitted()
    {
        _domainEvents.Add(new OrderSubmitted(Id));
    }

    public override void ClearDomainEvents()
    {
        _domainEvents.Clear();
    }
}

public sealed record OrderSubmitted(Guid OrderId) : IDomainEvent;

IDomainEvent extends MediatR INotification, so events can be handled by MediatR notification handlers.

Implement IDomainEventDispatcher in the application or infrastructure layer to publish events and clear them from aggregates after successful dispatch.

Showing the top 20 packages that depend on NowAround.SharedKernel.Domain.

Packages Downloads
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
24
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
24
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
12
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
11
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
11
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
10
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
7
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
7
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
5
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
5
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
3
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
3
NowAround.SharedKernel.Events.Application
Application abstractions for NowAround domain events, integration events, and outbox messages.
2
NowAround.SharedKernel.Events.Infrastructure
Infrastructure services for NowAround domain event dispatching and EF Core outbox integration event processing.
2

.NET 10.0

Version Downloads Last updated
0.3.0 36 06/03/2026
0.2.1-ci.254 3 06/01/2026
0.2.0 11 06/01/2026
0.2.0-ci.235 5 05/30/2026
0.2.0-ci.218 10 05/26/2026
0.1.1-ci.214 2 05/23/2026
0.1.0 10 05/19/2026
0.0.1 17 05/15/2026