The great thing about me is that there’s so many of me

Geek points for identifying the movie quote from the title. 


Okay, I’m going to get this completely out of my system in one go and not do it anymore.  I used to roll my eyes at people that only use their blog for “look at me, I’m speaking at such and such on this date and I just published this or that,” but it appears that I’m one of those people now.  I swear, I’m writing up original blog posts with real content after this one — and finishing some useful StructureMap documentation.

First, my latest article for MSDN Magazine is up today on Object Role Stereotypes.  I was excited to write this article because I’m a huge fan of Rebecca Wirfs-Brock and her work on Responsibility Driven Design.  UML might be great at helping you visualize an existing or proposed design, but Responsibility Driven Design can help you figure out what the design should be and understand existing designs.  I’ve always thought RDD was undervalued in the clamor for fancy visual modeling tools.  I’m going to follow up pretty shortly with some material that got cut from this article for length.  I got quite a bit of inspiration for my recent StructureMap rearchitecture work from the research I did for this article.  I’d like to share that as well for more examples.

I’m going to be speaking this November at QCon San Francisco on my lessons learned about design, TDD, and framework usability from 5+ years of evolving the StructureMap code.  It’s a tremendous lineup of speakers for the conference and I’m just thrilled to be there.  I’m especially looking forward to the tracks on DSL’s, the “Architectures you’ve always wondered about,” and the track on Functional Programming.  Not to mention just being in San Francisco itself.

A short article I wrote earlier this year for CoDe Magazine entitled Using Continuous Integration to Reduce Project Friction is up on DevX.  If you need some help convincing your team or management to adopt Continuous Integration, this might give you some ammunition.

And finally, I’ve got a few last things to work out, but I’m finally going to start my “Presentation Patterns” book for Addison Wesley.  I’m effectively redoing the content from “Build Your Own CAB” plus the material I never got around to and making that a real book.  As of now, the proposed Table of Contents is:



  1. What’s
    so hard about building a User Interface?
    1. Look
      at everything that’s going on here
    2. How
      do I test this?
    3. How
      do I connect all this together?
  2. Separated
    1. The
      travails of using Active View
    2. The
      Humble Dialog Box (narrative)
    3. Separated
      Presentation (narrative)
    4. GUI
      Architectures (pattern)
    5. Passive
      View  (pattern)
    6. Supervising
      Controller (pattern)
    7. Presentation
      Model (Model-View-ViewModel) (pattern)
    8. Communication
      between the View and Presenter (narrative)

By events

Direct communication

    1. What’s
      the Model? (long narrative)
    2. Model
      Based Validation with the Notification Pattern
  1. The
    Mechanics of the View
    1. Managing
      Screen State (narrative)
    2. Flow
      Synchronization (pattern)
    3. Observer
      Synchronization (pattern)
    4. Flattener
    5. MicroControllers
    6. Embedded
      Controller (pattern)
    7. Screen State (pattern)
  2. Complex
    1. Composite
      Controller (pattern)
    2. Layout
    3. Messaging
  3. The
    Application Shell
    1. Coordination
      between Screens (narrative)
    2. Screen
      Activation Lifecycle (narrative)
    3. Presenter
    4. Application
    5. Application
    6. Screen
    7. Screen
    8. Layer
  4. Event
    1. Coordination
      between Screens
    2. Latch
    3. Event
      Aggregator (pattern)
    4. Command
  5. Crafting
    a Domain Specific Language (not well defined yet)
  6. Modularity
    1. Using
      an Inversion of Control Tool
    2. Bootstrapper
    3. Registry
  7. Communicating
    with the Server
    1. MORE
    2. Command
      Executor (pattern)
  8. Automated
    1. Unit
      testing the Presenter layer
    2. Unit
      testing the View
    3. Subcutaneous
    4. Strategies
      for User Interface Testing
    5. Screen
      Driver (pattern)

From the early feedback, it looks like I’ll move the testing material up and I think I’m going to include some discussion of “Mobile Objects” ala CSLA vs DTO’s / Bounded Context / Separate Domain Model for client & server.  I’d also like to talk about using an ESB like nServiceBus or Mass Transit for client to server communication.   The examples will primarily be WPF, but I’ll include some WinForms, Java Swing, and probably Flex.  I thought hard about using Cocoa examples, but for all of its cool features, I cannot read Objective C code.  The focus is on patterns and design rather than specific technologies.



