Skip to content
CAI
Software that uses CAICheck a score

LeftTwixWand/eShopOnWinUI

50.5

Adequate · 21 September 2026

3.1k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a WinUI 3 desktop application built on .NET 9 that manages inventory and order processing for products and warehouses. It implements a clean architecture with CQRS, MVVM, and DDD patterns to handle domain logic, persistence via SQLite, and UI presentation. The system includes automated testing and CI/CD pipelines to ensure code quality and consistent development standards.

Features

Introduces CQRS, MVVM, and DDD foundational patterns

The application layer now supports a CQRS architecture with base classes and interfaces for commands, queries, and requests, alongside a validation pre-processor. The MVVM pattern is supported by new generic ViewModel base classes for lists and items, as well as message types for item lifecycle events. Additionally, the domain layer introduces foundational DDD patterns, including an entity base class with domain event tracking, business rule validation, and unit of work abstractions.

src/eShopOnWinUI.Application · high confidence

Introduces infrastructure layer with app lifecycle, navigation, and dependency injection

The application now includes an infrastructure layer that manages the app's startup, window, and navigation. This includes an App class that bootstraps the Autofac container and configures MediatR with logging, validation, and unit-of-work decorators. It also introduces services for activation, theme selection, and navigation (including a PageService mapping ViewModels to Views), as well as domain event dispatching and unit-of-work management.

src/eShopOnWinUI.Infrastructure · high confidence

Behavioural changes

Domain layer reorganized into new namespace

The eShopOnWinUI.Domain project has been reorganized into the new \eShopOnWinUI.Domain\ namespace. This change updates the namespace declarations for all domain entities, value objects, and business rules, including the Country, Customer, Order, Product, Shipment, and Warehouse aggregates and their associated validation rules.

eShopOnWinUI.Domain · medium confidence

Establishes coding standards and CI pipeline for the WinUI 3 application

The project now enforces consistent code formatting and style through a new .editorconfig file that configures C\# 8+ features, naming conventions, and StyleCop rules. Additionally, a new Azure Pipelines configuration (azure-pipelines.yml) has been added to automate building and testing the solution on each push to the master branch.

(repo-wide) · high confidence

Persistence layer restructured with new namespace and resource bindings

The eShopOnWinUI.Persistence module has been reorganized into the eShopOnWinUI.Persistence namespace, introducing a new Autofac module for database context configuration and entity type mappings for Products and Warehouses. The DatabaseContext now explicitly registers SQLite as the provider and applies configurations from the assembly. Additionally, the layer now includes repository implementations for Orders, Products, and Warehouses, with the ProductsRepository providing an in-memory fallback using embedded image resources (Lamp1-Lamp8) for product data.

src/eShopOnWinUI.Persistence · high confidence

Refactored presentation layer with new controls, converters, and views

The presentation layer was restructured to improve UI consistency and maintainability. New reusable command bar controls (MultipleItemsCommandBar, SingleItemBar) were added to standardize action buttons for list and single-item views. A suite of value converters (EnumToBoolean, Image, SelectionModeToBoolean, ValueConverterGroup) and their XAML registrations were introduced to support data binding. Navigation and header behaviors were refactored, including a new NavigationViewHeaderBehavior and TitleBarHelper for custom title bar styling. Additionally, placeholder views (ActivityLog, Customers, Dashboard, Orders, Product) were created to align with the new namespace structure and ViewModel integration.

src/eShopOnWinUI.Presentation · medium confidence

Test coverage

Added unit tests for product and warehouse domain features; Added unit tests for warehouse creation.

Dependencies

Upgrade to .NET 9 and centralize package management

The project has been upgraded to target .NET 9, updating the target framework in all project files to net9.0 or net9.0-windows10.0.26100.0. Additionally, the solution now uses Central Package Management (via Directory.Packages.props) to manage all NuGet package versions in a single location, including updates to key dependencies like Microsoft.EntityFrameworkCore.Sqlite 9.0.7, Autofac 8.3.0, and CommunityToolkit 8.4.0.

(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 49 → 51 (+1.6)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 79 → 79 (-0.2)
  • Architecture 91 → 91 (+0.0)
  • Maturity 55 → 55 (+0.0)
  • Readiness 54 → 57 (+3.0)
  • Security 32 → 34 (+2.1)
  • Domain Modelling 87 → 89 (+2.0)
  • Event-Driven 100 → 100 (+0.0)

Resolved (9)

  • Build did not complete in the analyzer
  • Duplicated block (8 lines × 2) (src/eShopOnWinUI.Presentation/Helpers/TitleBarHelper.cs)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • Tests co-located / outside the solution
  • dormant codebase — no living knowledge left to concentrate
  • redundant comment (src/eShopOnWinUI.Persistence/Repositories/WarehousesRepository.cs)

New (18)

  • CommentedOutCode (src/eShopOnWinUI.Application/ViewModels/Settings/SettingsViewModel.cs)
  • CommentedOutCode (src/eShopOnWinUI.Persistence/Configurations/WarehouseEntityTypeConfiguration.cs)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (8–14 lines × 2) (src/eShopOnWinUI.Presentation/Helpers/TitleBarHelper.cs)
  • End-of-life runtime: .NET net9.0
  • Grammatical error in rule names: 'MustContains' should be 'MustContain'.
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Inconsistent grammar in rule names: 'CountryISOMustBeInUppercase' uses 'MustBe', 'CountryISOMustContainsOnlyLetters' uses 'MustContains' (grammatically incorrect, should be 'MustContain'), 'CountryISOMustHaveTwoSigns' uses 'MustHave'. The verb form is inconsistent ('Be' vs 'Contains' vs 'Have').
  • Inconsistent naming convention for country constants: some use standard English names (Australia, Japan, India), while others use concatenated multi-word names without separators (SouthAfrica, NewZealand, UnitedArabEmirates, UnitedStates). This creates visual inconsistency and potential parsing ambiguity.
  • Inconsistent naming for rule validation properties: some use 'Message' (e.g., CustomerFirstNameMustNotBeEmpty.Message), others use 'BrokenWhen' (e.g., ShipmentPostalCodeMustNotBeEmpty.BrokenWhen). This suggests two different patterns for exposing rule failure information.
  • Medium: security finding (details withheld)
  • Test project verifies nothing: Inventory.Application.UnitTests (tests/Inventory.Application.UnitTests/UnitTest1.cs)
  • Typo in method name: 'AddNavigarionParameter' is misspelled (missing 'i' in Navigation).
  • Workflow token permissions not restricted
  • redundant comment (src/eShopOnWinUI.Persistence/Configurations/WarehouseEntityTypeConfiguration.cs)

Architecture

  • Unchanged — 1 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

LeftTwixWand/eShopOnWinUI 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 4f5ce229849824fd07d1de86ee954da20c19ac73 — 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.