Hm, I think the first part of the blog describes the how and why of the
pattern well enough

http://fabiomaulo.blogspot.com/2008/12/conversation-per-business-transaction.html

But I think, it will not fit in every scenario of a winform application or
maybe I didn't understand all of it :-).
The problem i have is, for example if it comes to lazy loading. Simply think
of two views, one shows
a list of data and the other one details for the selected entity, with lazy
loaded attributes. The two
views are independed of each other and part of independend use cases. But
while both usecases may
be instantiated from one parent usecase they may also be instantiated
standalone. So the lifetime of
a specific repository may span several usecases or just one, if you want to
avoid multible queries for the
same entity. My approach to this is to use a  PersistenceContext. Every
usecase may instantiate it's own
PersistenceContext or may use the PersistenceContext, provided by the
CallingContext. So i'm able to simply
control the lifetime of the  Repository. Since the views are controlled by
the usecase they simply use the
Repository provided by the PersistenceContext. So, if the user wants to edit
an entity from the list, this
starts a new usecase with a modal view and an own PersistenceContext. If
this transaction fails, it has
nothing to do with the already displayed entity. If is is commited
succesfully, i just have to refresh the entity in
the "main" context. I don't know if this is a good approach, but it works
really nice for me. And since
informations about NH and WinForms are really rare and even the NHiA book
doesn' really tell
something about it, i'll stick to it :-)





2009/8/23 ChrisHolmes <[email protected]>

>
> I am not interested in Castle ActiveRecord.
>
> I'm interested in actually learning how to accomplish my goals. I'll
> write my own bits to accomplish my tasks, but I need to understand how
> and why things work, and how they should be done.
>
> I don't have an understanding of HOW to actually manage the NHibernate
> ISession in a WinForm application. No one cares to explain that. I
> don't understand how, when I do have an ISession managed, how I use
> that in something like a Repository, which is code that will live much
> closer to the DB than a higher level WinForm controller. No one cares
> to explain that either.
>
> I've read a whole lot of theoretical stuff about session-per-
> conversation, but no one actually takes any time to describe the how
> and way and actually show the usage. It's very discouraging.
>
> -Chris
>
> On Aug 22, 12:11 pm, Raul Carlomagno <[email protected]> wrote:
> > you can try castle activerecord too, it abstracts a little NH Sesion
> > artifact
> >
> > On Aug 22, 1:25 pm, ChrisHolmes <[email protected]> wrote:
> >
> > > Hey gang,
> >
> > > I'm trying to figure out the best way to handle the NHibernate session
> > > in a WinForm scenario. I've Googled this to death and I still can't
> > > find anything that makes sense and I haven't found any actual code
> > > that I can read and make sense out of. I've read a lot about Session-
> > > per-Request and at the conceptual level it makes sense, but I haven't
> > > seen code that makes sense (and the context for this pattern is often
> > > web, which doesn't work for me).
> >
> > > If anyone has any suggestions or best practices, particularly any code
> > > or pseudo code that I can read to get a clear understanding of the
> > > parts involved and how they interact, I'd appreciate it.
> >
> > > Details about my application: From the application point of view, it's
> > > easy for me to create boundaries for a unit of work. I basically have
> > > a controller class that is responsible for creating/managing views in
> > > a MVP fashion, and then handling some elementary coordination. So the
> > > controller works as a pretty good UoW boundary; it's very feature
> > > specific. But what I can't figure out is how the NHibernate session is
> > > actually best managed in this scenario, how the abstractions are
> > > handled, and how the session relates to other things that need to make
> > > use of it (like a Repository).
> >
> > > I'm using StructureMap for IoC, and I'd really like to take advantage
> > > of that. This is something that is in the greenfield arena, and in the
> > > very beginning phases of development, and I want to make good
> > > decisions about this design up-front.
> >
> > > Appreciate any help anyone can lend.
> >
> > > -Chris
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to