When doing full builds of projects, the VS 2005 Web Application
Project option will compile projects much faster that the VS 2005 Web Site
Project option. By "full build" I mean cases
where every class and page in a project is being compiled and re-built -
either because you selected a "Rebuild" option within your
"build" menu, or because you modified code within a dependent class
library project or in the /app_code directory and then hit "build" or
"ctrl-shift-b" to compile the solution.
There are a few reasons why the VS 2005 Web Application
Project ends up being significantly faster than Web Site Projects in these
"full rebuild" scenarios. The main reason is that (like VS
2003), the VS 2005 Web Application Project option only compiles your
page's code-behind code and other classes within your project. It does
not analyze or compile the content/controls/in-line code within your .aspx
pages -- which means it does not need to parse those files. On the
downside this means that during compilation it will not check for errors in
those files (unlike the VS 2005 Web Site Project option which will identify any
errors there). On the positive side it makes compilations much faster.
So does this mean that you should always use the VS 2005 Web
Application Project option to get the fastest build times with large projects?
No -- not necessarily. One nice feature that you can enable with the
VS 2005 Web Site Project option is support for doing "on demand
compilation". This avoids you having to always re-build an entire
project when dependent changes are made -- instead you can just re-build those
pages you are working on and do it on-demand. This will lead to
significant build performance improvements for your solution, and can give you
a very nice workflow when working on very large projects. I would definitely
recommend using this option if you want to improve your build performance,
while retaining the flexibility of the web-site model.
The below sections provide specific tutorials for both the
VS 2005 Web Site Project Model and the VS 2005 Web Application Project Model on
optimization techniques -- including the "on demand compilation"
build option I described above.