Friday, December 30, 2011

Using a Mac for Visual Studio 2010 Development

For most of my development career I have exclusively used PCs. Things have changed now. My main PC was over four years old, limited to 4 GB and was painfully slow to work on, I needed to upgrade. Since my platforms were Android, iOS and the web, I needed to buy a Mac.  I had already had a Mac Mini for iOS development and liked it. I decided to replace my main system with a MacBook Pro.

The machine itself is sweet. It is an early 2011, 15" MacBook Pro. I bought it from Amazon discounted since the newer machine had just been released. Since I am an Amazon Prime member, shipping was free. And as an added bonus, I was able to use my American Express card reward points for an additional discount of 70 dollars. I bought it with 4 GB of ram but did the upgrade myself to 8 GB and 256 GB SSD. The upgrade was super easy and only took about 30 minutes to do. I bought a kit from iFixIt.com.

The problem was the back-end. I do all of my server development in either WCF or ASP.NET MVC. I had no desire to abandon all of my Microsoft knowledge. Since Mac are also Intel based I decided to try creating a virtual PC using software. There are several virtualization apps available, some are even free. But after a long weekend of reading every review I could find, I bought Parallels Desktop 7. It ROCKS! It is an amazing piece of software. The number one thing I like about it is that it has a mode called coherence, which makes PC apps appear on the Mac desktop just like native apps. I can navigate through the Mac file system from the PC too. They also seemed to have thoroughly optimized it. It seems only a hair or two slower than using a PC.

On my home WiFi network, from my iPhone, Android Nexus One, iPhone Simulator, Android Emulator, or any browser, I am able to see my IIS 7.5 server created with Visual Studio 2010. I can publish with a button click locally or to my Discount ASP.NET hosted web site, all from my Mac. In my next post I will give details on how I set everything up.