ntxinh/AspNetCore-DDD
51.0
Weak · 21 September 2026
3.7k
lines of production code
C#
primary language
4
measurements over time
What this system is
This is a .NET 10-based web API application built on a Domain-Driven Design architecture, centered around managing customer data through a command and event-driven domain layer. It provides a versioned REST API for user authentication, customer management, and role administration, supported by a comprehensive infrastructure layer that handles database migrations, background jobs, and external integrations. The system is containerized and includes extensive unit and integration testing to ensure reliability.
How it got here
2019 — .NET 10 modernization and dependency centralization
3 changes.
The project underwent a significant modernization by upgrading to .NET 10 and implementing centralized dependency management. This period focused on updating core libraries, removing obsolete code, and establishing new configuration standards for consistent development practices.
2020–2022 — Domain-driven architecture and API scaffolding
9 changes.
This period focused on establishing the core domain-driven design (DDD) infrastructure, including customer management, authentication, and background job handling. The team also built out the ASP.NET Core API layer with versioned controllers, centralized dependency injection, and CLI tools for database migrations.
Features
API service initialization and configuration scaffolding
The API project now includes a complete bootstrap setup for the web host, including Serilog logging, ASP.NET Core dependency injection for database, authentication, HTTP clients, AutoMapper, MediatR, SignalR, and Quartz. It also configures API versioning, OpenAPI/Swagger, and health checks. Configuration is provided via appsettings files for Development, Staging, and Production environments, along with a new AddRequiredHeaderParameter OpenAPI filter and an AutoMapper setup class.
Src/DDD.Services.Api · medium confidence
API versioning and controller structure for v1 and v2 endpoints
The API controllers have been restructured to support explicit API versioning. A base \ApiController\ class was introduced to standardize response handling and error notification across all controllers. Specific controllers for Account, Customer, and Role management, as well as a new v2 Account controller, were added to the \Src/DDD.Services.Api/Controllers\ directory. These controllers are organized into versioned subdirectories (\v1\, \v2\) and utilize the \Asp.Versioning\ library to expose endpoints under versioned routes (e.g., \/api/v1/...\).
Src/DDD.Services.Api/Controllers · high confidence
Add CLI tool for database migrations using DbUp
A new command-line interface (CLI) tool has been added to the DDD.CLI.Migration project, enabling users to execute database schema changes via the command line. The tool leverages the DbUp library to apply SQL scripts (such as creating or dropping tables) against a target database. Users can run the tool to apply pending migrations, with console output indicating success or failure of the upgrade process.
Src/DDD.CLI.Migration · high confidence
Add customer domain logic and infrastructure providers
Introduces the core domain layer for managing customers, including command handlers (RegisterNewCustomerCommand, UpdateCustomerCommand, RemoveCustomerCommand) that enforce validation rules and publish domain events. The change also adds infrastructure providers for background jobs (Quartz CronProvider), real-time notifications (SignalR NotificationHub), and external integrations (HTTP, Mail, Webhooks, Office/Excel). Additionally, it includes supporting abstractions such as repositories, unit of work, and specification patterns to support the new customer functionality.
Src/DDD.Domain · high confidence
Added domain core abstractions and identity infrastructure scaffolding
The application now includes foundational domain core classes for commands, events, and notifications, alongside a complete ASP.NET Core Identity setup for user management. This introduces a new \ICustomerAppService\ interface and its \CustomerAppService\ implementation, enabling customer registration, updates, and history retrieval. The identity layer adds JWT authentication, email/SMS senders, and account management view models, providing the underlying infrastructure for user authentication and authorization.
(repo-wide) · high confidence
New startup extensions for authentication, database, and services
The API project now includes dedicated startup extension classes for configuring core infrastructure: authentication (JWT, Identity, and role/claim-based authorization policies), database contexts (SQLite for Auth, Application, and EventStore), error handling, hashing, health checks, HTTP client wiring, scheduled jobs (Quartz), SignalR, and Swagger. These extensions register the respective services and middleware, enabling the API to authenticate users, connect to databases, expose health endpoints, and support real-time and background processing.
Src/DDD.Services.Api/StartupExtensions · high confidence
Behavioural changes
1 commit (0 fixes) modifying Sql
A change to existing behaviour in Sql — 1 commit, 1 file.
Sql · low confidence · unverified
Centralized dependency injection configuration for domain and infrastructure services
The application's service registration has been consolidated into a single \NativeInjectorBootStrapper\ class. This change introduces explicit mappings for domain event handlers, command handlers, and third-party providers (HTTP, mail, webhooks, cron jobs, and office document generation) into the IoC container, ensuring all application and infrastructure dependencies are wired together in one location.
Src/DDD.Infra.CrossCutting.IoC · high confidence
Removed unused Class1 from Common
The default Class1 class has been removed from the Common namespace. This cleanup eliminates an empty placeholder class that was previously included in the project structure.
src/Common · medium confidence
Upgrade to .NET 10 and modernize project configuration
The project has been upgraded to target .NET 10.0, as reflected in the \Directory.Build.props\ and \global.json\ files. This upgrade is accompanied by the introduction of comprehensive project configuration files, including an \.editorconfig\ for consistent code formatting and style rules, a \StyleCop.ruleset\ for static code analysis, and a \DDD.slnx\ solution file that organizes the project structure. Additionally, a \Containerfile\ and \Dockerfile\ have been added to support containerized builds and runtime environments.
(repo-wide) · high confidence
Test coverage
Added unit and integration test coverage for CustomerAppService and WeatherForecastController
Added new test files to verify application and API behavior. The changes include unit tests for the CustomerAppService to ensure correct data mapping and repository interaction, as well as integration tests for the WeatherForecastController to validate endpoint responses and content types. A custom WebApplicationFactory helper was also added to support the integration test setup.
Tests · high confidence
Dependencies
Centralized dependency management with .NET 10 and updated libraries
The project now uses a central package management file (Directory.Packages.props) to define versions for all dependencies, including .NET 10 (10.0.0) and Entity Framework Core 10.0.0. Key library updates include AspNetCore.HealthChecks to version 9.0.0, AutoMapper to 14.0.0, MediatR to 12.2.0, and xunit to 2.9.3. The old Common.csproj targeting netcoreapp3.0 has been removed.
(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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 57 → 51 (-5.9)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 61 → 50 (-11.4)
- Architecture 83 → 83 (+0.0)
- Maturity 65 → 65 (+0.0)
- Readiness 68 → 62 (-5.9)
- Security 45 → 39 (-6.3)
- Domain Modelling 99 (new)
- Event-Driven 100 → 100 (+0.0)
Resolved (32)
- Bounded contexts not declared
- Duplicated block (17 lines × 2) (Src/DDD.Services.Api/Controllers/v1/AccountController.cs)
- Duplicated block (21 lines × 2) (Src/DDD.Services.Api/Controllers/v1/AccountController.cs)
- Duplicated block (24 lines × 2) (Src/DDD.Services.Api/Controllers/v1/AccountController.cs)
- Duplicated block (27 lines × 2) (Src/DDD.Services.Api/Controllers/v1/AccountController.cs)
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High CVE: System.Security.Cryptography.Xml 8.0.2
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 12 more
New (83)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- AnalyzerSeverityNone (.editorconfig)
- CommentedOutCode (.github/workflows/ci.yml)
- CommentedOutCode (.github/workflows/ci.yml)
- CommentedOutCode (.github/workflows/ci.yml)
- CommentedOutCode (Src/DDD.Domain/Providers/Crons/CronProvider.cs)
- …and 63 more
API surface
- Unchanged — 5 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
ntxinh/AspNetCore-DDD 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 29ca85df639ccd37b11e4a649340f22852aac9df — 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.