MVC Storefront Challenge Kickoff

Last week, I announced the MVC Storefront Challenge, which is a response to some feedback Rob Conery was getting on his ongoing MVC Storefront series.  Before I could get started, I needed to get the original project up and running on my own machine.

I had to install Unity and restore the included database (I already had ASP.NET MVC installed), but everything is up and running.

The original idea behind the challenge is the feedback Rob’s getting to switch to various OSS tools for an assortment of applications, including ORM, IoC, unit tests, etc etc.  Rob didn’t think this made sense, and I don’t either, as it doesn’t work too well to switch out the engine in the middle of a race.

The goal of the challenge is to use these open source tools to build an identically functioning MVC Storefront.  By “identically functioning”, I’m referring to the end-user experience.  HTML and URLs will be exactly the same for both applications, as well as user flow.

Ground rules

Since HTML, URLs etc need to be exactly the same, we can achieve this by:

  • Continue to use ASP.NET MVC
  • Use the same controller classes, at least the signatures
  • Use the same views
  • Use the same view models

Everything else can change.


Besides just getting familiar with ASP.NET MVC, the goals of this project include:

  • Showing sample usages of popular OSS .NET tools
  • Compare implementations of similar scenarios between the two approaches
  • Hopefully create some teaching opportunities for these approaches

The point of this isn’t an exercise of “Linq 2 SQL is teh lame” or anything like that.  There aren’t many comparisons that I could find of identical applications with completely different infrastructure, so it will be nice to have some comparisons.

First steps

Right now, all I have is the MVC Storefront code running on my local machine.  The license allows reproduction and derivative works, providing I include the original license (Ms-PL).  To get this going, I’ll need to:

  • Pick a name for the project
  • Create a home for the project
  • Remove all non-ASP.NET projects from the solution
  • Get it building!

From there on out, I’ll have some skeleton controllers to start adding behavior.  To do so, I’ll probably have to do some myself, and hopefully do some recorded pairing with other folks.  As Rob completes more functionality, we’ll add it to the MVC Challenge project.

Once I get the first steps ironed out (send in project names, kthx), it’s just a matter of flushing out the controllers.  Easy, right?

Austin Code Camp material posted