Visual Studio 2005 Web Application Project
While doing a migration from .Net 1.1 to .Net 2.0 for an ASP.NET application i stumbled on the problem of the difference between the 1.1 Web Projects (.csproj) model and the 2.0 'folder' model.
When you have a big solution with multiple projects, sometimes you only want to reference the projects or dll's directly.
In 2.0 everything inside the root folder (except the files with the extension '.exclude') is part of the project. Referenced projects result in dll's in the bin folder.
So the referenced dll's inside the application's bin folder will be placed in SourceSafe, which is not the behaviour we want, because we only want the source to be 'safe'. The bin folder was never included in the files to be placed into Soursesafe's database in my opinion.
To the rescue came the VS 2005 Web application Project. It seems the people at Microsoft also stumbled on the same problem and this 'new' project type uses the same conceptual web project approach as VS 2003 (a project file based structure where all code in the project is compiled into a single assembly) but with all the new features of VS 2005 (refactoring, class diagrams, test development, generics, etc).
I think the possibility to use everything inside the root folder is oke for some projects, but not for all. So in my opinion the 2003 should be default and the one folder type optional.
You can downoad the msi here.
Tutorials on how to use this project can be found here (Scott Guthrie).
Visual Studio 2005 Web Deployment Projects
Now when we want to make an installer to install a Web Application the Websetup project is provided, but if we want to use the new pre-compiled dll structure we cannot directly include this in our solution.
First we must 'Publish' the application (website) and link the output to our Websetup project.
For this problem Microsoft already provides another 'new' ProjectType the Web Deployment Project.
From a Web application we can make a Deployment project for this Web application, and set a lot of extra properties (like using pre-compiled dll's) make one or more assemblies, etc.
It is nothing more than an XML file and we can directly change and tune it. If you need more indepth information visit Scott Guthrie's blog.
My thoughts exactly...