JordiAragon.SharedKernel.Domain
2.2.0
See the version list below for details.
dotnet add package JordiAragon.SharedKernel.Domain --version 2.2.0
NuGet\Install-Package JordiAragon.SharedKernel.Domain -Version 2.2.0
<PackageReference Include="JordiAragon.SharedKernel.Domain" Version="2.2.0" />
paket add JordiAragon.SharedKernel.Domain --version 2.2.0
#r "nuget: JordiAragon.SharedKernel.Domain, 2.2.0"
// Install JordiAragon.SharedKernel.Domain as a Cake Addin #addin nuget:?package=JordiAragon.SharedKernel.Domain&version=2.2.0 // Install JordiAragon.SharedKernel.Domain as a Cake Tool #tool nuget:?package=JordiAragon.SharedKernel.Domain&version=2.2.0
What is the SharedKernel Project?
The goal of this project is create the building blocks to follow DDD principles and Clean Architecture in .NET
Nugets ready to use:
Dependency graph:
How to debug:
- You will need the latest Visual Studio 2022 and the latest .NET Core SDK (at least .NET 7 SDK)
- All the projects library are contained in JordiAragon.SharedKernel.sln solution file.
Used libraries:
- MediatR
- AutoMapper
- Autofac
- MassTransit
- FastEndpoints
- Ardalis.Result
- Ardalis.Specification
- Ardalis.SmartEnums
- Ardalis.GuardClauses
- FluentValidator
- Serilog
- Quartz
- Refit
- EasyCaching
- Volo.Abp.Guids Generator
- StyleCop & SonarAnalyzer
Brief explanation per project (Pending to complete)
SharedKernel and Contracts
- Dependency Injection. Allow auto register services using markup interfaces.
Domain and Contracts
- Common contracts and base implementations to flow DDD principles like: DomainEvents, ApplicationEvents, ValueObjects, Entities, Repository, BusinessRulesValidations and other DDD building blocks.
Application and Contracts
- Application common contracts and base implementation for EventBus, UnitOfWork and CQRS...
- Common MediatR pipelines implementation
- IntegrationMessages contacts and base implementation to be used in EventBus
- Common EventBus implementation using MassTransit
Infrastructure and Contracts
- EntityFramework base implementation to allow auditing and outbox to dispatch domain events notifications.
- BaseCachedRepository is done using ICacheService abstraction.
- MassTransitEventBus base implementation.
Presentation and Contracts
- WebApi building blocks. Like BaseApiController, ExceptionMiddleware, CurrentUserService and ResponseBuilder for ProblemDetails.
Testing
Resources and Inspiration
- <a href="https://github.com/ardalis/CleanArchitecture" target="_blank">Ardalis: Clean Architecture</a>
- <a href="https://www.youtube.com/watch?v=SUiWfhAhgQw" target="_blank">Jimmy Bogard: Vertical Slice Architecture</a>
- <a href="https://github.com/jasontaylordev/CleanArchitecture" target="_blank">Jason Taylor: Clean Architecture</a>
- <a href="https://www.oreilly.com/library/view/implementing-domain-driven-design/9780133039900/" target="_blank">Vaughn Vernon: Implementing Domain-Driven Design (book)</a>
- <a href="https://kalele.io/books/ddd-destilado/" target="_blank">Vaughn Vernon: Domain-Driven Design Destilado (book)</a>
- <a href="https://www.amazon.com/Hands-Domain-Driven-Design-NET-ebook/dp/B07C5WSR9B" target="_blank">Alexey Zimarev: Hands-on Domain-Driven Design (book)</a>
- <a href="https://github.com/dotnet-architecture/eShopOnContainers" target="_blank">Microsoft eShopOnContainers</a>
- <a href="https://github.com/dotnet-architecture/eShopOnWeb" target="_blank">Microsoft eShopOnWeb</a>
- <a href="https://github.com/kgrzybek/sample-dotnet-core-cqrs-api" target="_blank">Kamil Grzybek: Sample .NET Core REST API CQRS</a>
- <a href="https://github.com/kgrzybek/modular-monolith-with-ddd" target="_blank">Kamil Grzybek: Modular Monolith With DDD</a>
- <a href="https://www.youtube.com/@CodeOpinion" target="_blank">CodeOpinion: Youtube Channel</a>
- <a href="https://www.youtube.com/@amantinband" target="_blank">Amichai Mantinband: Youtube Channel</a>
- <a href="https://www.youtube.com/@MilanJovanovicTech" target="_blank">Milan Jovanović: Youtube Channel</a>
About:
The SharedKernel Project was developed by <a href="https://www.linkedin.com/in/jordiaragonzaragoza/" target="_blank">Jordi Aragón Zaragoza</a>
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
- Ardalis.GuardClauses (>= 4.1.1)
- Ardalis.SmartEnum (>= 7.0.0)
- JordiAragon.SharedKernel (>= 2.2.0)
- JordiAragon.SharedKernel.Domain.Contracts (>= 2.2.0)
- MediatR (>= 12.1.1)
- Microsoft.Extensions.Logging (>= 7.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on JordiAragon.SharedKernel.Domain:
Package | Downloads |
---|---|
JordiAragon.SharedKernel.Infrastructure
A simple package to implement the building blocks to follow DDD principles and Clean Architecture. |
|
JordiAragon.SharedKernel.Application
A simple package to implement the building blocks to follow DDD principles and Clean Architecture. |
|
JordiAragon.SharedKernel.Infrastructure.EntityFramework
A simple package to implement the building blocks to follow DDD principles and Clean Architecture. |
|
JordiAragon.SharedKernel.Infrastructure.EventStore
A simple package to implement the building blocks to follow DDD principles and Clean Architecture. |
GitHub repositories
This package is not used by any popular GitHub repositories.