Serialized NHibernate Configuration objects - detect out of date or rebuild on demand?
        Posted  
        
            by fostandy
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by fostandy
        
        
        
        Published on 2010-03-17T03:41:11Z
        Indexed on 
            2010/05/09
            23:38 UTC
        
        
        Read the original article
        Hit count: 322
        
nhibernate
|fluent-nhibernate
I've been using serialized nhibernate configuration objects (also discussed here and here) to speed up my application startup from about 8s to 1s. I also use fluent-nhibernate, so the path is more like
- ClassMap class definitions in code
 - fluentconfiguration
 - xml
 - nhibernate configuration
 - configuration serialized to disk.
 
The problem from doing this is that one runs the risk of out of date mappings - if I change the mappings but forget to rebuild the serialized configuration, then I end up using the old mappings without realising it. This does not always result in an immediate and obvious error during testing, and several times the misbehaviour has been a real pain to detect and fix.
Does anybody have any idea how I would be able to detect if my classmaps have changed, so that I could either issue an immediate warning/error or rebuild it on demand?
At the moment I am comparing timestamps on my compiled assembly against the serialized configuration. This will pickup mapping changes, but unfortunately it generates a massive false positive rate as ANY change to the code results in an out of date flag. I can't move the classmaps to another assembly as they are tightly integrated into the business logic.
This has been niggling me for a while so I was wondering if anybody had any suggestions?
© Stack Overflow or respective owner