Ho utilizzato Spring.NET e NHibernate da alcuni anni e sono molto soddisfatto. Tuttavia, mi sono sempre divertito con il multi threading, le Reactive Extensions e infine Task Parallel Library, che è un ottimo framework. Sfortunatamente tutti i tipi di approccio al multithreading falliscono a causa della sessione di NHiberntate che non è thread-safe.Attività C# Libreria parallela e NHibernate/Spring.NET
Ti chiedo come posso beneficiare della programmazione parallela e utilizzare ancora NHibernate.
Per esempio: Ho una classe CustomerRegistrationService
quale metodo Register
svolge diversi compiti:
ICustumer customer = this.CreateCustomerAndAdresses(params);
this.CreateMembership(customer);
this.CreateGeoLookups(customer.Address);
this.SendWelcomeMail(customer);
Gli ultimi due metodi sarebbero candidati ideali per l'esecuzione in parallelo, CreateGeoLookups
chiama alcuni servizi web per determinare posizioni geo del cliente del indirizza e crea alcune nuove entità e aggiorna il cliente stesso. SendWelcomMail
fa quello che dice.
Perché CreateGeoLookups
utilizza NHibernate (sebbene attraverso gli oggetti repository in modo che NHibernate sia acutamente nascosto tramite Interfaces/Dependency Inection) non funzionerà con Task.Factory.StarNew (...) o altri meccanismi di threading.
La mia domanda non è quella di risolvere proprio questo problema che ho descritto, ma mi piacerebbe sentire da voi su NHibenrate, Spring.NET e approcci paralleli.
ringrazio molto Max
Dovresti davvero modificare la tua domanda principale con questa domanda. Qualcuno di questi ha funzionato come risposta? – paqogomez