Windows 7 is my primary desktop but lately the amount of iPhone work I've been doing has prompted me to swap hardware so I could have my Mac Xcode development environment with me when I'm mobile.

Thus, came the need to figure out: 1) what would it take to set up a MacBook Pro with Windows as a virtualised guest OS, and 2) what would it take for me to comfortably operate with a foot in both the Windows and Mac OS X worlds. Given my experience so far, I thought I'd share with you some important questions, what tools I've used and the lessons learned I've gained during this "experiment".

Is Your Hardware Adequate?

While I can't say I've tested running Windows virtualised on Macs with a wide range of hardware configurations, common sense says you'll probably want 4MB of ram so you can allocate around 1GB or so to Windows running under your virtualisation software. If you're doing less in Windows while running it as a guest OS under Mac OS X, then you might be able to get by with 2GB of ram, but I would recommend having 4GB or more ram in your Mac.

CPU speed?

My experience on other platforms running VMware, Hyper-V and Xen is that CPU power often isn't the bottleneck with servers running virtualised instances (though there can be exceptions). Unless you're doing heavy CPU crunching applications on either Mac OS X or the guest Windows OS, ram and disk I/O should be your first consideration.

VMware Fusion 3 or Parallels Desktop 5?

The next decision to make is what virtualization software will you run. Frankly, I've only run VMware Fusion 3 under Mac OS X and I haven't had an opportunity to test the new Parallels Desktop 5. Some users on the web say Parallels is faster, primarily in startup time, and some even report it's up to 14% faster. Those seem to be folks who prefer Parallels anyway (my guess), not independent reviews. I'm just as biased about using VMware, so all things being equally biased, VMware's what I've chosen to use. And I don't have anything against Parallels - it may work just fine for your needs. There are some capabilities in VMware Fusion that I find very compelling. Read on.

Bootcamp or Virtual Disk Image (vmdk)?

For my own use I wanted both the fastest disk access and the option to fully boot into Windows. Bootcamp is the option to use in both cases. VMware Fusion treats the Bootcamp partition just like any other vmdk disk image file, the biggest difference being that you must create a physical partition on your Mac's hard drive using the Mac's Bootcamp utility. That doesn't prevent you from using other vmdk's with additional guest operating systems (Windows, Linux, etc.) if you so chose.

Migrate your PC or new installation?

We all know Windows loves to bog itself down over time with mysterious registry entries, startup programs and services, and left behind files from days gone by. If you want the best performance, start out with a fresh Windows installation. That's the approach I took to give myself the best performance from the Windows guest OS. VMware Fusion also has a Migrate your PC feature that will move your applications, settings and documents. Or copy your files to a USB drive, connect the USB drive to your Mac, and access it from Windows running under VMware Fusion.

Sharing files between Windows and Mac

If your Bootcamp partition is larger than 32GB then you'll have to format it FAT32, a disk format Macs can't write to so that brings up the issue of not only moving files to your Mac but sharing them between Windows and Mac applications. This is especially applicable between Microsoft Office on Windows and Office for the Mac, which do a pretty decent job of maintaining compatibility, btw.

Many online backup services have expanded their offering to include synchronisation between your PC and Mac devices. SugarSync, Synchronicity, Drop.io, Apple MobileMe, Microsoft Live Mesh, Office Live Workspace, and many others do this. I chose to use Microsoft's Live Sync (formerly FolderShare), free software that tells devices what folders are shared between which devices. A client installed on Mac OS X and on your Windows guest OS will keep files on both systems in sync via P2P. I also sync to a separate PC to serve as one of my backups for these files. This is also a great solution for moving files from a PC to a Mac or back to a PC. You have a lot of options for sharing files. Office Mac likes SharePoint and Office Live Space so those may be good options for you too.

Outlook for email

The thought of migrating from Outlook to some other email client is not one I like to think about much. All my mail, contacts, etc, in Outlook is only one factor. I prefer Outlook, I'm testing new versions like the Outlook 2010 beta, and I want to take advantage of the integration between Outlook and SharePoint (including SharePoint 2010.) Plus, Mac users always seem to complain about Entourage (Office Mac's email client) and all the issues with connecting it to Exchange (especially if you're on Exchange 2003.)

Running Outlook on Windows using VMware Fusion is great on several accounts, thanks to some important features in VMware Fusion. First is something called Unity. Unity lets Windows applications running under VMware Fusion appear in their own window on the Mac desktop, rather than being confined to the virtualised Windows desktop. Outlook still has all the Windows look and feel but you operate and manage it from your Mac desktop. Unity does this for all Windows applications. Outlook (and other Windows apps) can be added to the Mac desktop Doc, just like Mac applications. Windows applications with Unity enabled can be moved to Spaces, just like other Mac apps. I didn't think I'd use Unity that much but it turns out I run all my Windows applications on the Mac this way. Very handy.

When operating in Unity mode, you no longer have to bring up the Windows desktop to launch applications, open the control panel, bring up a DOS command line session, open the My Documents folder, restart Windows, etc. A VMware Fusion drop down menu on the Apple menubar gives you access to these Windows capabilities and more. The menu also lets you switch between multiple running virtual machines and adjust their VMware settings.

Another capability VMware Fusion offers is the ability to map file types to the applications you want launched. Want to open Word documents using Office Mac's Word instead of Word installed on your Windows bootcamp partition? No problem. Now opening a document from Outlook or Windows Explorer will launch the app on the operating system you prefer.

Other applications that I use a great deal are Adobe's products; PhotoShop, DreamWeaver, Acrobat, etc. The file compatibility between the Mac and Windows versions has been excellent. I haven't tried to run graphic intensive apps like PhotoShop on the Windows guest OS so I can't report as to the practicality of that scenario.

Conclusion

I'm surprised to hear this from myself, but I'm finding this is a very workable setup. Performance is great, with minimal impact to Office applications running under in a Windows guest OS on the Mac. Is it the full Mac experience? No, but that's not what I seek. Compatibility with a Windows environment is top of the list, and while many might see using Outlook instead of Entourage or Mac Mail as a gross misuse of a Mac, I see it as a very viable and useful solution for Macs living in businesses that run Windows.