Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / application-framework

application-framework

Shared TC.Phenix.ApplicationFramework NuGet libraries providing common service-model types, an ORM layer over SQL Server, and DI/MediatR integrations used by backoffice and other WCF-based services.

66 · amberlowkernelNo signalZDD: not applicablelibrary

Health score

66

0 to 100 across seven weighted factors; nothing is hidden. Green is 75 and above, amber 50 to 74, red below 50. How scoring works.


Runtime currency / 25
0
.NET Framework, out of mainstream support
Legacy transport / 15
6
Calls at least one legacy WCF endpoint
Test posture / 15
15
Good test coverage
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
15
No dangerous coupling detected
Activity / 10
10
Actively maintained
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-24 (run-2026-07-24-1): 662026-07-27 (run-2026-07-27-1): 66
No change since 2026-07-24 (66 to 66).

Facts

Languagescsharp
FrameworksMediatR 12.5, Autofac 8, SimpleInjector 5, protobuf-net 3, xUnit 2.9
Runtimes.NET Framework 4.6.2-4.8.1, .NET Standard 2.0, .NET 8, .NET 10
Tests / CIgood / CI in place
Last commit2026-07-09
OwnerOwner unknown (mapping to be curated)
DomainPlatform services (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedNo signal No hosting signal in its pipelines (typical for libraries and contract packages)
Releases1 release pipeline(s): application-framework release
Integrationwcf, grpc
SourceOpen in Azure DevOps

Risk flags

Each flag links to its glossary definition.

Dependencies in context

Laying out the graph…
greenamberreddata store (square, dashed link)Node size follows fan-in. Click any node to open it.

Entanglement

kernel Bound into the core by 2 mechanism(s).

Detaches when it is itself a binding point: unpinning it releases its consumers; and when its WCF surface gains a modern interface or its WCF calls move to one.

This repo is itself a binding point: see what cutting it unlocks.

Migration playbooks

Generated from this repo's assessment data: what is feasible, what blocks it, and the steps in order. Ratings: green means actionable now, amber means sequence other work first, red means blocked, grey means not applicable.

ZDD adoption

Not applicable

Not a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Ships as a package; ZDD applies to the services that consume it.

SQL Server exit

Not applicable

No SQL Server dependency is recorded for this repo. Nothing to migrate.

Containerisation

Not applicable

Libraries ship as packages, not as running services. There is nothing to containerise.

Recommended actions

Complete the multi-targeting of application-framework

34 dependents. Multi-targeting is already under way; finishing it lets consumers move to modern .NET without waiting on each other.

Impact: Highest leverage in the programme: releases consumers without touching them

proposed

Assessment notes

application-framework

Purpose

Foundation library suite (TC.Phenix.ApplicationFramework.*) consumed across the estate: core domain primitives (Money, Currency, Entity, Address), an ADO.NET/SQL Server data-access layer, WCF service-client helpers, XML configuration adapters, and Autofac/SimpleInjector/MediatR integrations. Version 7 added protobuf-net contracts to enable gRPC migration for WCF consumers.

Tech stack

Seven SDK-style C# projects, centrally versioned (Directory.Packages.props, Nerdbank.GitVersioning), multi-targeting net462 through net481, netstandard2.0, net8.0 and net10.0. The .Services and .ConfigurationManager packages are .NET Framework-only (System.ServiceModel). Heavy analyzer usage (Sonar, SecurityCodeScan, NetAnalyzers), C# 14, .slnx solution.

Deployment

Included with 1 release: build pipeline application-framework CI, release pipeline application-framework release. YAML CI uses shared azure-pipelines-templates (.NET 10 SDK) and publishes six NuGet packages; deployment is package publication, not a hosted app.

Dependencies

Internal: tc-connectionbroker (TC.ConnectionBroker.Abstractions). Third-party libraries only (MediatR, Autofac, protobuf-net, MemoryPack, Microsoft.Data.SqlClient); no external services.

Data stores

None of its own — Data.SqlServer provides the ORM/data-access layer that consuming services use against their own SQL Server databases.

Integration points

Provides WCF service-client base types (framework targets) and protobuf-net contracts for gRPC migration; no runtime endpoints itself.

Code health

Good: seven test projects (xUnit, Moq, coverlet) covering each package plus a shared testing-common project and a BenchmarkDotNet project. Actively maintained (last commit 2026-07-09) with disciplined breaking-change documentation in the README.

Modernisation risks

The library is itself modern and well-run; the risk is its wide blast radius — breaking changes ripple across backoffice and WCF services, and the Framework-only Services/ConfigurationManager packages keep legacy consumers on .NET Framework. Priority low for the repo itself; it is an enabler for migrating its consumers (protobuf/gRPC path already prepared).