Okay, I’m done with the self promotion now.  I promise.

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
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Shilo Raube

    Hi Jeremy-

    I saw that you’re a fan of Rebecca Wirfs-Brock and wanted to let you know that she will be a keynote speaker at SATURN 2009 May 4-7 in Pittsburgh.

    The conference may be a really good fit for you and your readers:

  • Colin Jack

    Can’t wait for the book but can’t believe you used the term “bounded context”. Made me rub my eyes in disbelief :)

  • Jeremy D. Miller

    Agent Smith,

    Hey, I twittered the other day that you were one of the best movie bad guys. What else do you want?

  • Agent Smith

    Mr. Miller, I’m going to ask for your cooperation. Please quote me properly: “The best thing about being me… There are so many “me”s”

  • Jeremy D. Miller


    You’re out of touch! Brandon Sanderson is finishing A Memory of Light from the draft, notes, and recordings that Jordan made before he passed away. Apparently, Jordan spent the last 6 mos getting the book ready to pass on to the next guy. I’ve read the new guy’s books. Say goodbye to 2 page descriptions of everybody’s outfit.

    Sanderson is working on it right now. There’s even a pseudo burndown chart on his webpage that tracks progress:

  • Scott

    ” My theory is to be done with the book just in time to read A Memory of Light”

    It’s been a lonnnnngggg time coming. But it’s still kind of a letdown. We discussed on the mailing lists whether or not he would live long enough to finish the series even BEFORE he was diagnosed. I hope he left behind enough detailed notes for the new author. Of course, we’ll never really know.

    Actually we will, if the first half of the book isn’t a recap of the previous 11 books we’ll know it’s a new author. 😉

  • Pascal Laurin

    “If anything, I need … somebody doing heavy duty financial stuff on the desktop.”

    I can do that! I sure want some sneak peak at that book before next summer.

  • David Fauber

    I’ll be buying the “Presentation Patterns” book.

  • Yang

    When’s the book going to be published? Just like Jeff, we have a bunch of CSLA apps that we want to migrate and it is interesting to find out the approaches that we can use.

  • Sheraz

    One thing about events is that the order they get exectued. I’m not sure if Event Aggregator (5.3 in list) is encapsulating this feature but if not then it’d be nice if you could touch upon this matter.

  • Krzysztof Koźmic

    Great to see you’re getting to put BYOC into a book format. From my perspective (and two other developers on my former team, that had been following the series along with me) I can say one thing. Please make examples a little bit more complicated. Those are complicated patterns, and while they are easy to grasp conceptually, as soon as you get your hands dirty with the code, more questions arise – should I put this in presented, or into view? In what form should I pass this data to View? Where should be this view logic put? Etc…
    I hope that since it’s a book, you’ll get more deeply into details.
    Is this book going to be a part of Martin Fowler’s signature series? (seems like a good fit to me).

    Anyway, good luck with the book, as far as I know your writing from the blog, I know it won’t disappoint me and I might as well preorder it today.

  • PandaWood

    I wonder if it would be better to focus on “one” technology when writing the book eg just use WPF (with a few supporting examples in other technologies (eg Java) only to reinforce ideas. Just so as not lose readers in trying to read multiple syntaxes.

    I think when Kent Beck wrote the classic TDD book he wrote the latter half of the examples in Python (?) to the bemusement of many readers.

    I don’t actually have a firm opinion on it, I’m just throwing it out there.

  • Rob

    Sure , bro.

  • Jeremy D. Miller


    I’ll have to double check, but I think I already asked that you be one of the reviewers. I’d love to talk to you about Caliburn along the way

  • Jeremy D. Miller


    I’ve got all the reviewers from the .Net, and especially ALT.NET, end of the spectrum that I could possibly need. If anything, I need some reviewers from Java land or somebody doing heavy duty financial stuff on the desktop.

    Thanks for all the offers though.

  • Rob

    Just though I’d volunteer myself for reviewing your book, if you need another pair of eyes 😉

  • Jeff

    “…some discussion of “Mobile Objects” ala CSLA vs DTO’s / Bounded Context / Separate Domain Model for client & server…”

    I’d really like to hear that. I have a CSLA app I wrote 2 years ago that I am trying to migrate towards a more pure domain style approach and it’s tough to figure out the best way to handle the server communication.

    I always thought nService bus was for more “enterprise” style systems but I wonder if it would also be good for a more basic windows client UI to web server application.

  • David Tchepak

    Book ToC looks good. If you are looking for some reviewers to give feedback during the writing process I’m happy to help out…. Well, it was worth a try :)

  • Eric

    Looks like an interesting read.

  • Jeremy D. Miller


    I think I’d be deeply honored for my latest X driven design article to be your “library” reading material

  • Jeremy D. Miller

    @Daniel Lidström

    I’m basically suffering from almost permanent guilt over not having that stuff finished and you just made it worse.

    Um, maybe by summer ’09 (Jeremy says sheepishly)? My theory is to be done with the book just in time to read A Memory of Light

    For design books, off the top of my head I’d say:

    Patterns of Enterprise Application Architecture by Martin Fowler

    and stay in Sweden for Jimmy Nilsson’s book for kind of an overview of all things design with Agile and .Net.

  • Haacked

    p.s. Agent Smith wants his line back.

  • Haacked

    Oh, looky at me, I’m Jeremy Miller the Shade F%##ing Tree Developer and I’m SOOOOO smart I’m speaking and writing everywhere. Read my latest article on X driven design in the bathroom stall at the local Denny’s!!!


    You might even consider these “promotional” points as a service to your readers. If we like your content enough to subscribe to your blog, we might look forward to reading articles etc… that you’ve written.

    – A loyal reader

  • Daniel Lidström


    I’ve been following the BYOC series for the last couple of months. It seems I found out about the series a bit late. Well, as you are not continuing it any longer, may I ask what you expect the time frame to be for the release of your book? I am definitely looking forward to reading it. We are just about to start a new project at work that aims to build a platform for all of our future software (Windows CE/Xp embedded based). What material (books) would you recommend reading in the meantime? I am quite new to DI/IOC (just a couple of months). Are there any forums where guys like you hang out?
    Thanks in advance!


    Daniel Lidström
    Software Developer, Stockholm, Sweden