How To Speed Up Your Microsoft Web Development Projects and Maintain Sanity

December 9th, 2009 by Daniel DiRico

microsoft-building-logoToday I spent most of the day over at the Microsoft campus here in Cambridge, MA attending a joint presentation from NaviSite and a few members of the Microsoft WebSiteSpark team. About 75 people registered for the event, but the brutally cold, wind-driven rain that rolled into the Boston area today reduced that attendance down to a mere 18 or so of us. But the show must go on, and it didn’t disappoint.

The primary goal was to introduce us to NaviSite, a major player in the managed hosting arena which happens to have a large, local presence here in Massachusetts. Typically known as a blue chip, large enterprise hosting solution, NaviSite is expanding their market share into the small and medium sized (SMB) business segment. They have some tough competition to face with incumbents like Rackspace and others, but if you are looking into managed hosting for your SMB, I recommend giving their site a visit to see what they have to offer.

The bulk of the day however, was spent on the Microsoft Web platform technologies, the WebSiteSpark program details, and an introduction to the MS Expression Web software. There was no mistaking the fact that we were deep inside a Microsoft office building (a headquarters, in fact) but that didn’t stop me from periodically whipping out my iPhone and firing up the MacBook in there. As a sign of peace, I had the MacBook running Windows Vista today.

So what’s this talk about speeding up Microsoft Web development projects, you ask? Well it turns out I actually learned something interesting today on that subject and it’s called MVC.

Stop me if you’ve heard this story before;

FrustratedWomanYour web project is behind schedule, the stuff the back-end developers are doing looks nothing like what the designers spent days designing, your front-end developers have just re-worked the same set of pages for the 5th time, and your business analyst / project manager is trying to keep it all glued together while increasing daily coffee consumption by about 45% a week. (ok, maybe that last part is just me).

This scenario is even more common if your project is being built on the ASP.Net platform versus the open source platform (Apache, PHP) because designers don’t speak .Net and your back-end developers don’t speak CSS and SEO. Connecting the two together is easier said than done. Often when going from designer to developer and back again it is a painful experience; more than it should be. And a time consuming, money-wasting one at that.

It turns out that within ASP.Net there is a relatively new (since about 2007 or so) development framework available, called Model View Controller (MVC). If your organization or agency is not using this Web development approach then you really should be taking a hard look into it. You can do some research via the link above, but I’ll briefly summarize the benefits of MVC here and why your team should be considering it for your future Web projects.

As a project manager, one thing you always try to do with your projects is establish parallel work teams. You want everyone working on the mission simultaneously to gain efficiency. You don’t want a developer waiting around for a designer, or a business analyst waiting around for a developer. And you certainly want to reduce re-work on everyones part.

mvcMVC introduces a very clean, clear separation of Models (i.e. database and business logic), Views (i.e. HTML, CSS, SEO, AJAX) and Controllers (i.e. the pieces that handle user interaction).

In plain english, this approach to .Net web development lets your separate teams (design, UI, back-end, analysts) work simultaneously and within their own sand box, without messing up what the other guy/gal is working on, yet assemble the whole thing as one unified Web project at will.

The work each team performs is “encapsulated” into either a View, a Model, or a Controller. Your front-end developer and Web designer no longer has to worry about the UI getting mangled by back-end work. And your marketing team will be happy to know that MVC is more SEO friendly. Your business anlaysts will be able to work with the back-end team to bake in all the functional requirements into the Models and unit test them separately with no affect on the UI or Interaction of the site.

And yes, this MVC framework also works just fine in conjunction with traditional ASP.Net development – you can do both when needed.

So if MVC is new to you and your organization, I highly recommend doing some research on this and giving it a try on your next Web project. It works very well with Agile, rapid development which in the world of Web is really the only kind of project there is.