phenix-service-management
Tiny shared NuGet library (TC.Phenix.ServiceManagement) wrapping WCF client invocation over ConnectionBroker behind an IServiceInvoker abstraction for Phenix consumers.
Health score
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.
Facts
| Languages | csharp |
| Frameworks | - |
| Runtimes | .NET Standard 2.0, .NET Framework 4.6.2, .NET Framework 4.7.2 |
| Tests / CI | none / CI in place |
| Last commit | 2023-09-18 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Platform services (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | No signal No hosting signal in its pipelines (typical for libraries and contract packages) |
| Releases | 2 release pipeline(s): phenix-service-management develop; phenix-service-management release |
| Integration | wcf |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
Dependencies in context
Entanglement
loosely attached Bound into the core by 1 mechanism(s).
- Speaks WCF (client)
Detaches when its WCF surface gains a modern interface or its WCF calls move to one.
Depends on / used by
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 applicableNot 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 applicableNo SQL Server dependency is recorded for this repo. Nothing to migrate.
Containerisation
Not applicableLibraries ship as packages, not as running services. There is nothing to containerise.
Recommended actions
Replatform phenix-service-management to modern .NET
Runs on .NET Standard 2.0, .NET Framework 4.6.2, .NET Framework 4.7.2, out of mainstream support. No pinning dependency blocks it; sequence by fan-in (providers before consumers).
Impact: Unblocks 3 dependent system(s)
proposedAssessment notes
phenix-service-management
Purpose
Publishes the TC.Phenix.ServiceManagement NuGet package: a single IServiceInvoker interface plus a WcfServiceInvoker that resolves a WCF channel from IWcfConnectionBroker, invokes a delegate and disposes the client. It exists so Phenix apps can call legacy WCF services through one seam; the source itself marks the pattern as "kept for legacy code".
Tech stack
One SDK-style class library, two source files, multi-targeting netstandard2.0/net462/net472 with GeneratePackageOnBuild. Sole dependency is TC.ConnectionBroker.Abstractions 1.5.79 (an old line — current consumers are on 1.19.x). StyleCop and TravelCounsellors rulesets enforced.
Deployment
Release pipelines phenix-service-management develop and release (release_count 2, plus a deprecated build pipeline), built from build.yml in the repo using the shared InternalOSS azure-pipelines-templates. Output is a NuGet package, not a deployed service.
Dependencies
Internal: tc-connectionbroker only. No external services.
Data stores
None — pure abstraction library.
Integration points
WCF client invocation only; the package is the estate's standard wrapper for calling legacy WCF services.
Code health
No test project despite a TestProject.Build.props scaffold. README is untouched boilerplate. Dormant since 2023-09-18 while still consumed widely (e.g. phenix-reviews, phenix-root reference the package), and it pins a very old ConnectionBroker abstractions version.
Modernisation risks
The library institutionalises WCF client access, so it will persist exactly as long as the estate's WCF services do; it needs no work itself but is a good tracer for WCF fan-in. Medium priority: retiring it is a byproduct of the wider WCF decommissioning, and the stale ConnectionBroker pin could bite consumers on newer lines.