Even the best programmers occasionally write programs with errors. Errors can also be caused by incorrect user inputs, hardware failures, network failures, and myriad
other causes. A good programmer anticipates such problems and writes programs that respond gracefully when they occur. ASP.NET provides programmers with a
number of powerful tools for debugging and error handling. ASP.NETs Try-Catch blocks allow programmers to write custom error-handling routines for problematic
code, such as database accesses. When errors occur Try-Catch automatically redirects program execution to specific error-handling code blocks. The feature can be
used to provide a graceful response to the user and to report the problem to the system administrator. ASP.NET's trace object provides developers with a useful
tool for debugging and fine-tuning code during development. The trace object provides detailed analysis of code execution, including order of execution, CPU time,
and memory usage
The application service provider is the entity that offers the outsourced application to the customer over the network.
However, the ASP must neither own the software, which it may license from an independent software vendor, nor must it own or operate the hardware, which it may lease from a server farm provider. In a further breakdown,
an ASP aggregator bundles several ASPs together and offers the user one unique interface.
This may be as simple as offering an ASP directory, a common log-in, and authentication, or more complex in that data can be seamlessly exchanged between the different ASPs.
ASP aggregators strongly depend on open standards for accessing disparate ASPs through software integration. The emerging Web Services standards may constitute a viable solution.
The overall architecture of a model ASP is depicted in Figure 5-6, which shows the interaction of the different elements of the ASP value chain.