Project files are back for web projects in VS 2005!

That's almost true .... :) Last week I was involved with testing an add in that the ASP.NET team was working on - it is called "Web deployment projects". This is an add in that will be shipped about the same time as VS 2005. Having used VS 2003 back in school, when I joined MSFT after graduating, I was a little unsettled at the thought of having web "projects" without project files! In the course of 2 years, I became used to this model though the pain of not having a project file would surface now and then.

With this add in, you can now associate any web app with a web deployment project that is nothing but an MSBuild project file. It is as easy as a right click + add. The web deployment project can be configured to built in various configurations and can automatically deploy your website on an IIS server (pretty cool from a Team Build perspective too). This comes integrated with the Asp_merge tool that can actually compile your web project into a single dll with a sane name (compare against the App32435435__90blah blah.dll that is auto generated now) or separate dlls per folder or per page. You can also replace sections of your web.config file in a simple UI to override specific settings. Strong name signing is also built into this UI along with options for delay signing. Of course, since this is an MSBuild project file, it is highly extensible and stubs are already provided in the project file to override and add custom tasks.

Undoubtedly, the feature I liked best was the IIS deployment feature, where you can choose the virtual directory to deploy to and also opt to delete pre-existing directories or not. The coolth of it is the integration it brings to Team Build web testing scenarios. Users that run web tests on web apps built in Team Build need to deploy the app on the IIS server on the build machine. There was no out of the box solution for this and it involved having to write custom tasks in order to deploy the web app. Now, all we need to do is include the deployment project in the team project to build, and lo - the web tests can run with no custom tasks in between.

I was pretty charmed by this add in, so much that I wondered why this wasn't part of the product itself ;-)

Let me know what you think of the web deployment project add in when you get to use it!