Lewee.Domain 0.21.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Lewee.Domain --version 0.21.0                
NuGet\Install-Package Lewee.Domain -Version 0.21.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Lewee.Domain" Version="0.21.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Lewee.Domain --version 0.21.0                
#r "nuget: Lewee.Domain, 0.21.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Lewee.Domain as a Cake Addin
#addin nuget:?package=Lewee.Domain&version=0.21.0

// Install Lewee.Domain as a Cake Tool
#tool nuget:?package=Lewee.Domain&version=0.21.0                

Lewee.Domain

This package assist with implementing the domain logic of an application (architected using domain-driven design principles).

Entity

The Entity class contains some common properties that developers usually like to capture.

All the properties are read-only, but have protected setters.

For example, it contains audit properties:

  • CreatedBy
  • CreatedAtUtc
  • ModifiedBy
  • ModifiedAtUtc

It also a Timestamp property to assist with version tracking.

The Id property is a Guid.

Finally, regarding properties, it includes an IsDeleted property to support soft-delete tracking.

It overrides the Equals method. This returns true if the Id properties are equal or there is full referential equality.

It also overrides the GetHashCode method to return the string hash code after the string concatenation of the type and Id.

There are also some methods to allow marking and un-marking the entity as deleted, and for setting the audit fields.

AggregateRoot, DomainEventsCollection & DomainEvent

The AggregateRoot class inherits of the Entity class and contains a DomainEventsCollection.

The DomainEventsCollection has a Raise method that allows you to raise a DomainEvent.

The Lewee.Infrastructure.Data package contains a DomainEventDispatcherService that dispatches the domain events stored in the database every 2500 ms; it's an outbox pattern.

DomainException

The DomainException class can be used to raise errors when domain rules are violated.

The Lewee.Application package contains has a DomainExceptionBehavior that catches these exceptions, logs them as an informational log entry and returns a failure result.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Lewee.Domain:

Package Downloads
Lewee.Application

Package Description

Lewee.Infrastructure.Data

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.23.0 162 6/14/2024
0.22.0 147 6/3/2024
0.21.0 295 9/24/2023
0.20.0-alpha.1 60 9/24/2023
0.17.0-alpha.1 78 9/23/2023
0.16.0-alpha.1 77 9/23/2023
0.10.0 201 9/19/2023
0.9.0 194 9/17/2023
0.8.0 230 9/3/2023
0.7.0 239 9/3/2023
0.6.0 222 9/1/2023
0.5.3 226 8/25/2023
0.1.0 283 3/28/2023