Kaizenconf Part 1 - Workshops

November 5, 2008

My colleague Peter and myself got back yesterday from Austin, Texas where we had one of the greatest learning experiences ever: the Kaizen Continuous Improvement Conference. I've really been looking forward to this event and it exceeded my already high expectations.

Before the actual open-space conference, there were two days with workshops. In this post I want to highlight some things I learned from these workshops.

Advanced NHibernate (Ayende Rahien)

I guess that the speaker of this session needs no further introduction. As one of the major contributors of my favorite ORM, he is the right person to talk about some of its advanced usages.


Here are some random notes:

  • The NHibernate profiler looks really cool.
  • NH is not a 100% solution. Only use NH for an OO view of the world. If you're only interested in data or transforming/reporting, then use something else.
  • A single session can have multiple transactions.
  • NH 2.1 adds PostSharp support for removing the need for virtual properties/methods (proxies/lazy loading).
  • Adaptive Domain Models (e.g. Rhino Security)
  • Multitenancy (e.g. different domain models or databases for different customers).
  • NH profiler is freakin' cool.
  • NHibernate Search = Lucene.NET + NHibernate.
  • Lucene.NET: file store + full text search.
  • FullTextSearchSession only necessary for full text search (through its extra methods). Using a regular NH Session also ensures that the Lucene.NET index gets updated.
  • NHibernate uses 4 different caches:§ First level cache (also identity map at the session level)

    § Second level cache (session factory level)

    • Entities cache
    • Collections cache
    • Timestamp
    • Query cache
  • Enable second level cache at entity level in the mapping files. This also goes for the collection and the entities that populate the collection!!
  • Enable query cache -> SetCacheable(true) on criteria query and enable query cache in the configuration file.
  • Cache regions -> SetCacheRegion on criteria query.
  • Prevalence cache can best be used for smart clients (single machine).
  • SysCache uses the ASP.NET caching (single machine).
  • SysCache2 provides support for SQL dependencies for the ASP.NET cache (not recommended).
  • MemCache is used for distributed applications.
  • Velocity is also used for distributed applications.
  • Did I already mention that the NH profiler is really cool, because it is.

DDD Chalk Talk (Dave Laribee)

This session was a real mind stretcher for me. I've come to realize that I need to reread the "blue book" again. I've got way too many notes from this workshop. I'll just put out some of the topics that were discussed:

  • DSLs in relation to Rich Domain Model
  • Publishing vs protecting a model
  • Verbs vs Domain services
  • Command Query Seperation
  • Model Controller
  • Test models (Michael Feathers)
  • How to introduce/get started with DDD
  • Complexity
  • Bounded context vs Context maps

I saw that a lot of people were recoding this session, so I have a suspicion that it will become available somewhere very soon.

Using and Abusing ASP.NET MVC for Fun and Profit (Jeremy D. Miller and Chad Meyers)

Jeremy and Chad shared their opinionated approach to using ASP.NET MVC for efficiently creating web applications. This very neat stuff is already lined out by this post from Jeremy. I heard some rumors on Twitter that Chad is working on releasing some of the code as open-source. The videos of this workshop are available here.

Presentation Patterns (Jeremy D. Miller and Glenn Block)

This was probably one of the highlights of the pre-conference workshops. There was this amazing back and forth between Jeremy and Glenn that I just forgot to make notes. I hope someone recorded this "masterpiece" because I want to watch it again. I thought that I already knew a lot about Passive View, Supervising Controller, Presentation Model and other companying presentation patterns. I soon realized that I am just a noob and took away lots of stuff from this session.

After the workshops, the open-space conference could finally begin ...

If you and your team want to learn more about how to write maintainable unit tests and get the most out of TDD practices, make sure to have look at our trainings and workshops or check out the books section. Feel free to reach out at

Profile picture of Jan Van Ryswyck

Jan Van Ryswyck

Thank you for visiting my blog. I’m a professional software developer since Y2K. A blogger since Y2K+5. Provider of training and coaching in XP practices. Curator of the Awesome Talks list. Past organizer of the European Virtual ALT.NET meetings. Thinking and learning about all kinds of technologies since forever.



Thank you for visiting my website. I’m a professional software developer since Y2K. A blogger since Y2K+5. Author of Writing Maintainable Unit Tests. Provider of training and coaching in XP practices. Curator of the Awesome Talks list. Thinking and learning about all kinds of technologies since forever.

Contact information

(+32) 496 38 00 82