IntelliMirror Hints in Logo Docs

A friend e-mailed me a tiny video clip called Angry.mpg, 20 seconds of surveillance camera footage depicting a cubicle worker blowing a fuse. He temporarily loses patience with his PC and ends up batting his CRT into the hall with mighty swing of his ergonomic keyboard.

After a recent bout of software re-installation following a PC upgrade, the angry cubicle worker and I were brothers in arms. Furrowing my brow, I wondered if software was really getting easier to manage. Other articles in ENT have pointed to the frailty inherent in the Windows NT Registry, a single point of failure for all of the software on your machine. My frustration with the registry was even more basic. On UNIX machines, my network "home" directory easily followed me from machine to machine, and user-specific configurations were simply managed in my personal subdirectories. Even simple old DOS programs could at least be moved to a new directory without corrupting the whole dang system. Have Windows programmers been led astray, I wondered, into supporting this invasive octopus known as the Windows NT or Windows Registry?

IntelliMirror is Bill Gates' future solution for transferring a user's software environment intelligently from machine to machine. Because installing and uninstalling Windows applications is still a worrisome process, I was determined to learn about the extensions to Win32 that would enable such slick behavior. That, however, will have to wait. I dug through a lot of Microsoft Corp. marketing hype without finding any answers. The final document to which the Microsoft Web site referred me was the Designed for NT5 and Windows 98 Logo requirements, geared toward programmers who wish to sport the Designed for Windows logo on their packaging. The Designed for Windows logo requirements apply to both Windows 98 and Windows NT. Although IntelliMirror was mentioned in the trademark section, the hundred-plus pages of Windows logo requirements and Best Practices didn't once mention IntelliMirror. The logo document, however, has merit of its own.

As an enterprise Windows developer, I don't have much need for a Windows logo certification. Logo certification is aimed at shrink-wrap software companies such as Intuit and Symantec. Even the more database-oriented "BackOffice" certification program will be of little interest to those of us who labor on custom vertical and internal solutions for large corporations. Still, knowledge of the logo programs can help us gear our solutions for future operating system and application capabilities and ride the wave of features we know are coming our way.

Hidden among banal prerequisites to get Windows logo certification, such as "Support AutoPlay of CD-ROMs," are some truly helpful suggestions. Among the sage advice offered to developers is to stop sharing (potentially incompatible) DLLs among applications. This is the cause of numerous nasty bugs. Logo certification requires that only core operating system DLLs can reside in the System directory. Sharing common DLLs might have made sense in the days of 40-MB hard drives, but the cost to store the average DLL today is about a penny -- not worth destabilizing a customer's system.

Explanations on the appropriate use of the registry offer both shrink-wrap and enterprise developers some useful guidelines. The requirements for various levels of telephony API support will doubtless be interesting to vertical middleware developers. I was surprised to learn that developers should provide a silent migration DLL to handle any changes required during an operating system upgrade. A dozen tips for leveraging the new COM+ extensions give me confidence in Microsoft's commitment to the new specification.

Throughout the myriad requirements, Microsoft explains testing techniques to ensure compliance with the logo program. These tests can be added to your own repertoire whenever you do work in various Windows subsystems, saving you the effort of devising your own test plan.

Finally, buried deep in the Directory Services recommendations, I think I may have glimpsed an IntelliMirror enabler, hidden as this recommendation: "Store only machine-specific configuration information in the registry. ... Global application parameters should be published in the Configuration/Services container." Well, it's not exactly a smoking gun.

If you'd like to get your hands on this dry but informative document, visit -- Eric Binary Anderson is a senior technical lead at Automatic Data Processing (San Ramon, Calif.) and has his own consulting business, Binary Solutions. Contact him at