I'm in Austin, Texas for the Kaizen Continuous Improvement Conference this weekend. One of the very cool things the organizers did for this event was offer two days of workshops before the conference. While I'm excited for the conference itself, much of my excitement for the conference stemmed from these pre-conference workshops. Yesterday I went to two workshops, both of which should be online at some point.
Advanced NHibernate - with Ayende Rahien
I was a little leery of this one given our seemingly trivial usage of NHibernate. I was pleasantly surprised to see how much of this was perfectly timed for where we are at. Oren went into great detail on various parts of the NHibernate and it's contributing projects. He spoke a bit on caching and performance optimizations/pitfalls that you generally have to watch out for. Quite possibly the coolest feature was getting to see NHibernate profiling application that Oren is working on. This won't be a free tool but the price from what I've heard from Oren will be very reasonable (I am not saying the price since it may change). With NHProfiler you can see all the queries that get executed from you application. It even has alerts built in, such that if it detects a problem (ie. Select N+1) it will let you know. Without hesitation, if you're using NHibernate, buy NHProfiler when it comes out, it is easily worth it.
The most important concept that I got from this session is how powerful NHibernate is. People can fight ORM, roll their own solution, or write their own T-SQL but when you see what NHibernate has to offer it seems ridiculous to choose any of those options. Two little known NHibernate features you may not have known about that I've found very cool:
- NHibernate Search : Leverages the open source Lucene.NET implementation and keeps allows you to do search which have performed poorly in the database against a very fast Lucene index.
- NHibernate Shards : Written by Google this allows you to scale across a number of databases. I won't delve into sharding here but you can read up on it on wikipedia.
DDD Chalk Talk - David Laribee
I was very interested in this chalk talk since the name seemed to indicate we'd get a chance to have an open discussion about DDD and how one would approach DDD in their domain. This talk seemed to have peaks and valleys. It was no fault of anyone in the talk, but DDD seems to be one of those topics where it becomes extremely tough to follow once you get outside of what you know. The topic of aggregate roots and contexts were quite helpful. I found it encouraging that ideas that I have interpreted from the book seem in line with what David Laribee demonstrated on the white board. I'm only a few chapters into the book and am absorbing as much of the DDD concepts from those who are ahead of me on this path. I'm encouraged to see where others have taken it, the value they have found in it, and what it could mean for our application(s) in the future. Just have to keep reading and learning.
Quite a lot for only the first day of a multi-day conference. For those of you who aren't here in Austin but wish you were, keep an eye out for videos of the many presentations that my pop up. I will update this blog if/when I see them appear online. There was a lot of good content coming out of these workshops and it'd be a shame to have the content limited only to those in attendance.
11-01-2008 1:17 AM