// the find
dotnet-architecture/eShopOnWeb
Sample ASP.NET Core 8.0 reference application, now community supported: https://github.com/NimblePros/eShopOnWeb
Microsoft's official reference application for ASP.NET Core 8.0 demonstrating clean architecture, DDD patterns, and the repository/specification pattern in a monolithic e-commerce context. Primarily useful as a learning resource paired with the free 'Architecting Modern Web Applications with ASP.NET Core and Azure' ebook. Active development has moved to NimblePros/eShopOnWeb and dotnet/eShop.
- Clean architecture layering is consistently applied—ApplicationCore has zero infrastructure dependencies, making the dependency inversion principle tangible rather than theoretical.
- Specification pattern implementation (Ardalis.Specification) gives a concrete, reusable alternative to leaking query logic into repositories, which most tutorials skip entirely.
- The project mixes Razor Pages, Blazor WASM, and a minimal API project in one solution, so you can compare approaches side by side rather than just reading about them.
- Dev container support and Docker Compose setup mean you can get a running environment without installing SQL Server or fighting with local tooling.
- This repo is effectively archived—Microsoft redirected active development to dotnet/eShop and NimblePros/eShopOnWeb. Adopters will inherit a codebase that won't receive upstream fixes or modernization.
- The domain model is thin for a DDD reference: aggregates have almost no business logic or invariants enforced, which misrepresents what DDD is actually for beyond folder structure and naming conventions.
- Test coverage is shallow—there are unit tests for core services but integration tests are sparse, and the Blazor admin section has essentially no test coverage despite being a meaningful chunk of the UI.
- The Blazor WASM admin panel requires running two separate processes with specific launch profiles, and the setup instructions are easy to miss, making the 'just run it' experience rougher than it should be for a reference app targeting beginners.