Why use a Macbook Pro as a Windows .NET Software Developer (Updated)

Update December 2016: Apple has released a new version of the MacBook Pro featuring the new Touch Bar feature. I do not recommend buying this model.

  • Worse battery life
  • Worse keyboard
  • Touch Bar feature is pretty useless for Bootcamp or virtualization – you will miss the usual function keys
  • USB-C only. Expect to spend 100s on adapters.
  • The original Bootcamp drivers actually physically blew the speakers when running Windows

Luckily Apple still sell the 2015 model without Touch Bar. I would recommend buying one of those.

Original post continues below…

I’ve been using OSX alongside Windows for almost 8 years now. In this post I will outline why a Mac is handsdown the best development laptop you can buy even if you are primarily a Windows or .NET developer. I use a Retina Macbook Pro 13 inch at home and for side projects, plus a Retina Macbook Pro 15 inch at work.

image

Reason 1: You need access to OS X as a professional software developer

If you care about maximizing the value you can provide as a practitioner of building software, you need access to OS X. OS X is the only way to build native iOS applications – and as a .NET developer without access to OS X, you’ll never even be able to use Xamarin to run your C# code on iOS natively. You’ll also miss out on the wider community and the rest of the development world – Javascript, Ruby, Python and Scala developers all use Unix-based operating systems to do their work, not Windows, and most of the time their preferred platform is OS X. If you want to dabble in Ruby over the weekend, or even teach yourself a new skill, OS X on a Mac is the only way to get first class support as most non-.NET/Java developers run their stuff on Macs (a small minority use a Linux distribution to do their work). No laptop other than a Macbook Pro or Air will give you access to this world and you will find yourself increasingly isolated professionally if you can only use Windows.

Reason 2:  It’s the only laptop that lets you run OS X and Windows at the same time

Since Apple put Intel chips in their machines, you’ve always been able to run Windows natively on a Mac by creating a second partition using the built-in Bootcamp utility. Since the middle of 2014, this has gotten even better with the introduction of native UEFI support. Gone is the 80s-era BIOS emulation, and now Windows boots just as fast as OSX itself. The Windows 8 startup circle animation even starts rendering before the Mac bootup sound finishes playing.

You don’t have to reboot when you want to use Windows – you can attach that same native partition within a virtual machine using Parallels or VMWare Fusion. That means you can run both OSX and Windows side by side, rebooting into the native Windows partition when you need the full power of the machine. Plus, its really cool to be able to do this:

Swiping between OSX and Windows

(As a side note, I get much better performance out of Parallels Desktop 10 than VMWare Fusion when running Windows 8.1 or the Windows 10 Tech Preview – the Parallels virtual display driver is WDDM 1.2 compatible, rather than VMWare’s WDDM 1.0 compatible version. WDDM 1.0 is from the Vista era.)

Reason 3: Multiple monitor support is amazing

All the Retina Macbook Pros have two Thunderbolt ports, which double up as Mini DisplayPort ports, and an HDMI port. The Retina Macbook Pro 13 inch can support 2 external monitors under OSX, and three under Linux or native Windows. The 15 inch version can support 3 external monitors and the internal screen at the same time. Both these limits can be extended by using USB 3.0 “DisplayLink” adapters or docks at the cost of CPU power and graphics quality. With virtualisation, you can set Windows up to use any number of monitors.

Reason 4: You can test your work on multiple retina display implementations

Both the 13 inch and 15 Retina Macbook Pros have amazing high resolution screens. If you are building web applications, you need to be able to test your work on “retina” displays and this is the quickest way of doing it, without getting a 4K monitor. Most retina displays in the wild are on Apple devices too (iPad, iPhone etc). The ridiculous resolution of the 15 model (2880×1800!) even enables you to test your apps and sites in Windows at up to 200% DPI scaling without an external monitor.

Reason 5: The Apple Store retail support network

Say what you want about the “cult of Mac”, they have retail support available in almost every major city on earth through their Apple Store network. If you need a new charger or accessory, you can walk in and buy one from an actual shop. If you have a problem, you can go in and (sometimes pay for) a repair – not phone an offshore support line and get a box posted to you. Acer, Dell, Samsung etc do not have the meatspace reach of Apple (unless you like to shop at PC World). The thought of having to buy a replacement AC adaptor for a “Acer Aspire S3-392G” machine at short notice is quite scary. If you have a preference for the US keyboard layout, a Mac is the only laptop stocked in retail available with a selection of keyboard layouts – when in Tokyo, Apple were the only people in the whole city that stocked laptops with US keyboards.

Reason 6: The .NET Framework is becoming multiplatform

In case you missed the news, Microsoft have committed to making the core of the next .NET Framework version work on both Linux and OSX, instead of leaving it up to Mono to provide an implementation. This is a direct result of the leaders in the .NET space stretching C# out of it’s comfort zone of Windows and Visual Studio. ASP.NET vNext supports development using Sublime Text on a Mac. The OmniSharp project brings C# support to Sublime text, Emacs and Atom. Visual Studio is not required. From 2016 onwards, I expect ASP.NET vNext to start featuring in C# developer job ads, and they are going to expect you to be able to at least run applications without Visual Studio. Deployment of greenfield applications to Linux servers using Docker containers will start becoming the norm from next year.

In Summary

I haven’t even touched on the other reasons why this is now my preferred setup – the now native SMB 2.0 support in OSX, OneNote finally on Mac, the quality of the keyboards and trackpads – but using non-Apple laptops is painful sometimes. I was once issued the 2nd generation of the fabled Lenovo Thinkpad line of X1 Carbons that got rid of the function keys and replaced them with comedy touch “context sensitive media buttons” (the 3rd gen reversed this bonkers choice). My last two companies have eventually managed to sort out a top of the line 15 inch Retina Macbook Pro as my corporate machine and thanks to the proliferation of Macs in the corporate setting, IT departments are slowly warming up to the idea.

