Welcome to EMC Consulting Blogs Sign in | Join | Help

James Broome Blog

Asp.Net MVC – Separation of concerns amongst team members


One of the clear advantages of using the MVC pattern is that it encourages separation of concerns – it doesn’t enforce it by any means, but following the pattern results in a nice clean, maintainable, flexible solution. The architectural advantages of this are documented everywhere, but I also believe that it aids separation of concerns in another way – in the roles of the project team members.

I’m lucky enough to work in an environment where we have a team made up of .Net developers (C#), UI developers (HTML, CSS, Javascript), and database developers (SQL). Each of these roles performs a different function, has a different skill set, work on separate parts of the application and have separate tasks during a sprint.

In the past, when working with WebForms, as a .Net developer I would spend a large amount of time in the UI layer, adding user controls to .aspx markup, and trying to explain to the UI developer how the “cssclass” attribute worked, why elements where rendered differently at runtime than they appeared in the code editor etc etc. It all felt a bit wrong. Because we are using Asp.Net MVC, on my current project we can both work side by side on a feature without treading on each others toes. We can deliver quicker and we have less breaking changes. I don’t put .Net code in the UI mark-up and the UI developer doesn’t put CSS styles in .Net code.

On my current project, our UI developer didn’t join the team until after Sprint 4 – that’s 8 weeks of development without a proper UI in place. However, at the end of each of those 2 week sprints, we presented our application to the client as working software and planned out what we were going to do next, all the time, completely ignoring the UI. We were lucky in that our client understood and trusted us when we said that the UI would be designed and built without any impact to the underlying functionality we had already developed.

And, after Sprint 4, when our UI developer joined the team, we went from presenting an application that looked like an out-of-the-box Asp.Net MVC application you get in Visual Studio, to a rich, professional, fully branded website in the space of one two-week sprint.  He was able to completely re-skin the entire UI using HTML and CSS (helped by the fact that we’re using the beautiful Spark View Engine) without me having to change a single line of C#. Now that’s what I call separation of concerns.

Published Monday, August 24, 2009 9:26 AM by james.broome
Filed under: , , ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS



aleichtle said:

Excellent post and I can't agree more.  I am currently starting a project with a HTML/CSS/jQuery developer that I've worked with on webforms projects prior.  He was smitten to say the least that he didn't have to deal with all of the server generated html and other quirks that really made both our jobs take longer.

It's great to see others realizing this as well!

August 26, 2009 1:57 AM

Dedicated ASP.net web developer said:

Interesting post. It's been very informative.....thanks dude.

June 1, 2010 6:41 AM

Leave a Comment


About james.broome

James is a Technical Consultant at Conchango
Powered by Community Server (Personal Edition), by Telligent Systems