Я использую Spring.NET и NHibernate несколько лет и очень доволен. Тем не менее, я всегда играл с многопоточностью, реактивными расширениями и, в конечном итоге, с библиотекой параллельных задач, которая является отличным фреймворком. К сожалению, все виды многопоточности терпят неудачу из-за сеанса NHiberntate, который не является потокобезопасным.
Я спрашиваю вас, как я могу извлечь выгоду из параллельного программирования и по-прежнему использовать NHibernate.
Например: у меня есть CustomerRegistrationService
, метод Register
выполняет несколько задач:
ICustumer customer = this.CreateCustomerAndAdresses(params);
this.CreateMembership(customer);
this.CreateGeoLookups(customer.Address);
this.SendWelcomeMail(customer);
Последние два метода были бы идеальными кандидатами для параллельной работы, CreateGeoLookups
вызывает некоторые веб-службы для определения географического местоположения адреса клиента. и создает несколько новых сущностей, а также обновляет самого клиента.
Макс