Saturday, January 3, 2009

ASP.NET Application Architecture

You build ASP.NET applications using a set of specialized classes within the .NET Class Framework, including (but not limited to) the System.Web namespace for Web form and control classes and the System.Data namespace for data access classes.

Figure 1 shows a simplified ASP.NET Web application architecture. ASP.NET applications are hosted by Internet Information Server (IIS), which accepts requests from clients and optionally authenticates them before passing the requests on to the Web application.

Figure 1: ASP.NET application architecture

ASP.NET applications are different from their ASP predecessors in several important respects:

  • ASP.NET code is compiled, rather than interpreted. The executable content for the Web application lives in a single binary DLL that resides in the \bin directory at the root of the Web application.
  • You write ASP.NET code using managed code such as VB .NET or C# .NET. Managed code is compliant with the CLR type specification and is more robust and thread-safe than unmanaged code.
  • ASP.NET supports strong typing and early-bound component calls. ASP supports only weak typing and late-bound component calls, which results in more unstable code and lower performance.
  • You can break ASP.NET pages into separate user controls that can be compiled into separate files and can be cached separately from the overall page.
  • ASP.NET supports a wide range of output caching options, from page-level caching to fragment caching. This enables you to fine-tune the execution and the cache ability of a page at a highly granular level. ASP.NET also supports a Data Cache engine and application programming interface (API) that enables developers to cache objects and other items between page requests.
  • ASP.NET provides expanded support for state management. The available modes include in-process sessions, out-of-process sessions, and database support for session management. ASP.NET state management is more flexible and performs better than its ASP predecessor.

An interesting theme emerges from this list. Namely, ASP.NET intrinsically improves on the performance of its predecessor, ASP. The features that make ASP.NET distinctive from ASP are the same features that inherently perform better. The clearest example of this is the first point: Compiled code is always faster than interpreted code.


No comments:

Post a Comment