Back to Podcast Digest
dotnet30m

Modernize Fast, Migrate Faster: .NET Apps to Azure with Modernize CLI

TL;DR

  • Parallel modernization is the headline: Instead of handling one legacy app at a time, the Modernize CLI can take a repos.json file and assess or upgrade multiple .NET and Java apps concurrently on GitHub cloud agents.

  • Assessment produces more than a bug list: The tool surfaces upgrade, cloud migration, and security issues, then generates artifacts like architecture diagrams, API contracts, data models, dependency maps, recommended Azure services, and dev-test cost estimates.

  • Plans are agentic but reviewable: After assessment, the CLI creates editable task lists such as upgrading to .NET 10, moving secrets to Azure Key Vault, generating Bicep infrastructure, and deploying to Azure Container Apps, with the human still deciding what the agent should do.

  • Execution can finish the job end to end: In the demo, Contoso University moved from .NET Framework 4.8 to .NET 10 and was deployed to Azure Container Apps, with skipped tasks called out and successful tasks clearly marked.

  • Headless mode makes it CI/CD-friendly: Gangali shows the same upgrade flow running in GitHub Actions with no-TTY style execution, including an example app moving from .NET 8 to .NET 10 in about 20 minutes.

  • Custom skills are the guardrails story: Teams can define repository-level skills, like replacing local files with Azure Blob Storage or swapping LocalDB for Azure SQL with managed identity, so the agent follows organizational patterns instead of improvising.

The Breakdown

Microsoft says the GitHub Copilot Modernize CLI can take a portfolio of old .NET apps, assess them in parallel on GitHub cloud agents, generate migration plans, and in some cases upgrade from .NET Framework 4.8 to .NET 10 and deploy to Azure with a link ready to open. Kosha Gangali walks through the full loop, from assessment and planning to headless CI/CD runs and custom skills that teach the agent company-specific migration rules.

Was This Useful?

Share