Mac Hardware For A .NET Developer
I have been considering purchasing a MacBook Pro (MBP) for development for some time now. Recently, work has approved an iMac (27” 2.8Ghz Quad-Core Intel Core i7, 8GB RAM) for my primary development workstation. That was just what I needed to tip the balance in my MBP purchasing decision.
I have never owned a machine where the primary operating system was not a version of Windows. This is not an “I have had it with Windows moment”. In fact, I rather enjoy the Windows 7 experience. I have become quite comfortable with Windows and am proficient at the low level and high level configuration. As such I was a bit apprehensive about the change, but so far things are going extremely well.
MacBook Pro Configuration
The “Intel inside” hardware provides a nice platform for those of us coming from a Windows only experience. Apple has made a very nice machine in the MBP that is quite capable. The ultimate security blanket for this long time Windows user is knowing that if my OSX experience is not satisfactory I can always repave the machine and use it as a Windows 7 box.
I have been a professional developer primarily using the Microsoft stack for quite awhile. On a daily basis, I am knee deep (or maybe up to neck) in MFC, C# and ASP.NET code. I also dabble quite a bit with this technology on my blog. This sets a requirement that the laptop must support being able to develop with these technologies.
The reason for the initial desire of getting a MBP was to dabble (and maybe more than dabble) in developing native applications for the iPad / iPhone. The iPad is a nice platform for presenting web-based data. I am all for doing what you can using HTML, CSS and JavaScript. However, there are some applications that would benefit from a native application.
I recently purchased a Netbook and love the portability. This laptop does not need to be super portable. I would rather have a bit more screen real-estate to enable side-by-side windows.
For these reasons, I settled in on the following specs for the MBP hardware:
- MacBook Pro 15-inch base model
- 8GB 1066MHz DDR3 SDRAM
- 500GB Serial ATA Drive @ 7200 rpm
- 15-inch Hi-Res Glossy Widescreen Display
The 8GB of RAM is great for being able to run virtual machines. I like the speed that Solid State Drives (SSD) offer, but could not justify the cost. I did select the faster rpm drive option. I also paid a bit more for the extra pixels. I did not go with the anti-glare screen. After checking that out at the Apple store, I am a bit concerned with the durability. The surface of the anti-glare screen appeared to be able to be scratched. The glossy model seemed much less sensitive.
In addition to this hardware, I bought a copy of Parallels version 5. Parallels is virtualization software that can create and run virtual machines. The hardware above is beefy enough to run Window 7 in a virtual machine with outstanding performance. The following is the Windows Experience Index for the virtual machine.
Not bad for a virtual machine image. I have not had a chance to Boot Camp (OSX’s dual boot manager) Windows. The numbers will only improve directly running on the hardware. Eventually, my plan is to Boot Camp Windows, but spend most of my time running that Boot Camp partition in a virtual machine using Parallels. That way I have one Windows install that can run directly on the hardware (via Boot Camp) or in a virtual machine (via Parallels).
Developer Goodness
As a .NET dev, the first thing I did after un-boxing was to setup my dev environment. Parallels is very easy to use. Simple navigate to the the installation ISO and it does the rest. The powerful hardware, combined with the fast installation time of Windows 7 64 bit resulted in an install that seemed to only take minutes. I was working during the installation, so the exact time alludes me….but it was fast. To add a bit of protection I installed Microsoft Security Essentials anti-virus.
I then installed Visual Studio 2010. Again, the installation went without a hitch and was super fast. Finally, I loaded up the rest of my “developer essentials”. All the installations were un-eventful. Since I was installing into a Windows 7 image, I didn’t really expect any ‘events’ but you never know until you try.
On the flip-side, I signed up as a Mac developer and downloaded the Apple development kit. I have not had a chance to start learning this yet. I do have a nice iPad development book that I have queued up.
In addition, I have been trying to learn Ruby on Rails via a number of on-line tutorials / samples. While doing this in Windows I discovered that many of the tutorials simply did not work as written. It was frustrating to try to learn, but not getting progress because my shell commands would not work as written. I am happy to say that the Ruby on Rails tutorials work much better in OSX.
Finally, I am super pumped up that the MBP hardware will allow me to develop for *any* platform (Windows, Mac, iPad, iPhone, Linux…etc). I really feel this is the best of all worlds.
The Good and the Bad
There are some real positives about the switch. I am pleased that Apple makes quality hardware. The MBP is a seriously well designed machine. As discussed above, the hardware is very capable. Screen resolution is great. I will always prefer a dual monitor approach, but there is adequate screen space for side-by-side windows. I will eventually, work on docking the MBP to be able to use dual monitors. I have not looked into that yet. As of now, I am forcing myself to use the MBP in its native state (no external mouse, keyboard, or monitor). This forces me to learn the features that OSX and the MBP have to offer.
The trackpad is AWESOME. I especially like the multi-touch gestures for scrolling. I haven’t used a scroll bar since learning this gesture. It is also a decent size. Plenty of space for long gestures (dragging a window from one side to another).
I am also finding that some things are “built into” OSX that are not in Windows. A good example of this is screen captures. Seems like in Windows I needed a separate application to facilitate all the features I normally want from a screen capture experience. In OSX, that is built in.
The
re are some things that take a bit of time to get used to. All of these fall into the category of Window-centric features that are not quite the same or unavailable on OSX or the MBP. These are not horrible, they just go against all my years of muscle memory. Even after a week, I am learning new ways to accomplish the same things.
One of the things that you will notice right away is the key-stroke mapping is not the same. In fact the keyboard doesn’t even have a ‘Windows’ key (go figure). So simple things that I took for granted in the Windows world (CTRL-C for copy and CTRL-V for paste) have been remapped (COMMAND-C for copy and COMMAND-V for paste). Not a huge deal, just a bit of learning. This really shows up when I am in the text TextMate and trying to navigate, select, move and manipulate the document. In Notepad++, I am much more proficient with the keyboard.
I have also noticed that Windows has a few features that I wish OSX had. The biggest one is being able to size windows by grabbing on of the edges. With OSX, I can only grab the lower-right hand corner to size manually. Windows 7 also introduced the ability to move windows via the ‘Windows / arrow key combinations”, I really miss that feature. I did find an application for OSX that does provide the ability to move windows via key strokes.
Summary
I am extremely pleased with the MBP. Granted this setup is a bit pricey, but the flexibility it provides is, in my opinion, worth the cost. I have a lot of new space to explore in OSX and XCode. For instance, for many years in Windows I have used Notepad++ as my all-purpose text editor. I am still searching for that equivalent in the OSX world. Is that Textmate? or Coda? or something else?
If you care to share any of your experience with OSX and MBP I would love to hear from you. I am especially interested in how other .NET devs configure their MBPs. Also, if anyone has suggestions for a blog writing application for OSX I would love to hear. I am using Windows Live Writer (which I love) in Parallels ‘crystal mode’.
This is an interesting article. I am a .Net developer in the initial stages of looking at options for a new laptop/notebook. I currently have a Desktop PC (Windows 7), Samsung NC10 Netbook (Windows 7) and my work laptop which is currently running Windows 7 also. I have considered the MacBook Pro route but in all honesty I am not a fan of the MacOS and feel I would spend most if not all my time in Windows. But I do know the Apple Hardware is robust…
I have been looking at several options:
MacBook Pro
HP Envy 14
Samsung Series 9 Notebook
Sony Notebook
So I am really not sure what route to go down. Do I look at replacing my desktop pc… if so I would need a notebook to have semi decent graphics as I do play the odd game.
Now having your MBP for a few months now – how have you been getting on with it? Have you encountered any problems?
Thanks.
Mark
Hi Mark,
I have now been using my Mac coming up on a year now. It by far is the best laptop I have ever had. I am glad I went with the 15 inch. Any smaller would be an issue. With 15 inches, you can get side by side windows in a usable fashion. Having the ability to switch between OSX and WIn7 is extremely nice for me. At work I have an iMac and use Parallels for Win7. It really is a nice setup. A bit more pricey. My next computer will either be a 17″ Macbook Pro or an iMac for the home.
Bob ‘the apple fan boy’
Good Article Bob, I just ordered a MBP and will be doing .NET development. What kind of resources did you dedicate to your VM?
Thanks!