Reviving legacy application through automation

Dotnet migration and maintenance with Amazon Q Developer

  • Refactored a 200,000-line .NET WinForms application to upgrade from .NET Framework v4.8 to .NET 9 with the help of Amazon Q Developer

  • Removed legacy components (Lidor, CMIS, local MongoDB) and migrated dependencies to NuGet

  • Updated csproj project definitions and build targets for .NET 9 compatibility

  • Upgraded Spring.NET from v1.3.2 to v3.0.2 to support the most recent dotnet versions

  • Documented the entire process, including a user acceptance testing script and a roadmap for cross-platform expansion to enable future market growth (e.g., iOS)

  • Proposed replacing custom OAuth solutions with MSAL.Net for better security and improved maintenance

Challenges

  • The large migration gap (skipping multiple .NET versions) required meticulous preparation and compatibility handling

  • Identifying and eliminating legacy blockers systematically without breaking existing functionality

  • Lack of test coverage slowed down progress validation and introduced risk during refactoring

Implementation Specifics

  • Amazon Q Developer

  • C#

  • .NET Framework v4.8 (dotnet core v1, v2, Standard, v3.x, dotnet 5, 6, 7, 8) until dotnet 9

  • WinForms

  • Gradle

  • MSBuild

  • dotnet cli

  • Spring.NET

  • Visual Studio

  • MongoDB/BSON

  • NuGet package manager