Web Page Dynamic Compilation
Strangely enough, when we create an ASP.NET page, we are actually creating the source code for a .NET class.
We are creating a new instance of the System.Web.UI.Page class.
The entire contents of an ASP.NET page, including all script and HTML content, are compiled into a .NET class.
When we request an ASP.NET page, the ASP.NET Framework checks for a .NET class that corresponds to the page.
If a corresponding class does not exist, the Framework automatically compiles the page into a new class and stores the compiled class
(the assembly) in the Temporary ASP.NET Files folder located at the following path:
\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
The next time anyone requests the same page in the future, the page is not compiled again. The previously compiled class is executed
and the results are returned to the browser.
Even if we unplug our web server, move to Borneo for three years, and start up our web server again, the next time someone requests the
same page, the page does not need to be re-compiled. The compiled class is preserved in the Temporary ASP.NET Files folder until the source code for our application is modified.
When the class is added to the Temporary ASP.NET Files folder, a file dependency is created between the class and the original ASP.NET page. If the ASP.NET page is modified in any way, the corresponding .NET class is automatically deleted. The next time someone requests the page, the Framework automatically compiles the modified page source into a new .NET class.
This process is called dynamic compilation. Dynamic compilation enables ASP.NET applications to support thousands of simultaneous users. Unlike an ASP Classic page, for example, an ASP.NET page does not need to be parsed and compiled each and every time it is requested.
An ASP.NET page is compiled only when an application is modified.