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" />
<PackageVersion Include="iman.Domain" Version="1.0.0" />
<PackageReference Include="iman.Domain" />
paket add iman.Domain --version 1.0.0
#r "nuget: iman.Domain, 1.0.0"
#:package iman.Domain@1.0.0
#addin nuget:?package=iman.Domain&version=1.0.0
#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
AggregateRootandEntitywith or without identity DomainEventfor raising business events in AggregatesRepositoryandServicecontracts for Domain modelsValueObjectcontract for implementing ValueObjects- Implementation of
Mediatorpattern - Support for
Command,QueryandEventand automatically matched them with their respective handlers DomainExceptioncontract 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. 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. |
| .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 | 403 | 9/12/2022 |