Skip to content

ivanball/MMCA.Common

Repository files navigation

MMCA: Modular Monolith Clean Architecture

A .NET 10.0 framework for building modular monolith applications using DDD, Clean Architecture, and CQRS patterns.

Packages

Package Description
MMCA.Common.Shared Result pattern, value objects, error handling, DTOs
MMCA.Common.Domain DDD base entities, aggregate roots, domain events, specifications
MMCA.Common.Application CQRS handlers, decorator pipeline, module system, query service, IMessageBus
MMCA.Common.Infrastructure EF Core multi-DB, repositories, UoW, caching, JWT, JWKS, outbox, message bus, SignalR
MMCA.Common.API Base controllers, middleware, idempotency, error-to-HTTP mapping, JWKS endpoint
MMCA.Common.Grpc gRPC server defaults, Result→RpcException mapping, JWT-forwarding client interceptor, typed gRPC clients
MMCA.Common.UI Blazor shared components, auth state, MudBlazor theme
MMCA.Common.UI.Web Blazor Web (Server + WASM) UI host helpers built on MMCA.Common.UI
MMCA.Common.UI.Maui .NET MAUI UI head (the one MAUI-TFM package; built/packed by dedicated windows jobs, outside MMCA.Common.slnx, ADR-042)
MMCA.Common.Aspire Service defaults, OpenTelemetry, health checks, Polly resilience
MMCA.Common.Aspire.Hosting Aspire AppHost extensions: RabbitMQ broker, JWKS service discovery, gRPC project wiring
MMCA.Common.Testing Integration test base, JWT generator, fixtures
MMCA.Common.Testing.E2E Playwright E2E infrastructure: browser fixtures, Blazor nav helpers, Identity page objects
MMCA.Common.Testing.UI bUnit component-test base, MudBlazor provider harness, interaction helpers
MMCA.Common.Testing.Architecture IArchitectureMap + reusable NetArchTest rule library + abstract test bases (consumed by each repo's *.Architecture.Tests)

Requirements

  • .NET 10.0 with LangVersion: preview (uses C# extension types)

Quick Start

dotnet add package MMCA.Common.API

Each package transitively includes its dependencies (API → Infrastructure → Application → Domain → Shared).

Building a new app on MMCA.Common

New to the framework? Getting Started is the step-by-step guide for standing up a brand-new application: solution plumbing, a module vertical slice (domain → handler → endpoint → migration), the Aspire host, the architecture-fitness map, and a fully worked extraction of a module into its own microservice. It builds monolith-first, then shows the "extract later, without a rewrite" path.

Architecture & docs

  • Architecture scorecard: the framework graded against a 34-category review rubric, with every category score, the weighted health index, top strengths, and the honest gaps.
  • Architecture Decision Records: the accepted ADRs (001-022) explaining why the core cross-cutting patterns exist (outbox dual-dispatch, database-per-service, auth dual-fetch, soft-delete vs. erasure, gRPC extraction, and more). See ADRs/README.md for the current count/range.
  • Contributor guide: package layout, layer dependency rules, and how to extend the framework.

License

Apache License 2.0 - see LICENSE. The license includes an express patent grant from contributors to users.

About

MMCA — Modular Monolith Clean Architecture framework for .NET 10.0

Resources

License

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages