Joaoaalves.DDD 0.0.1

dotnet add package Joaoaalves.DDD --version 0.0.1
                    
NuGet\Install-Package Joaoaalves.DDD -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Joaoaalves.DDD" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Joaoaalves.DDD" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Joaoaalves.DDD" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Joaoaalves.DDD --version 0.0.1
                    
#r "nuget: Joaoaalves.DDD, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Joaoaalves.DDD@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Joaoaalves.DDD&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Joaoaalves.DDD&version=0.0.1
                    
Install as a Cake Tool

Introduction

Joaoaalves.DDD is a lightweight .NET library that provides foundational building blocks for implementing Domain-Driven Design (DDD).

It focuses on modeling pure domain concerns, such as entities, value objects, aggregate roots, domain events, and business rules, without introducing infrastructure dependencies or architectural constraints.

It is not a framework. Joaoaalves.DDD does not enforce application structure, persistence strategies, or execution flows. Instead, it offers a minimal and explicit domain model foundation that can be composed with different architectural styles and infrastructure choices.

The primary goal of the library is to reduce boilerplate and inconsistency when implementing DDD patterns, while preserving full control over the domain model.

Joaoaalves.DDD is designed to support systems that adopt:

  • Domain-Driven Design (DDD)
  • Clean Architecture
  • Hexagonal / Ports & Adapters Architecture
  • Modular monoliths and microservices

Design Intent

Joaoaalves.DDD is intentionally small, explicit, and infrastructure-agnostic.

The library focuses exclusively on domain modeling primitives, leaving concerns such as persistence, messaging, transactions, and orchestration to other layers or packages.

Key design principles:

  • No runtime magic
  • No reflection-based domain behavior
  • No persistence assumptions
  • No coupling to application or infrastructure layers

Everything provided by Joaoaalves.DDD is meant to live safely inside the Domain layer.


Scope

Joaoaalves.DDD provides:

  • Base abstractions for Entities and Aggregate Roots
  • A robust implementation for Value Objects
  • Support for strongly-typed identifiers
  • A simple and explicit Domain Events model
  • A Business Rules mechanism for enforcing invariants

Out of scope by design:

  • Repositories
  • Persistence mapping
  • Transactions
  • Messaging infrastructure
  • Event dispatching
  • Application services

These concerns are expected to be handled by higher-level packages (such as CQRS or application layers) or external libraries.


Architectural Context

Joaoaalves.DDD fits naturally into architectures where:

  • The Domain layer is isolated
  • Business logic is protected from infrastructure concerns
  • Aggregates enforce their own invariants
  • Domain events represent meaningful business occurrences

It can be used as:

  • The domain foundation of a CQRS-based system
  • The core model of a modular monolith
  • The domain layer of an independent microservice

Joaoaalves.DDD makes no assumptions about how the domain is executed — only how it is modeled.


Package Overview

The package is organized around common DDD concepts:

  • Common

    • Entity base class
    • Aggregate root marker
    • Value object base class
    • Typed identifiers
  • Events

    • Domain event contracts
  • Rules

    • Business rule abstractions
    • Validation exception
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Joaoaalves.DDD:

Package Downloads
Joaoaalves.QuickCQRS.Abstractions

QuickCQRS Adds CQRS, Mediator

Joaoaalves.QuickCQRS.Persistence

QuickCQRS Adds CQRS, Mediator

Joaoaalves.QuickCQRS.Persistence.EntityFramework

QuickCQRS Adds CQRS, Mediator

Joaoaalves.QuickCQRS.Core

QuickCQRS Adds CQRS, Mediator

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.1 363 1/29/2026