Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / phenix-contact-centre-web

phenix-contact-centre-web

Legacy ASP.NET MVC 5 Contact Centre website on .NET Framework 4.6.2 for browsing and managing contacts, marketing functions and templates over the shared ContactCentre database.

47 · redhighkernelOn-premZDD: not applicableweb-ui

Health score

47

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
8
Some tests, coverage is thin
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
3
shares a core database (sqlserver:ContactCentre); depends on pinning component(s): application-framework, phenix-feature-service, mailtemplate-service
Activity / 10
10
Actively maintained
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-24 (run-2026-07-24-1): 472026-07-27 (run-2026-07-27-1): 47
No change since 2026-07-24 (47 to 47).

Facts

Languagescsharp, javascript
FrameworksASP.NET MVC 5, Autofac, Razor
Runtimes.NET Framework 4.6.2
Tests / CIsome / CI in place
Last commit2026-03-27
OwnerOwner unknown (mapping to be curated)
DomainContact centre and CRM (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedOn-prem Deployed to our own machines
  • Release "\marketing\contact-centre\phenix-contact-centre-web": Development: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-web": Staging: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-web": Production Web: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-web": Training Web: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-web": DR: deployment-group phase (agents on our own machines)
Releases2 release pipeline(s): \marketing\contact-centre\phenix-contact-centre-web; \marketing\contact-centre\phenix-contact-centre-web stealth
Integrationrest, wcf, soap, redis
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 3 mechanism(s).

Detaches when its pinning dependencies are cut or multi-targeted (application-framework, phenix-feature-service, mailtemplate-service); and when its WCF surface gains a modern interface or its WCF calls move to one; and when the shared database group it belongs to gains an owned API or completes schema separation (sqlserver:ContactCentre).

Capability duplication

Part of the Contact centre family (retire): First generation web

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. Retirement or consolidation candidate; do not invest in ZDD adoption.

SQL Server exit

Retire instead

This repo is a retirement or consolidation candidate. Do not invest in a database migration; execute the retirement and the SQL Server dependency disappears with it.

Containerisation

Retire instead

This repo is a retirement or consolidation candidate; containerising it would be investment in something we intend to switch off.

Recommended actions

Retire phenix-contact-centre-web

First generation web. Part of the Contact centre consolidation: Converge on the generation 2 pair, give the ContactCentre database a named owner (stage 4), and retire the earlier generations as their remaining traffic moves.

Impact: A migration never paid for, a pipeline decommissioned and an attack surface removed

proposed

Assessment notes

phenix-contact-centre-web

Purpose

The legacy Contact Centre website ("v1" UI): MVC controllers and Razor views for contact browsing/editing, marketing functions, a template engine for marketing content, flights data lookups and Phenix feature toggles. It sits alongside the newer phenix-contact-centre-2-web and still contains a local ContactCentre.asmx plus a WebForms Default.aspx entry page.

Tech stack

C# on .NET Framework 4.6.2 across seven legacy-format projects with packages.config (one netstandard2.0 utils library). ASP.NET MVC 5 with Razor, Autofac + Autofac.Mvc5 DI, PhenixAuth authentication, TC.Cache multi-level caching with Redis storage, RestEase and Polly for HTTP calls, log4net. Checked-in binary DLLs in binaries/ (HtmlAgilityPack, mshtml, Microsoft.Web.Mvc, New Relic agent).

Deployment

prod_application with 2 releases. Build pipeline phenix-contact-centre-web (classic — the only YAML in the repo is azure-pipelines-packages.yml for NuGet packages); release pipelines \marketing\contact-centre\phenix-contact-centre-web and stealth. Nine per-environment Web.*.config transforms, deployed to IIS.

Dependencies

Very wide internal package surface: TC.ConnectionBroker.* (tc-connectionbroker), TC.Exceptions.* (tc-exceptions), TC.Phenix.ApplicationFramework (application-framework), TC.ContactCentre.ServiceClient and TC.Phenix.ContactCentre.* (phenix-contact-centre-wcf), TC.AddressLookup.ServiceContract (backoffice-address-lookup-service), TC.Phenix.CompanyInfo (company-info-api), TC.Phenix.Feature* (phenix-feature-service), TC.UserAccount.ServiceContract (backoffice-useraccount-service), TC.Pure360.MarketingService.Shared (backoffice-pure360-marketing-service-api), TC.Mail.Template.ServiceContract (mailtemplate-service), TC.FlightsConfiguration.* (phenix-flights), TC.TaskReminder.ServiceContract (phenix-task-reminder-wcf). TC.CustomerPortal*.ServiceContracts and MediaServer.Library have no mappable source repo. External: New Relic APM agent.

Data stores

SQL Server ContactCentre database via ConnectionBroker connection ContactApi1 (direct ADO.NET data access in DataAccess/), plus a MediaServer database connection wired up in Global.asax. Redis is the configured cache storage.

Integration points

Server-rendered MVC UI. Outbound REST via ConnectionBroker HTTP clients, WCF/SOAP service-contract clients to the contact-centre WCF service, address lookup, task reminder and mail-template services; Redis for caching.

Code health

One MSTest project (TC.ContactCentreTests) covering data access, marketing functions and customer logic — some coverage but far smaller than the app. Boilerplate two-line README. Legacy csproj + packages.config throughout, binaries checked into source. Still receiving occasional changes (last commit 2026-03-27).

Modernisation risks

High: .NET Framework 4.6.2 is out of support and the MVC 5 + WebForms + ASMX mix has no in-place path to modern .NET. It reads the shared ContactCentre database directly with raw SQL as well as through the WCF service, duplicating the contact-centre domain already being rebuilt in phenix-contact-centre-2-web/-2-api — consolidation there and retirement of this app looks like the sensible route.