If you have any questions about how I use the above, drop me a line in the comments or send me an email and I’ll be happy to respond.

20 Responses to “Why use a Macbook Pro as a Windows .NET Software Developer (Updated)”

  1. Mark Brown

    Hi, I’m a dev and I have a powerful windows desktop machine and a Macbook Pro 13″ Retina (mid-2014). It only has 8gb… how well will that run parallels for Visual Studio development? Is it worth buying?

  2. Hi Mark!

    It will work fine – thats the same model I use. Install Windows under Bootcamp and just give it 4GB for the VM when in Parallels – the only thing you’ll be running will be VS and a web browser. If you need more power you can reboot into native Windows to use the whole 8GB.

  3. I use Parallels 10 un a Mid 2012 and works perfectly with 16 mb RAM. I use visual estudio 2013 community edition which is free and I can emulate Windows Phone 8

  4. Mark — I am using mid-2012 MBP w/ 8Gb, 2.9Ghz Core i7 and 512Gb SSD drive. 8Gb RAM is plenty and by upgrading this unit to SSD, Visual Studio 2013 Pro running Win 10 or Win 8.1 on top of Parallels Desktop 10 provides almost instantaneous response. SSD HD is key. I don’t bother with Bootcamp because simultaneous Windows and OS X is just too much of an advantage as pointed out above.

  5. Bootcamp is useful because you can reboot into Windows and get 100% of the machine’s power for gaming etc.

  6. Mark – Thanks so much for your post. Very useful. I’m currently on a desktop machine (core i7, 16GB of Ram, SSD disk) and want to switch to Mac. I just wonder if the 13″ model would work (I need to do development in Visual Studio) and I would like to run Windows along with Mac.

    If I’m using Parallels, do I get the option to run Windows 8 natively (in case I need more resources)?

    I’m also considering a 15″ model but I’m not very happy with the price tag (and reduced portability) and wonder if I’d take advantage of the extra power. Do I need the 16GB of RAM or 8GB would be enough?

    Thanks a lot.
    Andrea

  7. Hi Mark,

    I’m going to buy a Mac Book Pro 15″ 16 GB RAM with 256 GB SSD. I need two partitions for iOS and Windows. I like your idea to use Parallels, but I have a question.

    What is the best partition size option?

    As you, I’m a developer that use Windows 8.1 with Visual Studio 2015 Professional, SQL Server Database, mobile emulators, etc.. I don’t know which partitions size are necessary for iOS and Parallels And the other hand Windows 8.1 and Visual Studio.

    Can you help me?

    Thanks…
    Jesús Mostajo

  8. Bill Dagg

    “You’ll also miss out on the wider community and the rest of the development world – Javascript, Ruby, Python and Scala developers all use Unix-based operating systems to do their work, not Windows, and most of the time their preferred platform is OS X.”

    Firstly, JavaScript developers all use Unix-based Operating System do they? News to me. Guess I’ve been doing it all wrong.

    Furthermore, what difference does it make what platform they use to develop on when it comes to questions about a particular technology? The answers to JavaScript questions, for example, do not change based on the development platform used.

    This whole statement is rubbish.

  9. Hi I am thinking of the 13 inch Macbook retina for C#.Net, PHP, Android iOS and MySQL. I like your review. I think I will go ahead and buy now. And With the money saved over a 15″ mac I can buy a 4K monitor perhaps 🙂

  10. Hi Mark,

    I’m .NET developer, and work mostly web development with NodeJS, Javascript and 2 main IDE Sublime, Visual studio. I’m not using Visual Studio lately as just use Nodejs as Full Stack. So I’m going to buy Macbook to fullfil web development and use parallel to develop .NET (sometimes) as well as deploy to Azure.

    Can you recommend me which version 13 inch or 15 inch I should buy ? how much RAM needed, 8GB is enough to run parallel ?

  11. Hi Mark,

    I use dot Net Framework application. I need .Net Framework 1.xx instead of latest version 4.xxx.
    I am worrying .net framework 1.xx can be supported in window under bootcamp.

  12. Hi Mark,
    Thank you for providing this info. I myself live, eat, and sleep in Windows world and it is the only reason I still use a windows based laptop. But I’m considering switching to Mac book pro 15.
    What do you recommend to a complete Mac novice?
    What about having SQL db on it?
    I develop mainly in Visual Studio or Android Studio
    Thanks

  13. I do it on the same way to with my Macbook Air 13″. Okay, it’s _just_ an Air but I have to say it’s really enough (with 8GB RAM) to run 3 VM-s parallel. Opening document, creating huge amount classes in VS.NET and managing huge solutions is nice with it.

  14. “What do you recommend to a complete Mac novice?
    What about having SQL db on it?”

    Runs without any problam in VM.

  15. Hi,

    I need to buy myself a new laptop and now that Microsoft bought Xamarin and vNext is cross platform I was thinking to buy a Mac. The performance of the laptop is good and with Parallel I think is really amazing to run the 2 OS at the same times.

    My question is if 256 GB of flash drive is enough storage capacity or I should buy the 512 GB ??? The price difference is quite big just for more storage capacity.

    Thanks

  16. Roberts

    Hey, yeah first tnx you made my choice clear for mac 😉 as main machine for CS student 🙂 But as i don’t have much muny for this kind off fun is 128gb ssd worth going ? If i will be mostly stooring my data in external hard drive

  17. I’ve recently switched to C# development, after developing in Java for over 10 years, and being as Mac guy, I should have read this article before getting a Dell XPS 13 for C# development. 😁

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>