The MVC Storefront Challenge!

In Rob Conery’s recent post on the MVC Storefront example he’s been working on, he got some comment to basically toss out Linq2SQL and use NHibernate instead.


How about the community does it instead?  I’m not looking for an us vs. them or Linq2SQL vs. NHibernate battle, more of an intellectual experiment where we have two identical apps, built on two different ORM platforms.  The goal would be to highlight NHibernate’s strengths and weaknesses, as well as Linq2SQL’s strengths and weaknesses through a comparison of the resulting architecture and design.

Personally, I’d like to start this one out by forking the original code and pairing with someone live.  Maybe it can become a reference NHibernate/DDD app?  Or maybe it will expose the naked truths of my complete lack of coding skills?  Probably the latter.

The general idea would be to start with the use cases laid out in the screens, and go backwards from that.  Many of the entities would probably remain the same, but the aggregates/roots/repositories would have a distinctly different feel.  All driven from TDD of course.

As I noted earlier, I’d want this driven live pairing, so either in person (I’m in Austin, TX) or Skype-VNC sessions (if I can figure that stuff out).  Some ground rules are:

  • All code is put in TDD
  • Ping-pong style pairing prevents me from getting *too* plastered
  • Follow DDD concepts, entities, value objects, repositories, blah blah blah
  • Don’t knock me for subtly introducing my hilarious ultra-right-wing ideals as variable names (string NRA4EVER = “cold, dead hands”;)

If you’re interested, drop me a line here.  WARNING: Dropping a line constitutes a binding legal contract and will result in a ninja squad administering an Evans and Beck tattoo on your knuckles in the dead of night.

It should be a lot of fun, or a complete disaster, one of the two.  But fun either way.

About Jimmy Bogard

I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
This entry was posted in ASPNETMVC, DomainDrivenDesign, LINQ2SQL. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Would love to help but am DDD-illiterate (and not much better on NHibernate and TDD).

    Are you going to post screencasts of the sessions, or just posting the finished code? (+1 vote for screencast here :) )

    (PS: It’s Rob Conery doing the MVC example)

  • Ummm Rob Caron is TFS guy… :p

  • Well, it was all of Team System, not just Team Foundation Server. :)

  • @Robs

    Whoops, distracted by Rob Caron’s going-away post! I’ll fix that.

  • I’m down! You might see if Ray Houston is interested because he’s much stronger on the DDD stuff than I am (among other things).

  • Count me in too if you don’t mind a threesome. This is something I’ve been meaning to do on a larger scale anyway.

  • John Teague

    I’m interested too. Maybe we can do an Austin / Remote pairing.

  • @Dave

    I’ll definitely consider doing screencasts. The goal might not be to show the process, but the end result (or maybe just checkpoints along the way). It’s hard to produce the process you’d take in a reasonable fashion, though Rob does it well.

  • Jimmy,

    Maybe a good compromise is a screencast only of the initial planning work and the start of the first iteration, so people can get an idea of the kind of process that was used to create the end result?

    I’ve read loads of work on TDD and iterative development, but when it comes to putting it into practice I find it tough to link up planning, stories, and finding a good place in the not-yet-design to start writing tests. If you could put some of that into a screencast (or summarise it in a blog post) that would be invaluable for people like me that are keen to learn but don’t have a mentor.

    I’ve been trying to do a similar thing in a blog series developing a Snakes and Ladders-like game, but being n00b with it all I think I’ve already made a mistake by not working top-down. (At, if you’ll kindly excuse shameless link-dropping)

    Anyway, good luck with the experiment and will be keen to see the output from it, be it code or screen cast. :)

  • Ondra

    Hi, I’d be also interested in helping! Particularly in DDD part of the whole thing. I’ve been recently very passionate about that, but don’t have much (read none) of a real world experience with it.

  • I’d definitely be interested in getting involved.

  • Jon

    Did you get anywhere with this?

  • @Jon

    One of the problems I ran into at the beginning was that the codebase was still changing fairly frequently. When you’re trying to emulate behavior, that can be frustrating!

    I’d like to wait for a stable release before giving it another crack.

  • Hi,

    I am just starting with patterns and good my hands on a book that talks about the DDD patterns.

    also, what happen to the challenge?