VS2005 uses dynamic compilation because it improves development time scenarios significantly. At the same time we also provide precompile/publish to address build and deployment scnearios.
At development time, having dynamic compilation provides several benefits:
1) Fast iterative development style. Developers can now edit a ASPX page or code behind file, hit save, and refresh in the browser. A user does not have to build the entire web project to run a single page. With very large web apps and repeated iterations, this becomes a noticeable productivity gain.
2) Better team development scenarios. Multiple users can now work on the same web site in an easier fashion. As an example, if certain pages in the website contain errors, a developer isn't blocked on editing, running and debugging other pages in the website. In contrast in VS2003, you were always blocked from testing any pages until all compile errors were fixed.
In terms of build & deployment and precompile we provide several options:
1) Full compile vs Updateable. Updateable is similar to VS2003 where ASPX pages are not compiled but code-behind files are. Full compile provides further benefits of hiding all ASPX code as well.
2) Batch vs. No Batch. In Beta2, the precompile option does "No Batch" meaning each ASPX page is its own DLL. We will be changing the default setting to do "Batch" compilation in final release to be more consistent VS2003, where all webforms in a folder get compiled into a single DLL. NOTE - you will still get multiple DLLs, but they will be per folder, not per webform. VS2005 doesn't provide UI to control the Batch/No-Batch option, however you can set this via the command line precompile tool.
Hope this helps.