Application Specification for Microsoft Windows 2000 Server
Design Guide for Building Server Applications
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.
American International Group, Inc.
The Baan Company
Carnegie Mellon University
Charles Schwab & Co., Inc.
Credit Suisse First Boston
Ford Motor Company
Massachusetts Institute of Technology
The Taylor Group
The University of Texas at Austin-The Graduate School of Business
Warburg Dillon Read
The Application Specification for Microsoft® Windows® 2000 was developed by Microsoft in cooperation with customers and third-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 multi-user server applications. A similar specification for building single-user-primarily desktop-applications, is available at http://msdn.microsoft.com/library/specs/w2kcli.htm.
Top reasons your customers will benefit
An application that meets this specification:
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 executed a logo license agreement with Microsoft. This logo lets your customers know that your application offers a high quality computing experience available on Windows.
Windows Certification for server applications is available for any of the following operating systems:
The logo you receive will indicate the version(s) of Windows for which your product is certified. Samples logos are shown in Figure 1.
Figure 1. Samples of Windows logos
Compliance testing for the Windows Certification program is performed by VeriTest, an independent testing lab. Compliance testing will be done using the latest released versions of Windows 2000, including any service packs.
For additional information on how to test for the "Certified for Windows" logo, see http://msdn.microsoft.com/certification/.
Note To simplify the logo programs for both customers and independent software vendors (ISVs), the requirements for the Windows 2000 Server logo will—over time—equal the core baseline Microsoft BackOffice® logo requirements. For more information on the current BackOffice logo, see BackOffice Logo Program.
Chapter 1. Windows Fundamentals
1.1 Perform primary functionality and maintain stability.
1.2 Provide 32-bit components and document any 16-bit code.
1.3 Support Long File Names (LFNs) and universal naming convention (UNC) paths.
1.4 Support printers with long names and UNC paths.
1.5 Do not read from or write to Win.ini, System.ini, Autoexec.bat or Config.sys.
1.6 Ensure that non-hidden files outside of your application directory have associated file types, and all file types have associated icons, descriptions and actions.
1.7 Perform Windows version-checking correctly.
1.8 Kernel mode drivers must pass verification testing.
1.9 Hardware drivers must pass Windows Hardware Quality Labs (WHQL) testing.
1.10 Client components must comply with the Desktop Application Specification for Windows 2000.
Chapter 2. Install//Uninstall
Note If your application uses the Windows Installer service, Requirements 2.2 through 2.8 in this Server Specification are superceded by Chapter 2 of the Desktop Application Specification. Note Desktop Requirement 2.6 is not required.
2.1 Do not attempt to replace files that are protected by Windows File Protection.
2.2 Do not overwrite non-proprietary files with older versions.
2.3 Install to Program Files by default.
2.4 Install shared files to the correct locations.
2.5 Refcount all shared application files during installation.
2.6 Support Add/Remove Programs properly.
2.7 Decrement the count on shared application files during uninstall.
2.8 Ensure correct uninstall.
Chapter 3. User Interface Fundamentals
Note 3.1 through 3.4 required only if any graphical UI is presented.
3.1 Support standard system size, color, font, and input settings.
3.2 Ensure compatibility with the High-Contrast option.
3.3 Provide documented keyboard access to all features.
3.4 Expose the location of the keyboard focus.
3.5 Do not place shortcuts to documents, help, or uninstall in the Start menu.
Chapter 4. Active Directory
4.1 Use Active Directory™ appropriately.
4.2 Document the storage and replication impact of your application.
4.3 Document your application's use of objects and attributes in the base schema.
4.4 Information stored in Active Directory must be "globally interesting."
4.5 Attribute values must not exceed 500KB in length, and the total object size must not exceed 1 MB.
4.6 If you extend the schema, adhere to Active Directory Schema extensibility rules.
Chapter 5. Security Services
5.1 Document services that require more than user-level privileges to run.
5.2 Win32 clients running in the context of a trusted domain account must support Single Sign-On (SSO).
Chapter 6. Cluster Service
Note Cluster Services is required for Advanced Server and Datacenter Certification. Windows 2000 Datacenter Server is on a different release schedule than the other Windows 2000 operating systems. Microsoft is currently evaluating whether additional requirements specific to Datacenter will be required for Certification on Windows 2000 Datacenter server.
6.1 Applications must be able to install on two nodes for certification on Windows 2000 Advanced Server, and two, three, and four nodes on Windows 2000 Datacenter Server.
6.2 Applications must support failover to all cluster nodes.
6.3 Clients must survive failure of server application without crashing or affecting the stability of the system.
This specification is intended for vendors and corporate developers building multi-user applications that run on any of the Windows 2000 Server family of operating systems. These distributed applications may be client/server applications or n-tier applications. This specification is specifically targeted at the server component of a distributed application. If you are building a single-tier application that is not a multi-user application, we suggest you consider designing to the desktop application specification for Windows 2000, available at http://msdn.microsoft.com/library/specs/w2kcli.htm.
This specification is primarily focused on the middle-tier component(s), e.g., the component that (in most cases) runs on the server. Most, though not all, the requirements in this specification focus on what the server component of an application should do and how it should behave. In a few cases, this specification has client requirements that describe how client components that your application may have should behave when communicating with your server component. However, this specification does not attempt to describe complete requirements for applications (or components of applications) that are primarily intended to run on Windows 2000 Professional. Those requirements are described in the desktop application specification for Windows 2000.
To qualify for the Certified for Windows logo, your application must comply with this Server Specification. Additionally, if your distributed application includes client components, those client components must comply with the desktop application specification for Windows 2000. Distributed applications that have client components are eligible to carry both Server and Professional designations on their Certified for Windows logo. Note that certain types of clients may be completely or partially exempt from complying with the desktop application specification. See Requirement 1.10 and Appendix B for details.
Finally, if your application uses third-party server components, see Appendix C.