Comparison of IIS Development Technologies
You can use IIS to create Web content in a variety of formats, including static files, scripts, compiled DLLs, and compiled EXEs. The IIS development technologies simply provide a way to perform dynamic operations that eventually build HTML output that IIS sends in response to client requests.
The technologies that can be used to develop IIS content are as follows:
ASP
ASP.NET
COM components for ASP
CGI applications
ISAPI extensions
ISAPI filters
Database applications
Static content
Web content can also be developed to programmatically configure an IIS server. For information about the different ways to configure IIS programmatically, see Comparison of IIS Administration Features.
Use the following table to help decide what technology to use to develop IIS content.
Development technology |
Advantages |
Disadvantages |
---|---|---|
ASP ASP pages are written in
ASP pages have the following characteristics
|
ASP pages are fast and easy to develop. ASP technology is available on all versions of IIS since IIS 3.0 with a few additions in functionality to improve international features. ASP pages can call COM objects. This allows Web applications to store most of their business logic in a compiled COM object whose methods and properties are called from an ASP page. ASP includes transaction support. |
ASP script processing is slightly slower than for static HTML files, COM objects, CGI applications, and ISAPI applications. The difference is only apparent on a server that experiences high volumes of traffic. ASP does not have as many features or as much control over IIS as ISAPI. |
ASP.NET ASP.NET applications are written in
ASP.NET pages have the following characteristics
|
ASP.NET applications take advantage of all the benefits of the Microsoft .NET Framework. ASP.NET pages can be written in two ways:
ASP.NET applications are more extendible than ASP. ASP.NET includes features that are called HTTP Handlers and HTTP Modules, which match IIS ISAPI filter and extension functionality. ASP.NET includes transaction support. |
ASP.NET is more difficult to learn in the beginning than ASP. However, the languages that are used to develop ASP.NET applications are gaining much popularity and can be used to develop other kinds of applications. ASP.NET is a younger and more dynamic technology than ASP, CGI, and ISAPI, which requires programmers to keep up with the new features of ASP.NET as they develop. The .NET Framework includes hundreds of classes, namespaces, and methods, designed to cover any action that a developer might want to perform, however, getting to know them all can take a long time. |
COM components for ASP COM components are written in
COM components have the following characteristics
|
COM components execute faster than ASP pages alone. To make an ASP application faster, move most of the code that is contained in the ASP pages to a COM component, and then call the COM component methods and properties from the ASP pages. COM includes transaction support that interacts with ASP transactions. |
COM components are not as fast as ISAPI applications. The difference is only apparent on a server that experiences high volumes of traffic. The process and thread identities of an application can change once processing is passed to COM services. |
CGI applications CGI DLLs are written in
CGI applications have the following characteristics
|
Developers who do not have the resources to convert CGI applications to run on IIS do not have to convert them to another development technology. |
Small changes might have to be made to CGI applications to make them run on IIS. For example, if CGI applications do not return properly formatted headers, an error can occur. CGI applications must adhere to CGI and HTTP specifications as set out by the World Wide Web Consortium - Specifications and Drafts. |
ISAPI extensions ISAPI extensions are written in
ISAPI extensions have the following characteristics
|
ISAPI extensions have full access to IIS functionality. They give the finest control over the client connection, request and response data, application flow, application identities, and file transmission. As an example of the power of ISAPI applications, ASP and ASP.NET functionality is contained in special ISAPI extensions that are provided by IIS and .NET. ISAPI extensions have access to Win32 APIs. ISAPI extensions are the fastest of all IIS development technologies (other than static content). ISAPI extensions can process asynchronously. Starting with IIS 6.0, ISAPI supports Unicode. Starting with IIS 6.0, ISAPI provides functions that allow any or all requests to an IIS server to be sent to an ISAPI extension, processed, and then redirected to any other application. This functionality can be used to replace ISAPI filters. |
ISAPI extensions can only be written in C++, therefore ISAPI is a more difficult technology to learn. ASP.NET HTTP Handlers and HTTP Modules can be written in any .NET language, even VB.NET. |
ISAPI filters ISAPI filters are written in
ISAPI filters have the following characteristics
|
If an ISAPI filter is present on an IIS server, all incoming client requests pass through it. This allows a filter to select the requests that it needs to process. This is useful for purposes such as special logging or authentication. The power of ISAPI filters lie in their ability to react to specified events notifications. |
ISAPI filters can only be written in C++, therefore ISAPI is a more difficult technology to learn.ASP.NET HTTP Handlers and HTTP Modules can be written in any .NET language, even VB.NET. ISAPI filters should only be used for filtering requests. ISAPI filters do not have as much functionality as ISAPI extensions. |
Database applications Database applications are written in
|
Database applications can store massive amounts of data such as membership information, inventory information, archival information, and so on. A properly designed database can allow a Web application to retrieve data quickly. |
Databases are often used to store sensitive information, yet database applications are often developed without security in mind. Access controls must be tight. All client input must be stripped of invalid characters. Connections and queries must be constructed in the most fool-proof manner. On SQL server, the default administrative account must be replaced or have its well-known password changed. For more information about how to develop secure database applications, see the chapters titled "Never Trust User Input" and "Database Input Issues" in Writing Secure Code (ISBN 0-7356-1722-8). |
Static content Static content is written in
Static content has the following characteristics
|
Static content can be served to clients faster than any other content because it is not processed (unless it contains <SCRIPT runat=Server> blocks. |
Some features of static content (such as the client-side script used in DHTML <SCRIPT> blocks, or XML) are not supported by some browsers, therefore your client might not be able to view your Web site correctly. This is not a problem for other IIS development technologies which execute on the IIS server to produce HTML responses that are sent to the client. |