Xamarin Development Setup

Lots of choices...

When I initially started out in Xamarin development I had my Dell laptop running Windows 8.1 with Visual Studio and Xamarin Studio and my old 2008 vintage Macbook Pro upgraded to El Capitan with an SSD to help it out.

I did most of my initial work on the Windows laptop, although four years old it had two SSD's, a quad core i7 processor and 32GB of RAM compared to the Macbook's Core Duo processor and 4GB of RAM so the choice was fairly easy.

When I first started using Xamarin I read some posts which were critical of Xamarin Studio and given I have been using Visual Studio for longer than I cared to admit I initally choose to focus on Visual Studio as the development environment with the Mac acting as a build host only.

I was curious to try out Xamarin Studio though and started to use the Mac with Xamarin Studio for the iOS Xamarin University Classes, noting that most classes were presented using Xamarin Studio on a Mac also. I was really pleasantly surprised with how good Xamarin Studio was, to me it seems nice and lightweight especially when compared to Visual Studio.

Mac Mini or Macbook Pro?

Eventually my old Macbook Pro finally died and I needed a new Mac of some description as I had two Xamarin University iOS classes the next week. I considered using a Mac mini to act as a build host and to use Visual Studio on my Windows laptop as the development environment. This is a cheap solution but lacks portability. When working on Xamarin in my spare time I often work on a laptop on my couch so didn't really consider a desktop Mac, in the end I decided to buy another Macbook Pro.

So a Macbook Pro - Which one?

The ability to have a Windows and Mac development environment on a single laptop by running Windows under a Parallels or VmWare Fusion virtual machine seemed a really good setup. I considered a 13" Macbook Pro as they are such a nice balance of probability and performance but ultimately thought the more powerful processors available in the 15" would be beneficial when running Visual Studio in a Windows 10 virtual machine.

Virtual Machine Choice

The setup I’ve opted for is to install Windows 10 natively via BootCamp and then to setup a virtual machine to use the Bootcamp install. After some research I’ve opted for VMare Fusion 8 Pro, this is the same setup as the Xamarin University instructors use and seems to be a popular choice. Parallels would probably be an equally good choice, each option having advantages and disadvantages over the other.

The screenshot below shows Visual Studio 2015 running in Fusion in a 'Unity' view floating over the top of Xamarin Studio running natively in OS X.

VS Over Xamarin Studio

Sharing files between Windows & OS X

Sharing files between Windows and Mac OS X is limited to read only access of the other operating system files (NTFS on Windows and HFS on OS X). The Bootcamp documentation suggests copying the files into the currently running operating systems partition in order to gain write access.

An option is to create a FAT32 orExFAT partition which both Windows and OS X can write to. ExFAT doesn't have the 4GB file limit of FAT32. I was put off of these options though after reading some posts with people describing problems that had been encountered when using this option.

Paid for drivers enabling write access to the other operating system are available, I have so far opted to use those from Paragon:- Paragon NTFS for OS X, a driver is also available for Windows:- Paragon HFS for Windows, note that if File Vault disk encryption is enabled on OS X then the Mac partition won't be visible in Windows Explorer.

VMWare Fusion supports shared folders which enable both the Mac host and the virtual machine to read and write to the same shared files, note this option can not be used when running Bootcamp natively.

Storing the source files in GitHub and using the relevant GitHub clients is another option to get at the source code when booting natively into Windows.

I have thus far mostly worked on Visual Studio when running in the virtual machine anyway, but can use the Paragon drivers to gain read/write access to files on each OS.

Xamarin Build Agent

With the release of Xamarin 4 the requirement to run the Mac Build Host in order to build and debug iOS apps has been removed and the overall experience running Visual Studio 2015 in VMWare Fusion on the MacBook is now pretty slick. The initial setup is documented here:- Xamarin Mac Agent.

I was impressed that I could open a solution in Xamarin Studio on OS X and at the same time open the same solution in Visual Studio running inside Fusion via the Fusion Shared Folders and debug to my iPhone from either development environment (although not at the same time).

Backups

The OS X Time Machine backup will not backup the Windows Bootcamp partition. I ended up using Acronis True Image 2016 which is installed on OS X and will backup both the Mac and Windows partitions in single backup. I have used Acronis Workstation Backup on Windows in conjunction with VMWare Workstation and found it to work well so hopefully this will hold true for True Image on the Mac.

Carl Franklin - Ultimate developer machine setup

TekRevue - 2015 VM Benchmarks: Parallels 11 vs. Fusion 8 vs. VirtualBox 5

Just Krumelur - Migrating from Parallels Desktop

Design Limbo - Full Time .Net & Xamarin Development on a Mac Part 1

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

Sharp Mobile Code - Sharing War Stories: The Best Way To Swap Between Xamarin Studio & Visual Studio

Apple - How to install Windows using Boot Camp

Apple - Boot Camp: Share data between OS X and Windows

MvvmCross - Setting up a Cross Platform Build Environment

Richard Woollcott

Read more posts by this author.

Taunton, United Kingdom