Architecture & engineering
M365 WATCH is a WPF desktop application (.NET 10) in MVVM, styled with MahApps.Metro and built on a multi-project solution: a core of entities and pure services, an access and orchestration layer over Entity Framework Core, source readers, an Excel export module (ClosedXML), the desktop application and the command-line collector. The visual identity is GUARD's, so the tools delivered to the team form a coherent family.
The heart of it is the SQL Server schema: nine tables and sixteen indexes designed for interval-based history. It is driven by versioned SQL migrations — readable and replayable from the repository, applied to the production database — together with post-deployment verification scripts that check tables, indexes and invariants. Reading the exports relies on an RFC 4180-compliant delimited parser and on streaming ZIP archives, with no extraction to disk.
Delivery is industrialised: two self-contained win-x64 packages — the application and the collector — built by PowerShell scripts, and a tag-driven GitLab CI pipeline chaining tests, packages, package registry and release. 348 automated xUnit tests hold the safety net, including integration tests that really ingest a 44,545-row export against a SQL Server database recreated on every run.
What this project demonstrates
M365 WATCH brings together two kinds of expertise rarely held by the same person: full .NET engineering — architecture, relational modelling, testing, industrialisation — and expertise in the monitored domain itself: Microsoft 365 Apps update channels, Windows builds and servicing, end-of-support calendars, admin-portal telemetry. The six detection rules did not come from a specification: they came from the field.
Above all, it shows the ability to deliver for real: migrations applied to the production database, daily collection running as a service, and the application used every day on the fleet's real data.
Technologies
.NET 10 C# WPF MVVM MahApps.Metro EF Core SQL Server ClosedXML CSV / RFC 4180 PowerShell xUnit GitLab CI/CD Python