Skip to content

Commit b7366b2

Browse files
committed
Update docs with new description of project.
1 parent bea8181 commit b7366b2

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

docs/index.rst

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,45 @@
55
OpenDDD.NET
66
===========
77

8-
OpenDDD.NET is an open-source framework for domain-driven design (DDD) development using C# and ASP.NET Core. It provides a set of powerful tools and abstractions to help developers build scalable, maintainable, and testable applications following the principles of DDD.
8+
**OpenDDD.NET** is an opinionated framework for building Domain-Driven Design (DDD) applications on ASP.NET Core.
9+
10+
It lets you focus on modeling your aggregates, domain services, and domain events — while the framework handles persistence, messaging, and transactional consistency.
11+
12+
> **Focus on your domain model. Forget the plumbing.**
13+
14+
---
915

1016
Purpose
1117
-------
1218

13-
The purpose of OpenDDD.NET is to simplify the adoption of DDD principles by offering ready-to-use building blocks, enabling developers to focus on business logic rather than infrastructure concerns.
19+
OpenDDD.NET exists to help developers adopt DDD in real-world .NET applications without spending time wiring infrastructure.
20+
21+
It provides all the essential building blocks — aggregates, repositories, domain services, event handling, persistence, and messaging — with drop-in setup, automatic registration, and a convention-over-configuration approach.
22+
23+
---
1424

1525
Key Features
1626
------------
1727

18-
- **Aggregates**: Define domain aggregates with clear boundaries and encapsulate domain logic within them.
19-
- **Entities and Value Objects**: Create entities and value objects to represent domain concepts and ensure strong type safety.
20-
- **Repositories**: Abstract away data access and enable persistence of domain objects.
21-
- **Domain Events**: Facilitate communication between domain objects while maintaining loose coupling.
22-
- **Integration Events**: Enable communication between bounded contexts in distributed systems.
23-
- **Event Listeners**: Manage event listeners to handle domain and integration events for scalable, event-driven architectures.
24-
- **Domain Services**: Encapsulate domain-specific operations that do not naturally belong to an entity or value object.
25-
- **Application Services**: Use Action classes to coordinate the execution of domain logic in response to commands.
26-
- **Infrastructure Services**: Provide implementations for technical concerns such as logging, email, or external integrations.
27-
- **Transactional Outbox**: Ensure event consistency by persisting and publishing events as part of database transactions.
28+
- **Aggregate Roots, Entities, Value Objects** — Built-in base classes for modeling your domain.
29+
- **Domain Services** — For domain logic that doesn’t naturally fit inside an aggregate.
30+
- **Domain Events & Integration Events** — Publish events inside and outside the boundary of your service.
31+
- **Repository Abstractions** — Works with PostgreSQL, SQL Server, SQLite, EF Core, and InMemory.
32+
- **Messaging Abstraction** — Supports RabbitMQ, Azure Service Bus, Kafka, and InMemory.
33+
- **Transactional Outbox** — Guarantees reliable and atomic event publishing.
34+
- **Automatic Registration** — The framework automatically registers repositories, domain services, actions, event listeners, and infrastructure services based on conventions.
35+
- **Drop-in Setup** — Configure once in `Program.cs` and `appsettings.json`, and you're ready to go.
36+
- **Opinionated but Flexible** — Use convention-over-configuration or break out and compose manually.
37+
38+
---
39+
40+
Source Code
41+
-----------
42+
43+
The source code is available on GitHub:
44+
`https://github.com/runemalm/OpenDDD.NET <https://github.com/runemalm/OpenDDD.NET>`_
45+
46+
---
2847

2948
.. userguide-docs:
3049
.. toctree::

0 commit comments

Comments
 (0)