iman.Domain
1.0.0
dotnet add package iman.Domain --version 1.0.0
NuGet\Install-Package iman.Domain -Version 1.0.0
<PackageReference Include="iman.Domain" Version="1.0.0" />
paket add iman.Domain --version 1.0.0
#r "nuget: iman.Domain, 1.0.0"
// Install iman.Domain as a Cake Addin #addin nuget:?package=iman.Domain&version=1.0.0 // Install iman.Domain as a Cake Tool #tool nuget:?package=iman.Domain&version=1.0.0
Domain
iman.Domain is the library I've built for using in DDD and CQRS based projects using .NET
and C#
.
It consist of primary building blocks for common domain-driven applications such as AggregateRoot
and Entity
.
Features
- Support for
AggregateRoot
andEntity
with or without identity DomainEvent
for raising business events in AggregatesRepository
andService
contracts for Domain modelsValueObject
contract for implementing ValueObjects- Implementation of
Mediator
pattern - Support for
Command
,Query
andEvent
and automatically matched them with their respective handlers DomainException
contract to define business exceptions
How to use
For using Domain building blocks, you just need to reference this library and inherit from
the block you need to use in your application. But for using the Mediator, in order to
implement CQRS
pattern, you need to register iman.Domain
services in the default
.NET container, like this :
var services = new ServiceCollection();
services.AddDomainCore();
⚠️ If you use any other DI container other than Microsoft.Extensions.DependencyInjection
you must register iman.Domain
services yourself.
Examples
For now, you can see the samples of the library in Tests
project, I will
add some samples very soon 😉
Contribution
Feel free to fork this project, commit your codes and send pull requests.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Extensions.DependencyInjection (>= 5.0.2)
-
net5.0
- Microsoft.Extensions.DependencyInjection (>= 5.0.2)
-
net6.0
- Microsoft.Extensions.DependencyInjection (>= 5.0.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on iman.Domain:
Package | Downloads |
---|---|
Behlog.Core
Behlog is a Persian CMS to manage website/weblog contents. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 222 | 9/12/2022 |