finds.dev← search

// the find

ardalis/CleanArchitecture

★ 18,246 · C# · MIT · updated May 2026

Clean Architecture Solution Template: A proven Clean Architecture Template for ASP.NET Core 10

A dotnet CLI template for ASP.NET Core apps following Clean Architecture (Core/UseCases/Infrastructure/Web layers), maintained by Steve Smith. Ships in two flavors: a full multi-project template and a flatter single-project minimal variant. Primarily targets .NET developers who want a pre-wired starting point with DDD, MediatR, Ardalis.Specification, and EF Core already integrated.

- Two distinct templates (full layered vs. minimal vertical-slice) let teams choose their tradeoff between strict layer separation and simplicity up front.

- Vogen strongly-typed IDs, Ardalis.Specification, and EF Core interceptor-based domain event dispatch are all wired together correctly—details that teams routinely get wrong on their own.

- Parallel test execution support and Testcontainers integration are called out explicitly with dedicated docs, which is more production-ready than most architecture templates.

- Directory.Packages.props for central package management keeps dependency versions consistent across projects out of the box.

- Heavy opinionated dependency stack (MediatR, Ardalis.Specification, Vogen, MimeKit, Aspire) means you're either fully buying in or spending real time ripping things out—not a neutral scaffold.

- The MinimalClean variant collapses Domain, Infrastructure, and Web into a single project, which undermines the dependency rule it claims to demonstrate and will confuse teams trying to learn the pattern.

- Authentication and authorization are not included at all; every real app needs them and teams will bolt something on inconsistently without guidance.

- README version metadata is inconsistent—says 'main branch is .NET 9' but the description says 'ASP.NET Core 10', and the NuGet versioning scheme (package v10.x = .NET 9) is confusing without reading carefully.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →