Wednesday
Sep172014

MacBook Pro + Parallels + Windows 8.1 + Visual Studio + Xamarin = awesome

I went searching for the ultimate developer machine setup, and I've found it. The title of this post says it all.

I started with a full blown MacBook Pro. It's got 16GB of RAM, the retina display, and a 1TB PCIeX-based flash drive, supposedly faster than SSD. Basically, I got all the options, and I'm not regretting it. I don't miss the touch screen, either.

At first I thought I should sign in to all of my social services, so I did. That got very annoying very fast. I started by turning off notifications, then I just decided to remove the accounts. This is a developer machine. I use my phone to check Facebook, and the web-based GMail client works just fine for me.

Then, I added Parallels, which lets me run Windows and OSX at the same time. You can either switch full screen or use "Coherence," a mode in which Windows apps can run right alongside Mac apps on the same desktop.

Parallels let me install Windows 8.1 with the option to make it look like Windows 7. This option actually installs the Stardock apps, Start8 (gives you a Windows 7 style start menu) and ModernMix (lets you run Windows Store apps on the desktop). That was a seamless experience that just delighted me to no end.

After figuring out how to navigate Windows with Parallels (switching in and out of Coherence mode) I made sure all the latest updates were installed, and then started installing Windows apps: 

NOTE: In order for you to get the Visual Studio experience you know and love, you must disable the Function Key mapping that the Mac imposes. Go to System Preferences/Keyboard. From the Keyboard Tab, check the box that says Use all F1, F2, etc. keys as standard function keys. Then go to the Shortcuts Tab, Select Mission Control and uncheck Show Desktop (F11) and Show Dashboard (F12). That will give you back your function keys in Visual Studio. :)

On the Mac side I installed the following:

I also had to install the Samsung USB Driver for Mobile Phones so I could connect my Galaxy S5 and use it for development. If you plan on using an Android device, there are instructions on Xamarin's website, but I found this didn't go so far as to explain that you might need to go online to find your phone manufacturer's USB drivers. I had to find that by GoogleBinging it. 

Also, as noted in the documentation, I had to enable USB debugging on my S5. That's tricky. First you have to enable developer mode on the phone by standing on your head and reciting a spell. Then, you have to enable USB debugging. This won't work unless the USB Driver is installed.

After all that I was able to create a new Xamarin Forms app with Visual Studio 2013. I created a Shared project in VS2013. I set the Android project to be the startup project, ran it, and after a few minutes I saw "Hello Forms" on my S5 screen. Great.

The Windows Phone option was easy. It ran in the emulator, which is pretty good.

The iOS app was a bit trickier to set up.

First, you need to run the Xamarin iOS Build Host app on the Mac side, an app which comes with Xamarin Tools, and press the Pair button. 

The Xamarin tools in Visual Studio will look for this app on the same machine. This is the reason why I chose a MacBook Pro with Parallels. It just works.

In Visual Studio you select the iOS emulator, and then you get to select which iOS device you wish to emulate. Set the iOS project as the startup project and run the app.

To summarize, if you want to minimize the cross-platform headaches involved in developing with Xamarin tools, go with a MacBook and Parallels.

PrintView Printer Friendly Version

EmailEmail Article to Friend

References (55)

References allow you to track sources for this article, as well as articles that were written in response to this article.

Reader Comments (19)

Did you have any problems getting the Win8 phone emulator to run? When I try to debug a VS 13 Win Phone app the hyperV emulator want start and gives me an error about the number of processors being wrong.

I have eh same Macbook setup as you do and it is awesome. I love the two finger swipe to switch between OSX and a VM

September 17, 2014 | Unregistered CommenterMarshall Harrison

I didn't have issues with WP8 but I did have to register the phone. I should make a note of that.

September 17, 2014 | Unregistered CommenterCarl

The SSD is actually PCIeX which is a 4-channel connection to the motherboard vs the typical 2-channel which is why it is so much faster than other machines.. Haven't seen another laptop that supports it. I've got eh same rig and agree, best hardware ever!

September 17, 2014 | Unregistered CommenterAndrew Connell

This post is going into the Xamarin Weekly newsletter issue #6. Coming out this Friday Sept. 19th.

September 18, 2014 | Unregistered CommenterAdam Wolf

Great DNR episode #1042 with Lino Tadros – what a guy!

It’s the age old question... Parallels vs VMware fusion and why did you choose Parallels?

I recently purchased a macbook pro (almost fully spec’d but didn’t go the 1TB drive, you are crazy :-) – specifically because I’ll be doing more Xamarin dev work and wanted the “one machine” experience.

The majority of my time I am in Windows so at first I installed VMware fusion for Mac and ran both OS’s. This worked great but I found the VM would slow down if it’s not rebooted for a few days and Google Chrome really struggles if you don’t turn off some hardware acceleration features. Also multiple screen support within VMware fusion was touch and go – when I change the orientation of my monitors like move the second monitor so its above my primary monitor both my displays would change resolutions.

I wanted a mostly Windows experience because I am probably 80-90% in Windows and only require running dual OS’s for my 10-20% Xamarin work. I am not tinkering with Xamarin all the time so I don’t need to run dual OS’s every day.

So I tried “Boot Camp” and created a Windows partition so I boot directly into Windows. This enabled me to take full advantage of all the hardware, not virtualised due to the majority of my time not requiring OS switching.

Then, when I want to do Xamarin work I boot into my MAC partition and load VMware fusion which gives you the option to use your Boot Camp partition in a VM, enabling you to use all that Visual Studio / Xamarin / Xcode switching OS’s goodness. Boot Camp seems much faster and haven’t found an issue yet.

So interested to hear about your experience and thanks for taking the time to write this up.

October 1, 2014 | Unregistered CommenterBeau Holland

Beau,

Good idea.

Carl

October 1, 2014 | Registered CommenterCarl Franklin

It was another very informative podcast from DotNetRocks with a very interesting guest Lino Tadros. I remember Lino from the BorCon conferences of the late 1990's who I found approachable, friendly and above all sharp.

I too chose to use the MacBook Pro with Parallels. I love the machine and I just replaced a prior one that I had purchased in 2011 after it started to have starting problems with it. I have yet to truly diagnose what went wrong, although I think the logic board went bad.

Thanks for the tip on re-enabling the F11 and F12 keys, I didn't know you could do that. I use VS 2013 Professional with DevExpress' CodeRush and I do find it a bit bothersome that I have to use the FN key in conjunction with other keys to use CodeRush shortcuts. Is there any alternative to having to do that?

Peter

October 3, 2014 | Unregistered CommenterPeter Costantino

@Marshal depending om what version of parallels you are running there are restrictions on the cpu count. See more here http://kb.parallels.com/en/115211

October 4, 2014 | Unregistered CommenterBo Kingo Damgaard

Does Xamarin for Android support new runtime ART?

October 6, 2014 | Unregistered CommenterVolkan

How is WIndows 8.1 / Visual Studio 2013 handling the retina resolution?
I want to switch to a setup like this but need to be sure that working in Visual Studio is smooth and without any display issues?
Thanks.

October 13, 2014 | Unregistered Commenterurban

Thomas, no issues. Visual studio looks great!

October 13, 2014 | Registered CommenterCarl Franklin

Hi Carl,

I was wondering what docking station do you use (recommend) to hook this wonderful machine with dual monitor. There are many out there and I would rather go with recommendation.

Thanks,
Chama

October 31, 2014 | Unregistered CommenterChama

Thank you for the post.

I am using Parallels 10 + Win 8 + VS 2013 combination on a 15" MacBook Pro Retina. And it is the best combination ever. Windows has never looked this pretty. With a few Key binding tweaking [ex. Disabling the Ctrl + Left/Right arrow etc.], you can have the same experience in VS. Loving it and ain't switching back.

Once you experience the retina display, there is no going back.

November 18, 2014 | Unregistered CommenterChowdhury

Nice blog.... http://indiavspakistanlivestreaming.com/

January 4, 2015 | Unregistered CommenterAmit Kumar

So I use function keys F13-F16 in VS for going to definitions, references etc. (These are very easy for my fingers to find quickly. F12 requires me to look down.) They work great on my native PC with a mac keyboard plugged in.
However, in Parallels 10 I can't get them to work. I've tried turning off the OSX settings as you describe.
Any idea how I can do this?

January 23, 2015 | Unregistered CommenterThunderkid

Using parallels 10 on top of iMac OS how can I backup or copy files to USB port that r rested in win 8.1. USB ports appear to be only for the Mac side. Is there a fix

February 8, 2015 | Unregistered CommenterSteve p

HI,

What about the battery life when you are developing in VS? It's having the same life time like when you are using only the Mac OS?

March 1, 2015 | Unregistered CommenterBogdan

I have the same environment as you, but I have problem when pairing between Xamarin Build Host in Mac OS X and visual studio 2013 installed in Windows 8.1 inside Parallels. How can you get it work? is there are any configuration made to the Mac OS X and Visual studio? because I try to pair but it never get me to works.

June 4, 2015 | Unregistered CommenterCheng
Comments for this entry have been disabled. Additional comments may not be added to this entry at this time.
« Introducing KinectTools v2.0 for Kinect for Windows v2.0 | Main | "Stay away from Buffalo Hard Drives" »