May 05, 2009, 11:45 AM — An October surprise -- that's how many are interpreting Microsoft's 11th-hour revelation that it will be providing a virtualized copy of Windows XP as a free compatibility add-on to Windows 7 Professional, Ultimate, and Enterprise editions.
The idea is to entice potential upgrade fence-sitters into taking the Windows 7 plunge by addressing one of the more widely cited concerns about the product: It will break legacy, Windows XP-era applications. And based on the amount of buzz surrounding this unexpected new feature, it would seem that Microsoft has hit a home run with its Windows XP mode announcement.
Yet I fear that much of this excitement will turn to disappointment as IT shops begin to understand just what XP mode really is and how limiting its Virtual PC-based underpinnings can be. Simply put, XP mode is a bit of a kludge, a half-baked, half-measure of a solution cobbled together from various disjointed Microsoft technologies. Compared to something like Mac OS X, which famously introduced one of the more elegant legacy compatibility solutions in the form of its integrated Mac OS 9-era application support, Windows 7's XP mode is downright homely.
Before I dive into my reasons for disliking Windows XP mode, it might be helpful to first review exactly what it is and how it works. Simply put, XP mode is a virtual machine image file that contains a fully licensed and activated copy of Windows XP with Service Pack 3 installed. The image is shipped in Microsoft's Virtual Hard Disk (VHD) format and is compatible with Windows Virtual PC 7, the company's new host-based desktop virtualization tool.
Virtual PC to the rescue
Windows Virtual PC 7 is an update to the company's anemic Virtual PC 2007, a product that I panned more than a year ago in a four-way shoot-out with VMware Workstation, Parallels Workstation, and VirtualBox. The new version adds much-needed USB device support, and it claims improved performance and better integration with host system hardware resources, such as smart card readers.
Getting started with XP mode is remarkably straightforward. The first step is to install Windows Virtual PC 7 by downloading and executing its corresponding Windows Update package from Microsoft's Web site. Next, you install the Virtual Windows XP package, which copies over the necessary VHD components and registers the VM with Windows Virtual PC 7.
Once the updates are in place (and the prerequisite Windows reboot cycle is completed), you simply launch Virtual Windows XP from the Start menu. If this is your first time starting the VM, you're asked some basic Windows XP configuration questions, like how to handle automatic updates. Because Virtual Windows XP encapsulates a complete installation of Windows XP within a VM image, it retains its own, separate set of system-wide configuration and management tools. These include Windows Update, the Windows Firewall service, and related OS-level resources -- something to keep in mind as you evaluate the support and maintenance implications of deploying this add-on.
Get past the initial setup Q&A and you're presented with a window containing a representation of the virtualized Windows XP's desktop. You interact with this desktop just like you would any physical Windows XP system: by clicking on the Start menu to launch applications, access Windows Explorer, and so on. And thanks to the magic of Microsoft's Remote Desktop Protocol (yes, RDP -- you're actually viewing the virtualized desktop as if it were a remote PC), many of the virtual environment's attributes bleed through to your Windows 7 host.
Applications running in Windows XP Mode, such as the instance of Microsoft Word in the foreground, weave nearly seamlessly into the native Windows 7 desktop. They lack stylistic touches and Aero effects that Windows 7 brings to native apps, such as the instance of Microsoft Word in the background.
For example, alert icons for Windows XP's Security Center appear in the tray notification area of Windows 7, a behavior that, frankly, can be quite disconcerting until you learn to differentiate them from Windows 7's own notifications. (Hint: The newer Windows no longer uses colored icons.) But the bleeding doesn't stop there. Any applications that you install into the Windows XP VM, and that register their application shortcuts to the Start Menu's All Users group, will be "automagically" exposed through the Windows 7 host PC's local Start menu. Click one of these exposed shortcuts and Windows Virtual PC 7 launches the application from inside the Windows XP VM, rendering just that application's UI in a kind of seamless window on the Windows 7 desktop.
Of course, if you've worked with Parallels' Coherence mode or VMware's Unity mechanism, you've already seen this sort of dynamic screen-scraping technology in action. Microsoft is simply playing catch-up, using the ever-expanding feature set of its venerable RDP client to cut a few corners along the way. (The aforementioned seamless application publishing mechanism was introduced with RDP 6.0.)
Local but remote
Unfortunately, Windows Virtual PC 7's reliance on this very same RDP engine ultimately undermines the XP mode user experience. RDP is optimized for remote computing. As such, Windows Virtual PC 7 lacks the host-to-VM integration features, including drag-and-drop support, that make VMware, Parallels, and even its immediate predecessor, Virtual PC 2007, so easy to work with. RDP is also a bit sluggish when rendering virtualized applications. There's a great deal of shearing and other on-screen artifacts as you move, resize, and interact with Windows XP applications running in seamless mode, and none of the new Windows 7 Aero effects (snap, shake, thumbnail previews) work with these applications. All of this is fine if you're dealing with a remote Terminal Services session. However, it quickly becomes distracting when you're trying to switch between a mixture of native Windows 7 and virtualized Window XP applications.
Then there is the issue of application performance. Microsoft has made a point of emphasizing the new, multithreaded architecture of Windows Virtual PC 7 and how it improves VM throughput. However, my preliminary tests (Virtual PC 7 is still beta) using OfficeBench show that applications run a full 30 percent slower under Virtual Windows XP than they do under Windows XP installed natively on the same hardware. All of which means that, if you were hoping to upgrade to Windows 7 and use Windows XP mode to run your legacy applications at full speed and with complete fidelity, you're in for a disappointment. (See my blog for more on XP mode's glitches and annoyances.)
In fact, Windows XP mode is more evolutionary than revolutionary. It takes a pair of previously unrelated Microsoft technologies (Virtual PC, RDP) and stitches them together to make a quasi-workable compatibility box for those rare programs that don't execute reliably under Windows 7's native runtime. In my opinion, Microsoft would have done better by enhancing and extending its application virtualization platform, App-V. But that's a discussion for another forum.
Overall, the XP mode end-user experience is uneven, with plenty of opportunities for novices to get confused as they navigate between physical and virtual applications and resources. Add to this the support requirements of maintaining two completely disparate OS images per system, and XP mode may be more trouble than it's worth.
Still, there's something alluring about getting a free, licensed copy of Windows XP on which to run your troublesome legacy apps. Kudos to Microsoft for at least trying to address the legacy compatibility issue, even if the resulting solution is at best a kind of inelegant kludge.