An ASP.NET Core modular monolith built with .NET 10 and Aspire.
The solution is organized as a modular monolith: the API hosts multiple feature modules in a single deployable application, while each module keeps its own endpoints, services, persistence, and public contracts.
- Reminder module: owns the todo/reminder workflow, EF Core persistence, and related API endpoints.
- Weather module: demonstrates a separate feature module that can call into shared/public module contracts.
- Cross-cutting platform services: Aspire hosts SQL Server, Redis, RabbitMQ, and Seq for local development; the API uses shared service defaults for logging, health checks, service discovery, and resilience.
Modules communicate through public abstractions and messaging rather than direct coupling to internal implementation details.
src/ModularMonolithTemplate.Api: the main HTTP APIsrc/ModularMonolithTemplate.AppHost: the Aspire app host for local orchestrationsrc/ModularMonolithTemplate.ServiceDefaults: shared hosting, observability, and resiliency defaultstests/: unit and integration test projects
- .NET 10 SDK
- Docker Desktop
Start the Aspire app host:
dotnet run --project src/ModularMonolithTemplate.AppHostThe app host starts the API and supporting services such as SQL Server, Redis, RabbitMQ, and Seq.
- Swagger UI:
https://localhost:7103/swagger - HTTP fallback:
http://localhost:5157/swagger
src/ModularMonolithTemplate.AppHost/appsettings.jsoncontains local Aspire parameterssrc/ModularMonolithTemplate.Api/appsettings.jsoncontains API logging and service settings- Secrets such as SQL passwords should be stored with user secrets for local development
Open ModularMonolithTemplate.sln in Visual Studio or Rider to work with the full solution.