Visual Studio for Mac ‘retired’: From open source, to closed source, to dead

Visual Studio for Mac ‘retired’: From open source, to closed source, to dead
Apple M1 Mac

Microsoft is freezing development of Visual Studio for Mac (VS Mac), with support ending on August 31 2024. Mac developers using .NET have been directed towards Visual Studio Code (VS Code), or a Windows VM, or told they can use an Azure-hosted Windows Dev Box. 

Anthony Cangialosi, Principal Group Program Manager, said Microsoft’s dev division would be “redirecting our resources and focus to enhance Visual Studio and VS Code, optimizing them for cross-platform development. No new framework, runtime, or language support will be added to Visual Studio for Mac.”

The DevDiv unit recently improved .NET tools for VS Code with the introduction of the C# Dev Kit, though we note that unlike most such extensions, this one requires a paid license for commercial use, unless you are a small businesses.

VS Mac was presented as a Mac version of Visual Studio for Windows, but the product had different origins and its capabilities never came close to that of its Windows cousin. It was largely a .NET IDE with no support for C/C++, though it did also have JavaScript/TypeScript support. The momentum behind VS Code, the most popular IDE according to most surveys, left VS Mac in a small niche, with its most obvious use being for cross-platform and mobile development for Xamarin and its successor, MAUI (Multi-platform app UI). 

That said, Microsoft was slow to add MAUI tooling to VS Mac, which did not ship until November 2022, as well as lacking any visual designer. VS Mac has never offered the kind of rapid development for desktop applications that Visual Studio on Windows offers with Windows Forms and WPF (Windows Presentation Foundation). MAUI has also suffered from bugs and limitations that have slowed adoption.

VS Mac had other quality issues. When version 17.5 was released in February this year, with improved Git support, a developer declared that “Visual Studio Mac is a completely useless product,” citing slow performance, faulty debugger and Test Explorer, lagging .NET SDK support, and that “very basic features are missing.”

Despite these issues some developers are disappointed with Microsoft’s decision. “What a slap in the face to Mac developers, we already were getting shafted not having full VS and now we don’t get an IDE period. VS Code with C# plugin is NOT a replacement for an IDE,” said one. Another remark is that “instead of giving us a full fledged IDE they decided to put in half the effort then give up entirely.” 

One of the factors is that VS Mac is not open source, although it has open source in its history. That history began with Mike Kruger’s SharpDevelop in 2000, an open source IDE for C# which unlike Visual Studio at the time was built entirely with .NET. This was forked to become MonoDevelop on Linux, powered by the Mono cross-platform framework, and then taken up by Xamarin to become Xamarin Studio – though unlike MonoDevelop this was a commercial product. When Microsoft acquired Xamarin in 2016, most of the Xamarin platform was made open source and free to use, but Xamarin Studio was rebranded as Visual Studio for Mac and closed source. A likely factor was the intent to share code between VS on Windows and Mac, where possible.

There is an active though small community working on a fork of MonoDevelop, the DotDevelop project. Perhaps it will now receive more attention. One supportive developer remarked: “It really annoyed me that MS went closed-source and Mac-only with MonoDevelop. It’s frustrating that just as we get a properly linux-friendly dotnet framework at last, in almost the same breath we lose the linux-friendly open source IDE … very glad to see some new life breathed into this.”

The most likely destination though for .NET developers on Mac who do not wish to use VS Code is JetBrains Rider, which runs on Windows, Mac and Linux, and supports not only MAUI, but also Avalonia, an open source alternative for cross-platform desktop applications with .NET, loosely based on WPF.