Web Deployment Projects for 2010: Microsoft Listens

Perfect Heart by Caro WallisSome like to suggest that Microsoft MVPs are just Microsoft zealots pushing the company line.  While it’s true MVPs are fans of Microsoft, the strongest criticisms, the harshest words, the most brutally honest statements I’ve heard against Microsoft have come from MVPs, and many times are delivered in person.

This past MVP summit, we were quite vocal about wanting “round trip” support in Visual Studio 2010 – meaning a project or solution could be opened in 2010 and in 2008, something that’s not currently possible (upgrading a project is a one way street).  It got to the point that sessions would open for Q&A, and we would be asked to not bring up round trip support because it would drown out all other discussion.

For me, the need for round trip support was because of Web Deployment Projects (WDP) – or the lack of WDP for VS2010.  VS2010 introduces a new system called Web Deployment Packages, which support Web Application Projects but not Website Projects. 

Websites vs Web Applications is not a new debate, or even a very interesting one.  I’ve always favored Websites, and use Applications in rare cases.  The Application project structure – treating my site as a class library – just feels wrong.  I also edit and add files outside of Visual Studio (yes, with Vi) and don’t want to remember to add those files to the Application project.  The advantage of the Application structure though is a project build file, making it easy to create custom build scripts (such as setting database connection string based on development or production builds). Web Deployment Projects, first introduced for VS2005, fills this gap by adding an MS Build file to the Website project, kept in a different directory outside of the web root.

Since VS2010’s Web Packages didn’t support Website Project, and there was no support for existing Web Deployment Projects, VS2010 left me with no deployment story.  This, more than anything else, was why round trip support was important to me – I would need VS2008 to deploy projects.

At the MVP summit I spent some time with the team working on deployment in VS2010.  A few weeks later they said, “here, try this out and tell us if you find any issues.”  Now Web Deployment Projects for VS2010 Beta 1 is available to all.  Though we didn’t get round trip support (which is more complex than it first seems), Microsoft is listening and acting on feedback.  That this add-in was done in the weeks before VS2010’s launch is amazing.

There is also a bonus I didn’t expect: they added Package support to Website Projects.  Now you can use Web Deployment Projects to build Packages and deploy them with the Web Deployment Tools for IIS7

That’s getting to have your cake and eat it too.


Posted 04-15-2010 10:00 PM by Michael C. Neel

[Advertisement]

Comments

Phill F wrote re: Web Deployment Projects for 2010: Microsoft Listens
on 04-16-2010 7:49 AM

This just seems like another step backwards for us developing mid-scale websites.  In my experience, I have _never_ worked on a site that can be categorized as a single application, or anything remotely resembling a single application.  And even when I have worked with other teams that have been developing such a beast, I found that the mentality that it was a "single application" was more of a hindrance than anything else.

A web site, by it's very nature, is more of a collection of applications and features, most of them not terribly complicated.  Things such as simple contact forms, information requests, widgets, etc.  I realize that in a strict OOP world, you would create classes and such for many of the pieces of these things, but honestly, when I'm just trying to crank out a quick contact form, I don't really spend the time to create objects for everything.  

Also, unless I'm missing the whole point, I regularly roll out very small changes at a high frequency.  I rarely (if ever) take the time to have a fully-finished, production ready build on a single computer to roll out to a production environment.  Granted, I work in a small organization with only two developers, but we will regularly push out single-page content updates or small changes to a single app, and we don't have the time or luxury to assemble everything, test it, and roll it out as a package.  

But again, maybe I'm missing the point...

Michael C. Neel wrote re: Web Deployment Projects for 2010: Microsoft Listens
on 04-16-2010 9:30 AM

With Wed Deployment Project, you can configure how the site is compiled, and allow it to be updated.  I work on many more small sites than large, but then the small sites are easy to replace everything at once.  Having automation means you don't have to remember to change the database connection and other app settings (like form email targets) from dev to production.

Automation also makes it easier for other developers to work on the same site and deploy changes.  It's also easier to keep the source control version in sync with the version on production.

As far as testing - it's so easy now to have a "right click, run tests" setup I can't see it as being a big time issue, considering that the time cost to deploying a bug and having to fix it quickly.  If you don't have any tests, then I could see where this would be a problem, lol.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)