DDD.NETCore 1.0.0-alpha.1

Suggested Alternatives

OpenDDD.NET

Additional Details

The framework has been renamed to 'OpenDDD.NET'.
Please use that nuget in your projects instead.

This is a prerelease version of DDD.NETCore.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package DDD.NETCore --version 1.0.0-alpha.1                
NuGet\Install-Package DDD.NETCore -Version 1.0.0-alpha.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="DDD.NETCore" Version="1.0.0-alpha.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DDD.NETCore --version 1.0.0-alpha.1                
#r "nuget: DDD.NETCore, 1.0.0-alpha.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.
// Install DDD.NETCore as a Cake Addin
#addin nuget:?package=DDD.NETCore&version=1.0.0-alpha.1&prerelease

// Install DDD.NETCore as a Cake Tool
#tool nuget:?package=DDD.NETCore&version=1.0.0-alpha.1&prerelease                

DDD.NETCore

This is a framework for doing DDD with .Net Core.

Star and/or follow the project to receive notifications when version 1.0.0 is released.

The aim is to provide a full framework to implement bounded contexts with .Net Core.

Design:

The design is based on these patterns:

  • DDD
  • Hexagonal Architecture
  • Near-infinite Scalability ("Entity" concept)
  • xUnit

Theory:

The following sources are recommended:

Supported versions:

  • .Net Core 7.0 (not tested)
  • .Net Core 6.0
  • .Net Core 5.0 (not tested)
  • .Net Core 3.1

Installation:

Install-Package DDD.NETCore

Example:

These files below are from the shipping domain example project.

// Program.cs

TODO
// Startup.cs

TODO
// Shipment.cs

TODO

Documentation:

Documentation is coming..

Contribution:

If you want to contribute to the code base, create a pull request on the develop branch.

Roadmap v1.0.0:

  • GitHub README
  • NuGet README
  • Visual Studio Project Template .NET 7.0
  • Visual Studio Project Template .NET 6.0
  • Visual Studio Project Template .NET 5.0
  • Visual Studio Project Template .NET 3.1
  • Start Context
  • Stop Context
  • Control
  • On-the-fly aggregate migration
  • Auto-code Generation from domain.yml File
  • Postgres Dead Letter Queue
  • Memory Dead Letter Queue
  • Dead Letter Queue
  • Handle Poisonous Messages
  • Re-publish Failed Events
  • Postgres Outbox
  • Memory Outbox
  • Outbox
  • Domain Event Publishing
  • Integration Event Publishing
  • Rabbit Event Adapter
  • Memory Event Adapter
  • PubSub
  • Auth Domain Service
  • Auth
  • Aggregate
  • Entity
  • Value Object
  • Domain Event
  • Integration Event
  • Repository
  • Building Blocks
  • Domain Service
  • Infrastructure Service
  • Application Service
  • Auto-Generated Swagger HTTP Adapter Documentation
  • HTTP Adapter
  • Email Adapter
  • Persistence Service
  • Postgres Repository
  • Memory Repository

Roadmap Future:

  • Full Sample Project
  • Quickstart Guide
  • Documentation
  • Azure Monitoring Adapter.
  • Monitoring
  • Task: Migrate all aggregate roots
  • Tasks
  • All-aggregates Migration Task
  • Periodic Jobs
  • Interval Jobs
  • One-off Jobs
  • Jobs
  • Merge old API versions into current swagger json files.
  • CLI Operation: Create action/aggregate/event/...
  • CLI Operation: Migrate
  • CLI Operation: Create Migration
  • CLI Operation: Increment Domain Model Version
  • Test Framework
  • Tests
  • Admin Dashboard
  • Admin Tool: Inspect Dead Event
  • Admin Tool: Republish Dead Event
  • Administration

Release Notes:

1.0.0-alpha.1 - 2022-10-02

  • New v1.0.0 alpha release.

0.9.0-alpha7 - 2022-07-31

  • First alpha test release on nuget.org.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.