views:

419

answers:

2

I am new in NHibernate, you can say I am almost at dummy level :( . What I want to know is that what is NHibernate Interceptor, and for what purpose does it serve in an application?

Also, in this article, I learned that using NHibernate makes a desktop application slower at startup, so to avoid this, I need to save the configuration in a file, and later load it from the saved file. How can I do that? I didn't find anything specific in that tutorial

+4  A: 

An interceptor allows you to execute additional functionality when an entity is retrieved / deleted / updated / inserted in the DB ...

Interceptors article

Hibernate doc

other useful info

About making your app slower: I'd suggest that you only have a look at optimizing start-up time, when it really becomes a problem.

When you build a session-factory, NHibernate will parse all the mappings, and that is an operation that is a bit expensive. But, as long as you have a limited number of entities, the performance hit isn't that big.
I have never ever had to optimize the initialization of NHibernate, because of slow startup times.

I'd suggest that you first concentrate on the core of your application -the problem you're trying to solve- and afterwards have a look on how you could improve startup performance. (If you'll ever have to do it).

Frederik Gheysels
+4  A: 

Interceptors, like the name itself says, allows you to intercept NHibernate operations (save/update/delete/load/flush/etc).

A newer, more flexible API to achieve this is the event system.

About serializing the configuration, the code is there, it's the class Effectus.Infrastructure.BootStrapper which is called at application startup.

Mauricio Scheffer