Back to Podcast Digest
dotnet31m

Cold Case or Active Asset? A 2005 WinForms LoB Application

TL;DR

  • Copilot handled a 20-year jump with almost no manual code changes: Mary McGaw upgraded a Northwind-based WinForms line-of-business app from .NET Framework 2.0 to .NET 10 after mostly typing "start" and "continue."

  • The modernization agent automates the ugly migration steps: It verified the toolchain, converted legacy csproj files to SDK style, upgraded two projects in dependency order, added the Windows Compatibility Pack, and swapped older ADO.NET pieces for Microsoft.Data.SqlClient.

  • The workflow still exposes the important choices: Mary could choose automatic vs guided mode, in-place vs multi-targeting upgrade, unsupported API handling, nullable settings, and branch naming before approving the generated plan.

  • Copilot recovered from real migration friction instead of just demoing a happy path: When one project hit .NET 10 before the other and broke the build, the agent used transitional multi-targeting to keep moving.

  • Modernization was not just version bumping: After the app built on .NET 10, Mary used WinForms Expert Agent V2 skills to add dark mode, improve the DataGridView layout with a TableLayoutPanel, and enable per-monitor V2 high DPI support.

  • She pushed the app toward a modern architecture too: The agent added MVVM-style view models, an ICustomerDataService abstraction, command binding support, and a unit test project, ending with passing tests and a working app.

The Breakdown

A clunky .NET Framework 2.0 WinForms app made the jump to .NET 10 in minutes with almost no hand coding, then picked up dark mode, high DPI fixes, MVVM structure, and unit tests in the same session. Mary McGaw shows GitHub Copilot's modernization agent doing work that she says would normally take hours or days, including SDK-style conversion, dependency fixes, and a clean final build.

Was This Useful?

Share