I've only just started working with Web Projects in VS 2005 Beta 2 (Maybe I should've tried this earlier), but I've come across several issues that seem absolutely bizarre for enterprise level solutions involving web sites.
1) All references for a web site are placed into the bin directory of the site as actual files, and placed under source control. For most DLLs, this means that there is no reference to the original link, so if you update the original DLL, you have to go into the project, and update the reference.
2) They are checked into Source Safe. This means that you are carrying around all that extra baggage in Source Safe, especially for inter solution project references that are still changing. It also means there are source control conflicts if two people are working on the same project because one person has the DLL checked out.
3) Inter-solution project DLLs are stored the same way. This means they get checked out everytime you build the secondary business layer DLLs. It also seems to seriously break automated builds using MSBuild because, guess what, the files are checked in, so they are marked read-only.
I've found several issues on this, and they are all marked as closed, mainly by design.
Here, Here, Here, and Here are a few.
The stated reason for this is
" Thank you for submitting this issue. In VS05, web applications (aka web projects) no longer have a project file. This was based on feedback that web developers wanted to minimize the "special" files required by VS03. A side effect of this is we do not have a way to store solution-to-solution assembly references (i.e. inter-solution) like you describe. We will reconsider this design in our next release. In the meantime, we suggest you use intra-solution assembly references (i.e. references within the same solution)."
I don't know about anybody else, but I'd rather deal with a few configuration files than have to deal with the hoops I'm having to jump through to get my project to work on VS 2005. You have to set source control to non-exclusive checkout, update DLL references by hand (if you update an external DLL), check in DLLs into a project, automated builds are a mess now.
It's stated that this will be fixed post VS2005, but it should be fixed now, or it's going to cause a *lot* of pain, especially when people really start upgrading to Visual Studio 2005 on release, and have no idea that major functionality just changed. If it is felt this behaviour must be retained, please allow an option to use old style Web Projects.
Oh, and web projects should have more of the options that regular projects do, like pre- and post-build event.