Wanna see how Dovetail builds software (or not, it’s a free country)?

Chad Myers and I are more or less volunteering to put on a 4 hour session at the 2010 Austin Code Camp (for a variety of reasons this is the first time I’ve been to it since ’06) just presenting an insider’s look at some of the project work we’re doing in the spirit of our “Opinionated MVC” talk from KaizenConf in ’08.  We can talk about almost anything but actual business logic, but here’s the topics I’m thinking of:

  • Dovetail’s “rules engine.”  We have a custom rules engine built on the standard Event – Condition – Action pattern that works against our domain model.  The E-C-A parts are all composed with StructureMap and the rules configuration is done by an external DSL editor that presents a near English experience for users.  It’s also very extensible for those pesky customer customizations down the road.  I think this is the most challenging project I’ve ever done by far.  Oh, and we can add new “Condition’s” and “Action’s” to both the engine and DSL without changing one single line in our core Dovetail code.  How ’bout them apples?
  • How we use StoryTeller and Selenium to do automated web testing.  Lots of challenges and lessons learned to make testing go faster and be less brittle in an Ajax heavy site.
  • Using FubuMVC.  How it really plays out.  Using the Html conventions to really go fast and kill repetitive coding — and it goes way beyond what anything in MSMVC2 is capable of w/o heavy gymnastics.  Advanced model binding.  How we get eliminate the “tag soup” problem in our views.
  • Tying jQuery together with server side conventions and Html helpers.  A lot of the pizzazz of jQuery is only unleashed when you combine it with your server side Html generation.
  • Our “ActionRouter” / Continuation model for some Ajax handling.  It’s a cool little sample of making an internal DSL pay off dividends
  • Convention over Configuration from our Domain Model back to the database and forward to the UI
  • Extension properties.  We have a need in our application to allow customers (or really our professional services folks) to add new properties to our system and capture this data on the screen with fullblown validation and edit in place functionality without touching our core code.  Lots of Fluent NHibernate and FubuMVC trickery to make it work.


Anything you want to hear about?  We’ll get it filmed and posted on Viddler or something similar.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://codebetter.com/members/jmiller/default.aspx Jeremy D. Miller


    I’m sorry, we had to cancel the session. Both Chad & I had family things and couldn’t attend.

  • DarkDeny

    Since I will not be able to visit code camp I hope video of the session will be available somewhere on the internet.

  • http://mats.softgear.se Mats Lycken

    Rules engine, FubuMVC, extension properties, ActionRouter.

    In that order.

  • http://wizardsofsmart.net/ Ryan Riley

    I’m with the other Ryan (Kelley), esp re: the ActionRouter and Rules Engine. Too bad I’m moving off; otherwise I’d not miss it. I’m looking forward to the video. Someone please remember to press “Record”!

  • http://elegantcode.com Ryan Kelley

    Jeremy, would really love to hear more about your Rules Engine and your Extension Properties. Also curious about your ActionRouter stuff.

    May have to make another trip to Austin this spring!

  • Kaarel

    Rules engine, convention over configuration

  • Arnis L.

    Jeremy, will we get video?

    I would like to see this session, but there’s no way i could get to Austin.

  • http://darrell.mozingo.net Darrell Mozingo

    I’d vote for the testing stuff and jQuery integration. Can’t wait to see the video regardless of what you talk about from the list – it all sounds interesting.

  • John Hilts

    I’d be interested in the rules engine and testing stuff, more than the FUBU MVC specific stuff. Actually, it all sounds interesting, but if forced to choose those would be my choices . . .

  • Richard Lowe

    I won’t be at the code camp, but I will def. watch and promote the video, if posted.

    I’m really really intrigued as to what the ‘pizazz’ is of the jQuery/server html generation could be.

    Also the the testing, while not the sexiest thing, is very relevant to me – I’d love to see in detail what you’re doing. StoryTeller and Selenium are both interesting to me, I’ve just never explored them.


    The rest excites me less.

  • Chad

    I’d like to see/hear what you’ve done with a Rules Engine and Convention over Configuration

  • http://codebetter.com/members/jmiller/default.aspx Jeremy D. Miller


    I’m not saying do all of it. I was hoping for “this sounds good, that sounds dull.” 😉

  • http://colinjack.blogspot.com Colin Jack

    Rules Engine, Convention over Configuration, Extension Properties would be the order for me.

  • http://realfiction.net Frank Quednau

    That’s darned dense for 4 hours…sounds more like a week of fun! I like the “more or less” bit.

  • http://ricardodsanchez.com Ricardo

    This all sounds great, looking forward to be at this session.