Andrew.Domain.SharedKernel
1.0.0
See the version list below for details.
dotnet add package Andrew.Domain.SharedKernel --version 1.0.0
NuGet\Install-Package Andrew.Domain.SharedKernel -Version 1.0.0
<PackageReference Include="Andrew.Domain.SharedKernel" Version="1.0.0" />
<PackageVersion Include="Andrew.Domain.SharedKernel" Version="1.0.0" />
<PackageReference Include="Andrew.Domain.SharedKernel" />
paket add Andrew.Domain.SharedKernel --version 1.0.0
#r "nuget: Andrew.Domain.SharedKernel, 1.0.0"
#:package Andrew.Domain.SharedKernel@1.0.0
#addin nuget:?package=Andrew.Domain.SharedKernel&version=1.0.0
#tool nuget:?package=Andrew.Domain.SharedKernel&version=1.0.0
๐งฉ Domain.SharedKernel
Domain.SharedKernel is a clean, reusable shared library designed for Domain-Driven Design (DDD) applications. It encapsulates core domain logic, base entity definitions, ID generation, and abstraction contracts that can be shared across multiple bounded contexts or services.
๐ฆ What's Included
โ BaseEntity
A common abstract base class for domain entities, providing:
- Identity management
- Domain event support (e.g., integration with MediatR)
Useful for maintaining consistency and reducing duplication across aggregate roots and entities.
๐ HashHelper
A utility class for generating secure hashes
โ๏ธ Snowflake ID Generator
๐งฉ Core Abstractions
The library includes foundational interfaces to support clean architecture and separation of concerns:
IAggregateRoot
โ Marks an entity as an aggregate root.ICurrentUser
โ Provides user context abstraction (e.g.,UserId
,TenantId
).IUnitOfWork
โ Defines atomic transaction boundaries across repositories.
๐ Why Use a Shared Kernel?
Following the Shared Kernel pattern in DDD provides:
- ๐ Consistency in entity and contract definitions
- ๐งผ Purity by isolating domain logic from infrastructure
- ๐ Reusability across microservices or modules
- ๐ Clarity through clearly defined interfaces
๐ License
MIT License
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
- IdGen (>= 3.0.7)
- MediatR (>= 12.5.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.6)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Andrew.Domain.SharedKernel:
Package | Downloads |
---|---|
Andrew.Infrastructure.SharedKernel
Making it easier to use Infrastructure layer in DDD. Contains Unit of Work,AppHelper,Dbcontext,CurrentUser . |
GitHub repositories
This package is not used by any popular GitHub repositories.