Improved Performance and Scalability
ASP.NET lets you use serve more users with the same hardware reducing the total
project costs to a business. Performance gains are achieved in a number of ways:
Compiled execution
ASP.NET is much faster than classic ASP, while preserving the "just hit save" update
model of ASP. However, no explicit compile step is required. ASP.NET will automatically
detect any changes to the application, dynamically compile the files if needed,
and store the compiled results to reuse for subsequent requests. Dynamic compilation
ensures that your application is always up to date, and compiled execution makes
it fast.
Rich output caching
ASP.NET output caching can dramatically improve the performance and scalability
of your application. When output caching is enabled on a page, ASP.NET executes
the page just once, and saves the result in memory in addition to sending it to
the user. When another user requests the same page, ASP.NET serves the cached result
from memory without re-executing the page. Output caching is configurable, and can
be used to cache individual regions or an entire page. Output caching can dramatically
improve the performance of data-driven pages and improve the user experience by
eliminating the need to query the database on every request.
Web-Farm Session State
ASP.NET session state lets you share session data, user-specific state values, across
all machines in your Web farm. Now a user can hit different servers in the web farm
over multiple requests and still have full access to their session. And since business
components created with the .NET Framework are free-threaded, you no longer need
to worry about thread affinity.
Microsoft .NET Outperforms the Competition
In a head-to-head comparison of performance and scalability between Sun's Java Pet
Store J2EE blueprint application and the ASP.NET implementation, Microsoft .NET
significantly outperformed J2EE. The bottom line: the ASP.NET implementation required
only 1/4th as many lines of code, was 28x faster (that's 2700%), and supported 7.6x
as many concurrent users as J2EE, with only 1/6th as much processor utilization.
Of course, ASP.NET is also much faster than interpreted scripting languages such
as PHP.
Enhanced Reliability
ASP.NET ensures that your application is always available to your users via its
integration into IIS. ASP.NET automatically detects and recovers from errors like
deadlocks and memory leaks to ensure your application is always available to your
users.
For example, say that your application has a small memory leak, and that after a
week the leak has tied up a significant percentage of your server's virtual memory.
ASP.NET will detect this condition, automatically start up another copy of the ASP.NET
worker process, and direct all new requests to the new process. Once the old process
has finished processing its pending requests, it is gracefully disposed and the
leaked memory is released. Automatically, without administrator intervention or
any interruption of service, ASP.NET has recovered from the error.