In general, applications are highly optimized for a specific operating system or operating system version. Application compatibility problems can arise when users try to run their favorite programs on a newer version of the Microsoft® Windows® operating system, for example, than the one for which the application was originally written. This may be especially true when migrating many older applications to Windows XP, because it is built upon the foundation of Windows NT® and Windows 2000, and not the consumer-oriented line of operating systems (Windows 95, Windows 98, and Windows Millennium Edition).
Because Windows NT and Windows 2000 are business operating systems, many application developers with the home user in mind have chosen to write their programs solely for Windows 95 and its successors. Accordingly, migrating these applications to Windows XP must take into account the differences in the respective operating system application programming interfaces (APIs). Some of these differences are due to the new features of Windows XP, but some are due to the more stringent programming requirements of the Windows NT code base.
Applications that worked on earlier versions of Windows may fail to function properly on Windows XP for a variety of reasons—an application may expect older formats of Windows data, or it may expect user information, such as that in personal and temporary folders, to be in specific locations or formats. Problems such as these mostly apply to applications written for Windows 95, Windows 98, or Windows Me, but some applications written for Windows NT or Windows 2000 may also be affected.
To solve this problem and so enable a better user experience with legacy applications, Microsoft has integrated application compatibility technologies into Windows XP that come into play whenever an application is installed on the operating system, whether in the course of a system upgrade or during regular operations. This article first describes these technologies in detail and then outlines how they can be used and extended, in particular with the supplemental tools available in the Application Compatibility Toolkit.
|