Case Study

O&M Support for .NET and O365

  • Government
  • .NET
  • O365
The Challenge

Legacy .NET Apps in Production

The customer had a portfolio of over 10 public-facing and internal applications running in production across a varied tech stack: .NET Web APIs, React frontends, Razor Pages frontends, and Microsoft 365 integrations including SharePoint Framework (SPFx) web parts. The .NET applications were targeting .NET Core 3.1, which was approaching end-of-life. Continuing to operate on an unsupported framework would introduce security vulnerabilities, limit the team’s ability to use newer platform capabilities, and put the agency further behind with each release cycle.

The scope of the modernization effort was significant, and the agency’s internal team lacked experience executing framework upgrades of this scale. Upgrading a single application from .NET Core 3.1 to .NET 10 is a non-trivial effort on its own, involving breaking changes, dependency updates, and regression testing. Doing it across 10+ applications with different frontend architectures, while keeping everything running in production, required a structured approach and hands-on experience the team did not have in-house.

10+ public-facing and internal applications running on .NET Core 3.1, approaching end-of-life

Six-year gap between the current SDK and the long-term support version

Varied tech stack spanning .NET Web APIs, React, Razor Pages, and SPFx web parts

Applications had to remain fully operational throughout the transition

The Solution

An Upgrade Path to LTS With Zero Downtime

Gap Analysis

With a six-year gap between the .NET Core 3.1 SDK the applications were targeting and the current LTS version, significant upfront analysis had to be done before any code was changed. We conducted a gap analysis across each application to catalog breaking changes, outdated dependencies, and potential risks, letting us prioritize the upgrade sequence by risk and complexity, and develop reusable migration strategies across the portfolio.

Refactoring

We led refactoring efforts aligned to best practices published by Microsoft for each target framework version. Where applications had accumulated workarounds or outdated patterns, we used the upgrade as an opportunity to bring the codebase in line with current standards. The result was cleaner, more maintainable code that the agency’s developers could confidently build on.

Zero-Downtime Deployments

Several of the applications were public-facing and served critical functions, so deploying the upgraded versions required zero downtime to the end customer. We developed a deployment strategy using staged rollouts and validation gates to verify each application was fully operational before cutting over traffic. The approach was rehearsed in lower environments before being executed in production, ensuring the modernization was invisible to end users.

The Results

Apps That Are Easier To Maintain

10+ appsModernized with zero downtime

All applications were successfully upgraded and deployed to production without disruption. The effort eliminated technical debt and addressed security vulnerabilities associated with the outdated frameworks.

The applications are now positioned for future enhancements and long-term maintainability, giving the agency a stable foundation to build on.

Facing something similar?

Every engagement starts with a conversation about where you are, not a pitch about where we think you should be.

Let’s Work