Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Domain-Driven Design
  3. DDD-starter-dotnet

DDD-starter-dotnet

MITC#

A sample implementation and comparison of various DDD approaches in .NET to quickly start domain-driven design projects.

GitHubGitHub
405 stars32 forks0 contributors

What is DDD-starter-dotnet?

DDD Starter for .NET is a reference implementation and educational resource that demonstrates various approaches to building domain-driven design applications in the .NET ecosystem. It provides sample code, comparisons, and guidelines for implementing DDD patterns like Aggregates, Value Objects, Hexagonal Architecture, CQRS, and Event Sourcing. The project helps developers make informed architectural decisions and quickly bootstrap DDD-oriented projects.

Target Audience

.NET developers and architects who are implementing or learning domain-driven design patterns and need practical examples and guidance on architectural choices. Teams starting new DDD projects who want to avoid over-engineering while applying appropriate patterns.

Value Proposition

It offers a unique comparison of multiple implementation styles for the same requirements, helping developers understand trade-offs between different DDD approaches. Unlike single-pattern tutorials, it provides a holistic view of how various DDD techniques work together in real-world scenarios.

Overview

Sample implementation and comparison of various approaches to building DDD applications. Useful as a baseline to quickly start a DDD dot net project.

Use Cases

Best For

  • Learning DDD implementation patterns in .NET
  • Comparing different persistence strategies for aggregates
  • Understanding when to use Hexagonal Architecture vs simpler approaches
  • Starting new DDD projects with proven patterns
  • Implementing event publishing with outbox patterns
  • Combining DDD deep models with CRUD operations in the same bounded context

Not Ideal For

  • Teams building simple CRUD applications without complex business logic or domain rules
  • Developers seeking a production-ready, opinionated framework with minimal configuration and setup
  • Projects requiring comprehensive, self-contained documentation without reliance on external blog posts

Pros & Cons

Pros

Comparative Implementation Styles

Shows multiple approaches to implementing DDD patterns like Aggregates with Entity Framework, raw SQL, Marten, and Event Sourcing, as detailed in the Persistence of Aggregates section, helping developers evaluate trade-offs.

Practical Code Examples

Provides ready-made solutions for event publishing patterns, such as transactional outbox and post-commit, with concrete classes like TransactionalOutbox and NonTransactionalOutbox, facilitating real-world adoption.

Modular and Clear Structure

Uses screaming architecture principles to organize solution folders by business domains and architectural layers, as explained in the Screaming architecture section, enhancing code readability and maintainability.

Testing Guidance

Includes examples of testing domain models (e.g., Money Value Object tests) and integration tests for repositories, offering practical insights into DDD testing strategies.

Cons

Incomplete Domain Modeling

The README explicitly states it is 'not an illustration of domain exploration or modeling process,' focusing solely on implementation patterns without teaching DDD fundamentals, which may leave beginners confused.

External Documentation Dependence

Key explanations are linked to external blog posts, some of which are in Polish (marked [PL]), making it less accessible for English-only developers and fragmenting the learning experience.

No Bootstrapping Tool

While it offers code snippets and comparisons, it lacks a ready-to-use template or CLI tool for quickly scaffolding projects, requiring manual adaptation and increasing initial setup time.

Frequently Asked Questions

Quick Stats

Stars405
Forks32
Contributors0
Open Issues0
Last commit1 year ago
CreatedSince 2019

Tags

#event-driven#software-architecture#cqrs#event-sourcing#domain-driven-design#csharp#ddd#dotnet#ddd-example#bdd#hexagonal-architecture#value-objects#ddd-patterns

Built With

E
Entity Framework
M
Marten
S
SQL
.
.NET
C
C++

Included in

Domain-Driven Design12.2k
Auto-fetched 10 hours ago

Related Projects

Modular MonolithModular Monolith

Full Modular Monolith application with Domain-Driven Design approach.

Stars14,005
Forks2,189
Last commit2 years ago
eShopOnWebeShopOnWeb

Sample ASP.NET Core 8.0 reference application, now community supported: https://github.com/NimblePros/eShopOnWeb

Stars10,686
Forks6,028
Last commit1 year ago
EquinoxProjectEquinoxProject

Web Application ASP.NET 9 using Clean Architecture, DDD, CQRS, Event Sourcing and a lot of good practices

Stars6,777
Forks1,647
Last commit4 months ago
Event Sourcing .NETEvent Sourcing .NET

Examples and Tutorials of Event Sourcing in .NET

Stars3,681
Forks545
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub