Development technology | Advantages | Disadvantages |
|---|
ASP ASP pages are written in ASP pages have the following characteristics ASP pages execute on the IIS server when they are requested by the client. A Global.asa file can be used to set up global variables, objects, and work with ASP events. A client can pass variables to an ASP page through a query string.
| 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 C# Visual Basic.NET Managed C++
ASP.NET pages have the following characteristics ASP.NET pages execute on the IIS server when they are requested by the client. A Global.asax file can be used to set up global variables, objects, and work with ASP.NET and HttpModule events. A client can pass variables to an ASP.NET page through a querystring.
| ASP.NET applications take advantage of all the benefits of the Microsoft .NET Framework. ASP.NET pages can be written in two ways: Executable .NET code can exist in the ASP.NET page (called a single-file page). Executable .NET code can exist separately in a compiled class file DLL. The code is then called by server controls in the ASP.NET page.
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 Any COM-compliant language by using ActiveX® Data Objects (ADO). Therefore, ASP, COM, and ISAPI applications can use databases. Any .NET language by using ADO.NET. Therefore, ASP.NET applications can use databases.
| 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. |