Microsoft Visual Studio has been my development environment since ages. I used to develop in Microsoft Visual Basic and in early 2002 I moved to Microsoft .NET and the C# language. So for more than 20 years it was the first item on my Windows desktop. When ReSharper was released it became my number 2 program to install when I installed a new PC.
In 2009 MonoTouch 1.0 was released and I started to experiment with this great new tool. There was no Visual Studio support and MonoDevelop on a Mac was the only way to use the tool. It would take another 4 years until Xamarin.iOS 6.2 would natively support development using Visual Studio; before there were some community solutions where you could develop and build iOS apps from within Visual Studio, but not run.
So I was very happy when there was finally Visual Studio support for Xamarin development, but the drawback was that you had to install virtualisation software (Parallels, VMWare, …) on your Mac (or use an external build host). This was always a bit of an issue, despite the fact that Xamarin did their best to provide utilities like Build Host, Build Agents, etc. Running and deploying is much slower because of the virtual file system and the communication between the Windows machine and the Mac. But there was a very good reason why you would make this sacrifice: Visual Studio and ReSharper!
With latest toolset, Visual Studio 2015 and Xamarin 4, I have a lot of issues… Mostly intellisense related, but also stability issues. What bothers me the most is the fact that the Intellisense within Visual Studio is gone broke. Most of my XAML classes (when using Xamarin.Forms) are full of intellisense errors; my Android projects are constantly complaining about missing System.Runtime, missing System.Threads etc. Funny thing is, my apps are building and working! Xamarin acknowledges that there are issues, mainly because of Visual Studio 2015, but for some reasons they don’t get fixed. The new Xamarin Build agent is much better than the Build Host app you had to run on your Mac before to make builds, but now you have issues of disconnecting states and then you have to rebuild your complete solution because of inconsistencies. It is starting to give me lots of headaches!
So last weekend I decided to abandon Visual Studio! As from now, all my projects will be developed in Xamarin Studio! No intellisense issues anymore, much faster build and deploy, no more adb connect to connect to the Android Player tool from within Windows, and no more virtual machine that is eating memory and disk space. Of course I’ll have to take a step back as well. I won’t get ReSharper anymore (oh boy, I am going to miss that!) and some other nice features of Visual Studio are gone as well. But I am confident that Xamarin will catch up. With the upcoming Xamarin Studio 6 they will introduce the Roslyn engine, and with that comes more refactoring features to share between Visual Studio and Xamarin Studio. Furthermore, I will have to learn a lot of shortcuts again (although I will try to remap these to the known Visual Studio shortcuts). And I know there will be moments I will be feeling sorry for this decision. But I will be strong, and won’t try to look back at my great time with Visual Studio (although for some non mobile projects, this will be my goto tool I think).
The coming days and weeks I will blog about my switch to Xamarin Studio. Any comments and suggestions to make the switch smoothly are very much appreciated!