Changes/Refactorings to the Mvc Contrib project!


This message was sent to the Mvc Contrib mailing lists.  We are looking for feedback if you are a use of the MvcContrib project.


As we get close to the release of the Asp.Net mvc framework it is time to take a look at what the contrib project has grown into organically and match that up with what we want to get out of the project to make sure everything is aligning.

The goals of the project:

Ease of use/adoption: We want to position the MvcContrib project so that it is easy for someone new to the ASP.Net MVC framework to include and use the MvcContrib functionality.    The goal here is for frictionless and painless adoption.

Drive to conventions: We want to provide some opinions on how we think the framework should be used.   This means making the conventions easy to discover and use.

Provide nice to have functionality: We are also willing to allow for some features that are infrequently used to still be easy to access, but this must be balanced with the first two goals. 

So, that leads us to the question of why are we bringing this up and what does that mean?

We do see the MvcContrib project site being a central place to look for alternative implementations.  We may not host all of these in our project, but we could at least list all of them, view engines and IoC, than have links to their project homepages.  I see a lot of value in maintaining a complete list of known extensions.

Here is a list of actions we want to take on the code base to support the goal.

1.       Consolidate the existing mvc projects/assemblies down to four (4) projects.

·         MvcContrib

·         MvcContrib.Extras

·         MvcContrib.TestHelpers

·         MvcContrib.UnitTests

2.       Add a dependency on the CommonServiceLocator to replace all of the IoC containers in the MvcContrib project.

3.       Remove old dependencies that are available in their home projects:

·         Ninject

·         StructureMap – provide links to the CSL implementation

·         Unity – provide links to the CSL implementation

·         Castle / Windsor – the Controller register could be pulled into documentation on the contrib project website.

·         Spark – It is being maintained as a separate project, we should be pushing developers to it home page to get the most recent version of the project.

4.       Deprecate and remove the following projects:

·         Xslt View Engine

·         Nvelocity

·         Brail

·         Spring

At this point I would like to open up the discussion. Please make it know if you are relying on any of the functionality that is planned for removal.



Eric Hexter -  MvcContrib Co-founder
Jeffrey Palermo – MvcContrib Co-founder


I will be presenting An Afternoon of Asp.Net MVC with Headspring Systems – February 19th in Austin