Voglio iniziare ad usare NHibernate come O/R nel progetto che sto facendo, ma ci sono un mucchio di cose che mi disturbano architetturalmente. in primis, per ragioni di scalabilità e robustezza la mia business logic è costruita in EnterpriseServices, e con un po' di sforzo sono riuscito a disaccopiare tutti i miei componenti in modo che esistono solo delle interfacce condivise ed il resto è gestito da un framework che inietta in ogni serviced component le "dipendenze di servizio". Ora il primo problema è: NHibernate ha un session factory, che dovrebbe per ragioni di efficienza essere singolo all'interno di una applicazione. L'altro problema è: come condivido tra tutti i serviced component il session factory ? La prima soluzione che mi viene in mente è: sfruttare Shared Property Manager per mantenere una reference condivisa visibile a tutti i componenti. Ammesso che questo funzioni, poi ho le classi di mapping. Visto che i componenti sono molto disaccopiati, e che ciascuno necessita di zone ben individuabili di database, vorrei che fosse il componente a tenere traccia dei template di mapping, con le relative classi, e questo cozza con la sessione unica, che mi costringe in fase di creazione del session factory a specificare tutti gli hbm. Insomma c'è qualcosa che non mi quadra, mi sembra che mettere su nhibernate mi faccia buttare alle ortiche tutto il lavoro di disaccopiamento tra componenti che ero riuscito ad ottenere.