Application Specification for Microsoft Windows 2000 for Desktop Applications

Design Guide for Building Business Applications

Version 1.0a
January 21, 2000

Microsoft Corporation

Summary: The "Application Specification for Microsoft Windows 2000 for Desktop Applications: Design Guide for Building Business Applications" was developed by Microsoft in cooperation with customers and third-party party developers to identify the technical definition of the model business application for Windows 2000. This specification will help software developers take advantage of the new technologies in Windows 2000 so that your application is more manageable, more reliable, and reduces cost of ownership for your customers. It is intended for developers of all kinds, including independent software vendors and corporate application developers. (87 printed pages)

CONTENTS

Acknowledgments
Welcome
Checklists for Windows Certification
Chapter 1: Windows Fundamentals
Chapter 2: Windows Install Service
Chapter 3: Component Sharing
Chapter 4: Data and Settings Management
Chapter 5: User Interface Fundamentals
Chapter 6: OnNow/ACPI Support
Chapter 7: Application Migration
Appendix A: Best Practices
Appendix B: Product Distribution Issues
Appendix C: Development Tools
Appendix D: International and Localized Versions
Appendix E: Revision History
Glossary

Acknowledgments

Microsoft wishes to thank the following organizations for their technical review, feedback, and consideration in the drafting of this specification. Their feedback was invaluable to help guide the content of this specification to better meet the needs of enterprise customers.

Welcome

The "Application Specification for Microsoft Windows 2000 for Desktop Applications: Design Guide for Building Business Applications" was developed by Microsoft® in cooperation with customers and 3rd party developers to identify the technical definition of the model business application for Windows® 2000. This specification will help software developers take advantage of the new technologies in Windows 2000 so that your application is more manageable, more reliable, and reduces cost of ownership for your customers. It is intended for developers of all kinds, including independent software vendors and corporate application developers.

The specification has two versions. This document details the requirements for desktop applications. There is a similar specification for building server applications, available at: http://msdn.microsoft.com/certification/default.asp.

Top Reasons Your Customers Will Benefit

An application that meets this specification:

Your customers will get the greatest benefits when running your application on Windows 2000 Professional. The same application can also run on down-level operating systems (e.g. Windows® NT Workstation 4.0, Windows® 98, and Windows® 95). Many of these benefits will also accrue to customers running your application on down-level operating systems.

Certified for Windows

The Application Specification for Windows 2000 defines the technical requirements for applications to earn the "Certified for Microsoft Windows" logo. Applications may carry the "Certified for Microsoft Windows" logo once they have passed compliance testing and have executed a logo license agreement with Microsoft. This logo lets your customers know that your application offers a high quality computing experience on Windows.

Applications that comply with this Desktop Specification may be Certified for any of the following operating systems:

You may choose from the combinations of platforms as shown in the logos below in Figure 1. Note that Windows 2000 Professional is always included.

Figure 1. Windows logos

The logo you receive will indicate the version(s) of Windows for which your product is certified. The checklist on the next page shows which parts of the specification are required for Certification on each platform.

Compliance testing for the Certified for Windows program is performed by VeriTest, an independent testing lab, using the latest released versions of the operating systems, including any service packs. Currently these are:

For additional information on how to test for the "Certified for Windows" logo, see: www.veritest.com/mslogos/windows2000/.

References

Resource Address
"Certified for Windows" Logo Program http://msdn.microsoft.com/certification/default.asp
Server Application Specification for Windows 2000 http://msdn.microsoft.com/library/specs/w2kserve.htm
Certified for Windows information e-mail Winlogo@microsoft.com
VeriTest Logo site www.veritest.com/mslogos/windows2000/
VeriTest Logo Lab email LogoLab@veritest.com
Windows 2000 Developer Information http://msdn.microsoft.com/windows2000
Knowledge Base http://search.support.microsoft.com/kb/c.asp
Microsoft Platform SDK (Software Developer Kit) (Documents the Win32® and Win64™ application programming interfaces [APIs]) Provided with Microsoft Developer Network (MSDN) Professional Subscription. To subscribe, visit: http://msdn.microsoft.com/subscriptions

Checklists for Windows Certification

Win
95
Win
98
NT
W4
Win
2000
Windows Fundamentals
X X X X 1.1 Perform primary functionality and maintain stability
X X X X 1.2 Provide 32-bit components and document any 16-bit code
X X X X 1.3 Support Long File Names and UNC paths
X X X X 1.4 Support printers with long names and UNC paths
    X X 1.5 Do not read from or write to Win.ini, System.ini, Autoexec.bat or Config.sys on any Windows operating system based on NT technology
X X X X 1.6 Ensure non-hidden files outside of your application directory have associated file-types with icons, descriptions, and actions
X X X X 1.7 Perform Windows version checking correctly
X X X X 1.8 Support AutoPlay of compact discs
      X 1.9 Any kernel mode drivers that your application installs must pass verification testing on Windows 2000
  X X X 1.10 Any hardware drivers included with your application must pass WHQL testing

Win
95
Win
98
NT
W4
Win
2000
Windows Installer Service
X X X X 2.1 Install using a Windows Installer-based package that passes validation testing
X X X X 2.2 Observe rules in componentization
X X X X 2.3 Identify shared components
X X X X 2.4 Install to Program Files by default
X X X X 2.5 Support Add/Remove Programs properly
X X X X 2.6 Ensure that your application supports advertising
X X X X 2.7 Ensure correct uninstall support

Win
95
Win
98
NT
W4
Win
2000
Component Sharing
      X 3.1 Do not attempt to replace files that are protected by Windows File Protection
  X   X 3.2 Component producers: Build side-by-side components
  X   X 3.3 Application developers: Consume and install side-by-side components
X X X X 3.4 Install any non side-by-side shared files to the correct locations

Win
95
Win
98
NT
W4
Win
2000
Data and Settings Management
X X X X 4.1 Default to My Documents for storage of user-created data
X X X X 4.2 Classify and store application data correctly
    X X 4.3 Degrade gracefully on access denied
    X X 4.4 Run in a secure Windows environment
      X 4.5 Adhere to system-level Group Policy settings
      X 4.6 Applications that create ADM files must properly store their ADM file settings in the registry

Win
95
Win
98
NT
W4
Win
2000
User Interface Fundamentals
X X X X 5.1 Support standard system size, color, font, & input settings
X X X X 5.2 Ensure compatibility with the High Contrast option
X X X X 5.3 Provide documented keyboard access to all features
X X X X 5.4 Expose the location of the keyboard focus
X X X X 5.5 Do not rely exclusively on sound
X X X X 5.6 Do not place shortcuts to documents, help, or uninstall in the Start Menu
  X   X 5.7 Support multiple monitors

Win
95
Win
98
NT
W4
Win
2000
OnNow/ACPI Support
  X   X 6.1 For applications allowed to prevent sleep when busy, indicate busy application status properly
  X   X 6.2 In the non-connected state, your application must allow sleep and resume normally
  X   X 6.3 In the connected state, handle sleep notifications properly
  X   X 6.4 Handle wake from normal sleep without losing data
  X   X 6.5 Handle wake from critical sleep properly

Win
95
Win
98
NT
W4
Win
2000
Application Migration
X X X   7.1 Application must continue to function after upgrade to Windows 2000 Professional without reinstall