Microsoft repents of its open-source .NET blunder

Microsoft almost blew much of the good will they've gotten from open-source developers, but now the company has reversed course.
Written by Steven Vaughan-Nichols, Senior Contributing Editor

A decade ago, Microsoft declared that it loved open-source. In 2014, the Redmond giant went even further.  Microsoft CEO Satya Nadella said, "Microsoft loves Linux." Few in Linux and open-source circles believed them. Years went by and as Microsoft embraced open-source projects, opened up their patents to Linux developers, and released Windows Subsystem for Linux, some finally bought that Microsoft was no longer open-source's enemy. As Linux founder Linus Torvalds said, "I completely dismissed all the anti-Microsoft stuff." Many open-source developers, however, never bought this. They still think of Microsoft as the Evil Empire. And, boy did they get this reinforced when Microsoft removed the forthcoming .NET 6's Hot Reload feature from its open-source releases. 


Hot Reload enables developers to modify your program's managed source code while it's running. There's no need to manually pause the program or put it in a breakpoint. You can make changes on the fly and see what happens next. With this, you can save many app restarts between edits to make you more productive by reducing the time you waste waiting for apps to rebuild, restart, re-navigate to the previous location where you were in the app itself, and so on.  This is a big win for many programmers. 

This was already a popular feature in other languages such as Dart, Nextjs, and React. The .NET developer community was looking forward to using it in their open-source .NET implementations. 

But then, Dmitry Lyalin, a Microsoft program manager working on Hot Reload stated it would only be available in the near future for Windows and Visual Studio 2022 developers instead of being open to everyone such as Xamarin.Forms; F#;  and .NET Native developers. In particular, it would not be available to .NET Core command-line interface "dotnet watch" users. For them, there would be no Hot Reload.

Why? Lyalin tweeted an explanation, "To clarify, given the number of scenarios we are working on, we had to prioritize :(. As a result, Hot Reload will not release as a feature of dotnet watch tool. We are doubling down on VS 2022 with support for VS4Mac coming later."

The .NET Core developer community was not amused. Core, the successor to .NET Framework, is the free and open-source, managed software framework. It's available for Windows, Linux, and macOS users. They had been using Hot Reload in the beta, and then it had been deleted. 

As Phillip Carter, a former Microsoft F# program manager wrote on the Microsoft blog site, "It's disappointing to see dotnet watch have the existing support it's had for a long time now get dropped. It worked very well. ... This is a clear backslide, especially because hot reload did not start out as being only for Visual Studio. I really hope this isn't the start of a pattern. Others agreed: "This is a massive step backward for .NET as a legitimate cross-platform ecosystem."

Outside of Microsoft, other programmers were more frank. On Ycomb, Reilly Wood, wrote, "This is a horrifically short-sighted decision that has me scared for the future of .NET. I have a tremendous amount of respect for the .NET team, and I'm very certain they're not the ones behind this."

Over at Reddit, they were less understanding. "Microsoft removed a feature previously available on .NET 6 preview (available on Linux) and locked it behind Visual Studio 2022 that only runs on Windows. This impacts those Linux users that code on .NET. More and more .NET is slipping back to a platform that isn't cross-platform or part of the open-source community."

But, before you get out the torches and pitchforks, over the weekend Microsoft realized they were blowing their open-source street cred. Scott Hunter, Microsoft's .NET Program Management director, publicly backtracked and wrote, "First and foremost, we want to apologize. We made a mistake in executing our decision and took longer than expected to respond back to the community. We have approved the pull request to re-enable this code path and it will be in the GA build of the .NET 6 SDK.

So, come early November, when .NET 6 is officially released, all .NET developers, including those on Linux and using open-source platforms, and not just Visual Studio 2022 programmers, will be able to use Hot Reload.

Will they gain back the good will they lost? I expect so. But for those who still hate Microsoft, this will go down as just one more example of how you really can't trust them.

Related Stories:

Editorial standards