A modern, AOT-friendly DDD and Clean Architecture framework for .NET 10 and C# 14.
Abstractions · Domain · Application · Infrastructure · AspNetCore · MinimalApi · FastEndpoints · MultiTenancy · TestKit
LunaArch is a set of reusable libraries that implement Domain-Driven Design (DDD) patterns and Clean Architecture principles. It provides a solid foundation for building enterprise applications with proper separation of concerns, testability, and maintainability.
- Clean Architecture - Strict layer separation with proper dependency direction
- Domain-Driven Design - First-class support for Aggregates, Entities, Value Objects, Domain Events
- CQRS Pattern - Command/Query separation with a lightweight, AOT-friendly dispatcher
- Repository Pattern - Abstracted persistence with Specification pattern support
- Pipeline Behaviors - Cross-cutting concerns like logging and transactions
- AOT Compatible - Designed for Ahead-of-Time compilation with explicit registrations
- Multi-tenancy - Optional add-on for SaaS applications
- Test Kit - Fake implementations for easy unit testing
See Getting Started Guide for installation and setup instructions.
- Architecture Overview
- Layer Responsibilities
- Domain Primitives
- CQRS and Messaging
- Persistence
- Multi-tenancy
- Testing
| Package | Description |
|---|---|
LunaArch.Abstractions |
Core interfaces and primitives (zero dependencies) |
LunaArch.Domain |
Domain layer utilities (Specifications, Guards, Business Rules) |
LunaArch.Application |
Application layer (Exceptions, Pipeline Behaviors) |
LunaArch.Infrastructure |
Infrastructure implementations (EF Core, Dispatcher) |
LunaArch.AspNetCore |
ASP.NET Core integration (Middleware, Extensions) |
LunaArch.AspNetCore.MinimalApi |
Minimal API endpoint support |
LunaArch.AspNetCore.FastEndpoints |
FastEndpoints integration |
LunaArch.AspNetCore.MultiTenancy |
Multi-tenancy add-on |
LunaArch.TestKit |
Testing utilities and fake implementations |
- .NET 10.0
- C# 14
- Entity Framework Core 10.0 (for Infrastructure)
Apache License 2.0