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.