This may seem a little obvious, but I think it is misunderstood because VS2005 originally came with the website. If your project is dealing with a website that is quite limited and does not have a lot of logical or physical separation, the website is fine. However, if this is really a web application with various modules, where many users add and update data, you better work with the web application.
The biggest pro of the website model is that everything in the app_code section is dynamically compiled. You can update cs files without a complete redistribution. However, this brings a huge sacrifice. Many things happen under covers that are difficult to control. Namespaces are difficult to control, and the use of a special dll goes by default out of the window in any app_code application, since everything is dynamically compiled.
The web application model does not have dynamic compilation, but you get control over what I mentioned.
If you are developing nTier, I highly recommend the web application model. If you are building a limited website or fast and dirty, then a website model has its advantages.
A more detailed analysis can be found here:
http://west-wind.com/weblog/posts/5601.aspx
http://blogs.vertigo.com/personal/swarren/Blog/Lists/Posts/Post.aspx?ID=10
source share