Visual Studio 2005 – Publishing Web Site
What’s the purpose of site precompilation? As it turns out, improved performance is often brought as an evidence of the benefits of precompilation.
While precompilation certainly saves users from the notorious first-hit delay, I don’t believe that this simple fact, which affects only one user per page, is going to change users’ feelings about the overall usability of the site.
Precompilation is mostly a safety measure: using precompilation makes your application safer because when you deploy it you know that all pages compile without errors. In addition, your precompiled application is safer because any valuable source code is out of reach.
To get both benefits you must opt for deploy precompilation. This form of precompilation creates a read-only image of the site that might be packaged to MSI or ZIP files as well as directly x-copied to the web server machine.
For web sites that are subject to frequent page updates, updateable deploy precompilation is probably better because updateable precompilation allows you to edit and add new pages. These new pages will be compiled on first hit, though.
If you leave the Allow this precompiled site to be updatable checkbox checked, markup inside of your Webforms and user controls will not be pre-compiled into a DLL allowing you to make changes after deployment. If you would prefer to lock down the markup so that changes to the deployed content are not allowed, uncheck this box.
The Use fixed naming and single page assemblies checkbox allows you to disable batch compilation so that each page is compiled into a fixed-named assembly. Leaving this box unchecked allows you to take advantage of batch compilation.
The Enable strong naming on precompiled assemblies checkbox allows you to strong-name your precompiled assemblies.
Note: In ASP.NET 1.X, strong-named assemblies had to be installed into the Global Assembly Cache (GAC). In ASP.NET 2.0, you are not required to install strong-named assemblies into the GAC
Kenny Tran is the author of the “Kenny and .NET” blog.