Lewee.Domain
0.8.0
See the version list below for details.
dotnet add package Lewee.Domain --version 0.8.0
NuGet\Install-Package Lewee.Domain -Version 0.8.0
<PackageReference Include="Lewee.Domain" Version="0.8.0" />
paket add Lewee.Domain --version 0.8.0
#r "nuget: Lewee.Domain, 0.8.0"
// Install Lewee.Domain as a Cake Addin #addin nuget:?package=Lewee.Domain&version=0.8.0 // Install Lewee.Domain as a Cake Tool #tool nuget:?package=Lewee.Domain&version=0.8.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 | Versions 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. |
-
net7.0
- Lewee.Shared (>= 0.8.0)
- MediatR (>= 12.1.1)
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 |