ASP.NET supports three forms of precompilation. One form allows for the in-place precompilation of an ASP.NET application. In this form, the site is deployed to production and then precompiled, which eliminates the need to dynamically compile the site when it is first visited by a user. The first user of the site will not experience the delay normally encountered on a site that is dynamically compiled.
The two other forms of precompilation are used for deployment. In either form, a layout of the site is generated that can be deployed to a production computer. One of these forms includes the markup pages so some amount of updating can be performed on the compiled site. The other form does not contain the markup pages and therefore cannot be updated without recompiling the original site. No source code is deployed to the target environment in either of these forms of precompilation.
The application to precompile is defined through the System.Web.Compilation.ClientBuildManager constructor. The System.Web.Compilation.ClientBuildManagerParameter object of the ClientBuildManager.#ctor(string, string, string, ClientBuildManagerParameter) constructor defines which of the three forms of precompilation to perform.
A developer can precompile a Web site with the aspnet_compiler command-line tool or by calling the ClientBuildManager.PrecompileApplication method.