DDD.NETCore
1.0.0-alpha.1
The framework has been renamed to 'OpenDDD.NET'.
Please use that nuget in your projects instead.
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
<PackageReference Include="DDD.NETCore" Version="1.0.0-alpha.1" />
paket add DDD.NETCore --version 1.0.0-alpha.1
#r "nuget: DDD.NETCore, 1.0.0-alpha.1"
// 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:
- Domain-Driven Design: Tackling Complexity in the Heart of Software - Eric Evans
- Implementing Domain-Driven Design - Vaughn Vernon
- Hexagonal Architecture - Alistair Cockburn
- Life Beyond Distributed Transactions - Pat Helland
- xUnit - Wikipedia
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 | Versions 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. |
-
.NETCoreApp 3.1
- Azure.Messaging.ServiceBus (>= 7.5.1)
- CompareNETObjects (>= 4.77.0)
- dotenv.net (>= 3.1.1)
- Microsoft.ApplicationInsights (>= 2.20.0)
- Microsoft.AspNet.WebApi.WebHost (>= 5.2.8)
- Microsoft.AspNetCore.Cors (>= 2.2.0)
- Microsoft.AspNetCore.Diagnostics (>= 2.2.0)
- Microsoft.AspNetCore.Hosting (>= 2.2.7)
- Microsoft.AspNetCore.Http (>= 2.2.2)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
- Microsoft.AspNetCore.TestHost (>= 3.1.26)
- Microsoft.Bcl.HashCode (>= 1.1.1)
- Microsoft.EntityFrameworkCore (>= 3.1.26)
- Microsoft.Extensions.DependencyInjection (>= 6.0.0)
- Microsoft.Extensions.Http (>= 6.0.0)
- Microsoft.Extensions.Logging (>= 6.0.0)
- Microsoft.Extensions.Logging.ApplicationInsights (>= 2.20.0)
- Microsoft.Extensions.Logging.Console (>= 6.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 6.0.0)
- Newtonsoft.Json (>= 13.0.1)
- Npgsql (>= 6.0.4)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 3.1.18)
- NSwag.AspNetCore (>= 13.15.10)
- RabbitMQ.Client (>= 6.2.2)
- System.Data.SqlClient (>= 4.8.3)
- System.IdentityModel.Tokens.Jwt (>= 6.17.0)
- WireMock.Net (>= 1.5.0)
- xunit (>= 2.4.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
1.0.0-alpha.10 | 132 | 4/24/2023 | |
1.0.0-alpha.9 | 116 | 4/19/2023 | |
1.0.0-alpha.8 | 122 | 4/11/2023 | |
1.0.0-alpha.7 | 149 | 1/1/2023 | |
1.0.0-alpha.6 | 141 | 1/1/2023 | |
1.0.0-alpha.5 | 146 | 12/26/2022 | |
1.0.0-alpha.4 | 140 | 12/10/2022 | |
1.0.0-alpha.3 | 134 | 11/20/2022 | |
1.0.0-alpha.2 | 138 | 10/5/2022 | |
1.0.0-alpha.1 | 164 | 10/2/2022 | |
0.9.1-alpha.3 | 231 | 8/17/2022 | |
0.9.0-alpha8 | 227 | 8/1/2022 | |
0.9.0-alpha7 | 223 | 7/31/2022 | |
0.9.0-alpha10 | 218 | 8/14/2022 |