aspnetrun/run-aspnetcore-microservices
31.7
Weak · 21 September 2026
2.8k
lines of production code
C#
primary language
4
measurements over time
What this system is
This system is a .NET 8-based e-commerce microservices architecture designed for local development and containerized deployment. It comprises distinct services for catalog management, shopping cart operations, and order processing, all orchestrated via Docker Compose. The application provides a web interface for shopping and checkout, while backend services handle data persistence and business logic through gRPC and message-based communication.
Features
Add .NET 8-based Dockerfiles and shopping web application pages
The YarpApiGateway and Shopping.Web applications now include Dockerfiles that build against the .NET 8.0 SDK and runtime images, enabling containerized deployment for these services. Additionally, the Shopping.Web web app introduces new Razor Pages for the shopping experience, including a cart, checkout, order history, and product listing pages, along with the corresponding C\# code-behind files and data models.
src/ApiGateways, src/BuildingBlocks, src/WebApps · high confidence
Add basket and catalog services with .NET 8 and gRPC discount integration
The Basket and Catalog services are introduced, each built on .NET 8 and containerized via new Dockerfiles. The Basket service exposes endpoints to store, retrieve, and delete shopping carts, and to process checkouts by publishing events via MassTransit. The Catalog service provides endpoints to create, update, delete, and query products, with initial seed data. The Basket service integrates with a gRPC-based Discount service to calculate final prices before persisting cart data.
src/Services · high confidence
Added Docker Compose configuration and Postman collection for local development
Developers can now run the entire eShop microservices architecture locally using Docker Compose, with all services (Catalog, Basket, Discount, Ordering, YARP API Gateway, and Shopping Web) defined in new \docker-compose.yml\ and \docker-compose.override.yml\ files. A \.dockerignore\ file has been added to optimize the build context, and a \launchSettings.json\ file configures Visual Studio to launch all services via Docker Compose. Additionally, a Postman collection (\EShopMicroservices.postman\_collection.json\) is provided to test the Catalog and Basket APIs.
src · high confidence
Dependencies
Upgrade to .NET 8 across all services
All .NET project files in the repository have been updated to target .NET 8.0 (net8.0). This upgrade brings the application to the latest long-term support version of the .NET platform, which may include performance improvements, new language features, and updated base class libraries. Developers and operators should ensure their build environments support .NET 8.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 35 → 32 (-3.0)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 78 → 77 (-1.0)
- Architecture 82 → 82 (+0.0)
- Maturity 58 → 50 (-8.3)
- Readiness 18 → 18 (+0.1)
- Security 41 → 29 (-11.1)
- Domain Modelling 68 → 84 (+16.6)
- Event-Driven 100 → 100 (+0.0)
- Accessibility 42 → 42 (-0.7)
Resolved (12)
- Bounded contexts not declared
- Duplicated block (14 lines × 2) (src/Services/Ordering/Ordering.Infrastructure/Data/Configurations/OrderConfiguration.cs)
- High CVE: System.Text.Json 8.0.0
- High CVE: System.Text.Json 8.0.0
- Low CVE: Microsoft.Identity.Client 4.56.0
- Medium CVE: Azure.Identity 1.10.3
- Medium CVE: Azure.Identity 1.10.3
- No exposed public API
- The README mentions Docker Compose but does not show how to run the project (e.g. build/run commands) from the repository root. (README.md)
- XML-doc coverage: YarpApiGateway (src/ApiGateways/YarpApiGateway/YarpApiGateway.csproj)
- redundant comment (src/Services/Ordering/Ordering.Application/Orders/EventHandlers/Integration/BasketCheckoutEventHandler.cs)
- single-maintainer — knowledge-concentration (bus factor) risk
New (38)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (14 lines × 2) (src/Services/Ordering/Ordering.Infrastructure/Data/Configurations/OrderConfiguration.cs)
- Duplicated block (19 lines × 3) (src/WebApps/Shopping.Web/Pages/Index.cshtml.cs)
- Duplicated block (20 lines × 3) (src/BuildingBlocks/BuildingBlocks.Messaging/Events/BasketCheckoutEvent.cs)
- Duplicated block (6 lines × 2) (src/Services/Basket/Basket.API/Models/ShoppingCartItem.cs)
- Duplicated block (7 lines × 2) (src/BuildingBlocks/BuildingBlocks/Pagination/PaginatedResult.cs)
- Duplicated block (7 lines × 2) (src/Services/Catalog/Catalog.API/Models/Product.cs)
- High CVE: System.Text.Json 8.0.0
- High IaC: WD-COMPOSE-0002 (src/docker-compose.yml)
- High IaC: WD-COMPOSE-0002 (src/docker-compose.yml)
- High IaC: WD-COMPOSE-0002 (src/docker-compose.yml)
- High IaC: WD-COMPOSE-0002 (src/docker-compose.yml)
- Medium CVE: Azure.Identity 1.10.3
- Medium IaC: WD-COMPOSE-0002 (src/docker-compose.yml)
- Medium IaC: WD-DOCKER-0003 (src/ApiGateways/YarpApiGateway/Dockerfile)
- Medium IaC: WD-DOCKER-0003 (src/ApiGateways/YarpApiGateway/Dockerfile)
- Medium IaC: WD-DOCKER-0003 (src/Services/Basket/Basket.API/Dockerfile)
- Medium IaC: WD-DOCKER-0003 (src/Services/Basket/Basket.API/Dockerfile)
- …and 18 more
API surface
- Unchanged — 17 HTTP endpoints
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
aspnetrun/run-aspnetcore-microservices was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit e3549abf009c71e8c2550f292f3a8edf110550a1 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.