Lewee.Domain
0.23.0
dotnet add package Lewee.Domain --version 0.23.0
NuGet\Install-Package Lewee.Domain -Version 0.23.0
<PackageReference Include="Lewee.Domain" Version="0.23.0" />
<PackageVersion Include="Lewee.Domain" Version="0.23.0" />
<PackageReference Include="Lewee.Domain" />
paket add Lewee.Domain --version 0.23.0
#r "nuget: Lewee.Domain, 0.23.0"
#:package Lewee.Domain@0.23.0
#addin nuget:?package=Lewee.Domain&version=0.23.0
#tool nuget:?package=Lewee.Domain&version=0.23.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:
CreatedByCreatedAtUtcModifiedByModifiedAtUtc
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 | 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 was computed. 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 was computed. 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. |
-
net8.0
- Ardalis.Specification (>= 8.0.0)
- Lewee.Shared (>= 0.23.0)
- MediatR (>= 12.3.0)
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 | 344 | 6/14/2024 |
| 0.22.0 | 311 | 6/3/2024 |
| 0.21.0 | 432 | 9/24/2023 |
| 0.20.0-alpha.1 | 112 | 9/24/2023 |
| 0.17.0-alpha.1 | 148 | 9/23/2023 |
| 0.16.0-alpha.1 | 143 | 9/23/2023 |
| 0.10.0 | 343 | 9/19/2023 |
| 0.9.0 | 357 | 9/17/2023 |
| 0.8.0 | 375 | 9/3/2023 |
| 0.7.0 | 403 | 9/3/2023 |
| 0.6.0 | 378 | 9/1/2023 |
| 0.5.3 | 377 | 8/25/2023 |
| 0.1.0 | 471 | 3/28/2023 |