Today at Microsoft's Connect event, Microsoft finally announced the long unthinkable version of Visual Studio for Mac. While this may seem like a major change on the surface, a closer look quickly reveals that Visual Studio for Mac is an updated and rebranded version of Xamarin Studio. It's an interesting move on Microsoft's part (and perhaps an inevitable one given their acquisition of Xamarin) that signals a much higher investment in allowing developers to work anywhere. In this article we'll examine some of the changes Visual Studio for Mac as well as some of our hopes for the future of the product.
Visual Studio for Mac has a few notable changes to what's currently available in Xamarin Studio. Some of the interface has been reskinned to more closely resemble the visual style of the Windows version. Elements of the IDE have been repositioned to make the experience more similar as well. One slightly disorienting change for someone who has long used Xamarin Studio is that the Solution Explorer and tabs for Toolbox, Properties, and the Document outline have switched sides. This makes sense for users who are coming from the Windows version of the IDE, but it was one of the first things I noticed coming from Xamarin Studio. The biggest addition in this early version of Visual Studio for Mac is support for .NET Core. This support extends to new project templates, C# intellisense, full debugging support, and Nuget PackageReferences. This bolsters a Mac user's ability to use .NET to build out a web based backend. Microsoft goes a step further with the project templates by providing their "Connected App" templates. These give you a higher level of .NET Core support by providing a solution that bundles a Xamarin app (either Xamarin.Forms, Xamarin.iOS, or Xamarin.Android) with an ASP.NET Core mobile services app. This template allows you to create your mobile client and server side app all together in one convenient location. There are several other features that they've added that I haven't had an occasion to test yet including multi-process debugging and support for TextMate bundles. Multi-process debugging gives you the ability to debug multiple projects at once which will certainly be useful. TextMate I haven't used, but it gives you the ability to add language bundles that change editor color schemes, code snippets, and grammars for new languages (for highlight and intellisense).
This is a great start for Microsoft, but I can't help feel like there are a few things missing. Microsoft and Xamarin are actively taking feedback for the product which thankfully indicates a receptive audience. The largest missing feature by far is TFS integration. This has always been more difficult on the Mac than it should be, and it doesn't look that will change soon. As a long time user of Xamarin Studio and git tf I can't help but feel like this is a missed opportunity. Having support for TFS built directly into the IDE would really make the whole process much easier. Hopefully they'll add this feature in the future. Another feature I'd like to see added is better support for Xamarin.Forms apps targeting UWP. The cross-platform project template for a Xamarin.Forms app does not contain a UWP project on Mac which is disappointing coming from the Windows version of Visual Studio. This adds some extra work if you're also trying to develop for that platform, and makes sharing work with Windows Visual Studio users a little more complicated. While there may be some barrier here in terms of actually being able to build or debug the app on a Mac, it would be nice to at least see the project type treated in same manner as an iOS project is on Windows.
Visual Studio for Mac suggests that Microsoft is very serious about having the .NET platform everywhere and allowing developers to work where they please. While there is certainly room for improvement, it is encouraging to see Microsoft augmenting Xamarin's tools with their own branding and expertise. It can only mean good things for the platform.