.Net & Xamarin Development on a Mac Part 2: Virtualization

Virtualization, who doesn’t like to talk about virtualization? No one I say. So you have 3 choices for virtualization when running on a Mac for your Windows VM’s, Parallels Desktop, VMWare Fusion and VirtualBox.

20120917_vmbench_teaserOver at TekRevue they did a great performance write-up comparing all three platforms and their comparative performance. Here I’m not really going to talk about outright performance, for that just go read that article, they did a far better job then I could.

Here is the TLDR, Parallels with a Windows VM on the Mac is a clear performance winner in startup times, graphics performance and ease of use.

 

But there is more to a virtualization platform then just pure performance. I’ve used both Parallels (versions 6 to 8) and VMWare Fusion 6 and 7. Besides emulation (i.e. the Xamarin Android Player and Genymotion) I haven’t, nor do I know anyone using VirtualBox for a mainline development VM. So I won’t be speaking about Virtual Box, it may be good but for our usage scenario there isn’t a lot of people doing it and thus when stuff goes wrong you can be SOL.

Pros Cons
Parallels Clear winner in perceived and actual performance More consumer grade/focus
Easy maintenance and optimization Lack of deep configuration options
Great integration with the Mac (Host OS) Lack of other OS support
VMWare Fusion Great support for a vast number of Operating Systems Slower performance and lower DirectX support
Deep configuration and tweaking options (i.e. Hyper-V) Not as frequently updated (Compared to Parallels)
Lots of Enterprise’y features (Migrations, Encryption, Sharing, etc) Sometimes complicated settings and options

So which one do I use? Currently I use VMWare Fusion 7. I made the switch to Fusion from Parallels during Parallels 8. During that time I felt that Fusion supported Retina displays better and it allowed for more configuration and tweaking of the virtual machine. I’m also a fan of how Fusion gives access to the VM through their menu. It’s far more compact and powerful then the corresponding Parallels one.

But you can’t go wrong with either choice in my opinion, they both work well. If you need the fastest performance you can muster or need the latest graphics support then Parallels is your best option, if you need rock solid stability and a deep field of configuration, tweaking and OS options then go Fusion.

In the context of what we are looking for virtualization for VMWare Fusion seems more popular. Xamarin uses it (all of the Xamarin University instructions have been on Mac with Fusion) and a fair amount of developers in the space seem to be following that same configuration. The benefit here is that the more people using that config the less problems there should be and the more help if an issue is encountered.

Resgrid is a SaaS product utilizing Microsoft Azure, providing logistics, management and communication tools to first responder organizations like volunteer fire departments, career fire departments, EMS, search and rescue, CERT, public safety, disaster relief organizations, etc. It was founded in late 2012 by myself and Jason Jarrett (staxmanade).

About: Shawn Jackson

I’ve spent the last 18 years in the world of Information Technology on both the IT and Development sides of the aisle. I’m currently a Software Engineer for Paylocity. In addition to working at Paylocity, I’m also the Founder of Resgrid, a cloud services company dedicated to providing logistics and management solutions to first responder organizations, volunteer and career fire departments, EMS, ambulance services, search and rescue, public safety, HAZMAT and others.