7.1 ASP

Microsoft ASP is a server-side scripting technology enabling dynamic
web pages. An ASP page contains HTML markup and server-side scripts
that generate HTML content dynamically. The server-side
scripts run when a request for the ASP page arrives at the web
server. Inputs to the ASP page come from the client browsers through
HTTP POST and
GET methods. ASP provides an object model to simplify
developers' tasks. Besides objects from the ASP
object model like Application, Server, Request, Response, and
Session, developers can use any COM components on the server.

If you've already been developing web applications
using ASP, you probably agree that it is very easy to end up with
intertwined, possibly conflicting HTML markups and server-side
scripts. The poor encapsulation model of ASP pages makes them
difficult to manage and reuse. Attempts have been made to improve
upon this model, including server-side include files and
parameterized functions in scripts; however, these attempts come with
trade-offs such as time, the management of a network of include
files, the performance impact of having nested includes, as well as
object ID and variable-scope management.

Developers that deal with cross-browser web applications also run
into problems generating HTML according the client's
browser capability. Most of the time, we
end up generating only the simplest HTML tags and client-side
scripts, which can be understood by many browsers, and foregoing the
features of the more advanced browsers. The resulting web application
can be only as good as the worst browser it supports. Sometimes, we
also attempt to generate different HTML markups for different
browsers to take advantage of browser-specific features, resulting in
a much better client-side experience; however, this involves much
more development time and effort.

Since scripting in ASP is available only to late-bound languages such
as
VBScript and JavaScript, type-safety is not
an option. In addition, server-side scripts in ASP pages get
reinterpreted each time the page is accessed, which is not ideal for
performance.

Form-state maintenance in an ASP-based application is also
labor-intensivedevelopers must do everything manually,
including reposting data, using hidden fields, and session variables.
At times, web applications are configured to run in web farm
environments where there is more than one web server available to the
client. Maintaining session states becomes much harder in these
scenarios because it is not guaranteed that the client would return
to the same server for the next request. Basically, the developers
have to save states manually to SQL Server or other external storage.

Although ASP is a great technology to build dynamic web pages, it has
room for improvement. ASP.NET evolved from ASP and overcomes most, if
not all, of its shortfalls.