In the world of single-user desktop software development, the performance requirements are clearly defined. In that context, it is important that the user does not experience a significant delay when performing common tasks.
In the early years of the World Wide Web, slow Web pages were commonplace, and for many users a long wait was tolerated. However, as more and more enterprise Web applications were created, the requirements for Web application performance began to rival those of the single-user desktop. Today, with faster communication technologies becoming prevalent, users are demanding greater increases in site performance.
The real issue in Web application design is that while the application appears to the single user as a traditional desktop application, it is actually a distributed application that could be simultaneously servicing hundreds or even thousands of users.
Web applications demand performance under a wide range of environment conditions—in other words, they must be scalable. Certainly, Web applications must perform well, but good performance when being used by a single user does not necessarily translate into scalability.
There are many different metrics for determining how scalable an application is. Ideally, a truly scalable Web application should be able to:
Of course, these scalability requirements are ideals. However, the closer your application comes to fulfilling those ideals, the more successful your application will be when under load.
The most important thing to keep in mind when beginning a Web application development project is that Web applications are, for the most part, server applications. Historically, server software has been second only to operating system internals in complexity and programming difficulty. IIS and Windows® offer a variety of innovative tools that make Web application development much faster and easier, but the concerns and challenges of server software programming still exist.
Some important considerations for making your application scalable include:
A detailed analysis of all of these topics is beyond the scope of this documentation. Instead, in this section you will find a compilation of notes and procedures, specific to IIS, that will help you create a scalable Web application.
This section contains:
For more information about designing Web applications, see Design Decisions.