In the past week I had the chance to make some improvements and fixes to my NHibernate ConfORM Mapping Explorer utility (more info on my previous post: http://www.primordialcode.com/blog/post/nhibernate-conform-mapping-explorer), so here are some of the ‘hot spots’ of this release:

  • You can now safely use ANY version of NHibernate 3 and ConfORM when exploring your own mappings, the utility will default to the bundled ones only if it cannot find your specific copies of the DLLs in the directory under probing.
  • You can specify any Driver and Dialect that will be used to generate the database scripts (even your custom provided ones), if nothing is specified the default values are SqlDriver and MsSql2005Dialect.
  • The NHibernate logging interception code has been fixed to work even if you do not have the log4net.dll inside the probing directory.
  • A new way to discover the DomainMapper has been added: for those that use MEF and .Net Framework 4 you can now export the domain mapper using the following attribute: [Export("IDomainMapper")] instead of declaring the IDomainMapper interface. However you still need to implement the two properties that expose the mappings to the outside world (HbmMapping and HbmMappings, see my previous article).
  • Some minor fixes to the UI code in general.

I’m not a good designer so the UI isn’t changed much...but here’s how it looks like now:

ConfOrmToolBox2

Figure 1 - The mapping explorer in action showing the ConfORM generated mappings for Dexter Blog Engine.

If any of you have some ideas or some WPF theme that I can take and customize to improve the UI and the UX a bit...I’m open minded to any suggestion, so don’t hesitate to contact me directly Open-mouthed smile. Any help is always appreciated!

You can get the updated version here:

What’s for the next versions ?  I’d like to find time to work more on this utility and provide the need for only one function to export all the mappings, extend it to support other mapping engines (like Fluent NHibernate) and provide a better navigation experience between the mapped classes.

Related Content