Something I haven't really played around with is using IL directly from my codebase. However, Whizzo's Development Blog: Dirty check on objects[^] looks to be an interesting way of determining whether an object has changed or not. Saves having to manually add IsDirty semantics to types (which can be fragile).
As discussed in this[^] post in the Lounge, I've decided to run a series of posts about the books that I recommend and the books I would recommend avoiding. In order to keep a permanent record, I'll update this entry as I go on.