Github Copilot for upgrading .NET projects and querying Azure - .NET Conf recap
Ted's Tech, April 25th 2025
Thanks for continuing to subscribe to the newsletter! The weather has picked up in Japan this week as we go truly into spring. Japan has four distinct seasons I am told repeatedly and they are not wrong.
Onto the Microsoft developer content…
.NET Conf “Focus on Modernisation”
CSharp “Jeff” Fritz hosted a special .NET Conf this week aimed at showing the latest techniques and tools available to upgrade the considerable estate of legacy .NET apps out there. Even Scott Hanselman dug out his Baby Smash app for an update!
A central tool highlighted was the .NET Upgrade Assistant, available as a Visual Studio extension and a CLI tool, designed to analyze projects, identify potential issues, and aid in the upgrade process for various project types like WPF, WinForms, and older ASP.NET MVC apps. The Upgrade Assistant isn’t new - its been around for donkeys years - but they have now added Github Copilot to it to provide AI generated agent-like upgrade step generation.
I remain skeptical about AI being help to help much here considering the lack of publicly available training data for this process - upgrades from .NET Framework to the latest .NET versions are the equivalent of open heart surgery and to do correctly is one of the hardest things a .NET Developer can do. It requires over a decade of archeological knowledge about .NET versions and their upgrade paths - where is this training data coming from? CodeProject blog posts?
One wild demo was the ability to embed Blazor components in a classic WebForms app. I highly suggest you watch the video as it really was a tour de force of proper .NET boomer content:
Azure releases its own MCP server
Previously this functionality was limited to Copilot within Azure itself, but to score internet points the Azure team have released a new MCP server that allows local agents, either Copilot in Agent mode, Claude, Cursor or other MCP clients to access information about your Azure infrastructure.
What’s more impressive is that it is built in .NET 9 and C#! Yes! No JavaScript or Go cop-outs here. What is wild is the way they’ve wrapped npx and the node package manager around calling different .NET binaries for each platform. I think its time that .NET had an npx
equivalent.
They have been good and for now restricted the operations to read-only. But this is only a short leap away from the MCP server being able to do tasks like creating resources and then its just another short leap away from deleting them. The team know they are on the edge of something pretty crazy here, so have added one of the best worded disclaimers I’ve ever seen:
MCP as a phenomenon is very novel and cutting-edge. As with all new technology standards, consider doing a security review to ensure any systems that integrate with MCP servers follow all regulations and standards your system is expected to adhere to. This includes not only the Azure MCP Server, but any MCP client/agent that you choose to implement down to the model provider.
Basically trying to pass on any blame if something goes wrong.
One amazing example of Microsoft left hand not talking to the right hand is that the MCP server they’ve built isn’t currently compatible with their own Semantic Kernel framework due to the function names having hyphens instead of underscores, which means they’ve only tested it using the VSCode/Github Copilot MCP client and not their own .NET agents framework. Classic.
Azure MCP: https://github.com/Azure/azure-mcp
Days since Microsoft open source drama: 0
The author of popular Kubernetes open source project Spegel saw parts of their project copied by the Azure team to a project called Peerd. Spegel is an OSS project released under the MIT license, so so what I hear you cry? Well the MIT license requires the copyrights of the author to remain in the source code and to be distributed with the software - the dev teams at Microsoft removed the LICENSE file from the “fork”, replacing it with their own, violating the license and therefore technically the copyright.
The blog post explains that MS “interviewed” the author before the “fork”, doing a brain dump from the author (probably recorded into OneNote and summarised by Copilot). A similar technique to the WinGet / AppGet clone drama.
The Hacker News outrage has been brutal and in my opinion justified. I also put the word “fork” in quotes because in reality it looks like the project was copy and pasted, which isn’t technically a “fork”. This Hacker News sleuth figured it out.
Based on the commit history of Peerd essentially being a single person, I think that someone thought this was a slam dunk project for a promotion. Well, they’ve just set MS’s trust with the open source community back several years instead.
The post: https://philiplaine.com/posts/getting-forked-by-microsoft/
The Github meltdown: https://github.com/Azure/peerd/issues/109
The damage control PR reply: https://news.ycombinator.com/item?id=43755745
Thanks for reading as always! For a video version of this post, be sure to check out: