@nadav. do you have a sample of that code? If you do it should be added to
NHForge. If you provide the source listing I will upload and document it for
you, if you are too busy.

John Davidson
(My sample just gets a new session, rather than initing a unit of work - so
I think yours is a better solution).

On Mon, Jun 28, 2010 at 2:05 PM, nadav s <[email protected]> wrote:

> In my opinion, you need to wrap those init calls so the presentation tier
> won't have any knowlage of a session or a session factory, but wrap it with
> you're own class. a good name for it will be unit of work.
> i've seen those examples that initiate the session per request directly,
> and i agree that seperate http module is only the first step.
> wrapping the nh session is the next IMO, so at least fromt he presentation
> point of view, its telling the current unit of work to init, and not the
> session factory to create an nhibernate session
>
>
> On Mon, Jun 28, 2010 at 8:48 PM, Vadim Chekan <[email protected]>wrote:
>
>> I agree with Felipe,
>>
>> 1. By moving persistence initialization into a separate http module
>> nothing changes: you are still having persistence calls in
>> presentation tier: HttpModule is part of presentation framework. May
>> be you imply the fact that it allows you to remove NH from referenced
>> assemblies? Then it does not remove dependency but creates an illusion
>> of dependency being removed because your app won't even start without
>> NH assembly.
>>
>> 2. Often system components require initialization. In this case Global
>> acts not as part of presentation tier, but as application start hook,
>> where you put your init calls. For example in console application
>> it'll be Main(), in Win Service it'll be OnStart. Moving init calls
>> into HttpModule, which were not directly intended for initialization
>> make program more difficult to read.
>>
>> 3. I can think of legitimate reasons for removing binary dependency,
>> for example application can use one of several persistence strategies.
>> Then as architect you may feel bad about linking libraries which may
>> be not used at all.
>> In scenarios when NH is the only option, linking HN assembly is a good
>> thing. And putting init call where it is expected to be is good too.
>>
>> Vadim.
>>
>> On Jun 26, 2:53 pm, nadav s <[email protected]> wrote:
>> > no, its a matter of having a direct reference to the DAL or event worse,
>> a
>> > persistance tool that your dal uses, from the presentation layer. its a
>> > basic 3 tier anti pattern.
>> >
>> > On Sun, Jun 27, 2010 at 12:22 AM, Felipe Oriani <[email protected]>
>> wrote:
>> > > Hi guys ... thanks for the awsers!
>> >
>> > > What is there any difference between I use an HttpModule or
>> Global.asax
>> > > (prerequest / postrequest) events ?  one has more performace than the
>> > > other?
>> >
>> > > On Sat, Jun 26, 2010 at 3:56 PM, John Davidson <[email protected]
>> >wrote:
>> >
>> > >> Unfortunately there are _many_ samples on the Internet that show
>> almost
>> > >> the same initialization using the global.asax This use of an
>> HttpModule for
>> > >> this purpose needs to be described as a best practice for
>> initializing a
>> > >> session in NHibernate.
>> >
>> > >> John Davidson
>> >
>> > >> Sent from my iPad
>> >
>> > >> On 2010-06-26, at 11:55, nadav s <[email protected]> wrote:
>> >
>> > >> it has nothing to do with you're question, but i don't think its wise
>> > >> putting this code in the global asax, and therefor making you're
>> > >> presentation layer too much aware of you're persistancy.
>> > >> you can write an HttpModule that does just that and register it in
>> the web
>> > >> config.
>> >
>> > >> On Sat, Jun 26, 2010 at 6:18 PM, Felipe Oriani < <[email protected]
>> >
>> > >> [email protected]> wrote:
>> >
>> > >>> Hi all, I'm developing an application using Asp.Net MVC. I've
>> developed
>> > >>> a session per Request... so when the browser request something from
>> server,
>> > >>> the app start an session.
>> >
>> > >>> By the way, I have a page in my website that each second does a
>> > >>> asynchronous request by Json to take some information at cache (and
>> the
>> > >>> first time, the cache is loaded from database, by repositories using
>> > >>> Nhibernate). Everything is fine, but when I see the application
>> running with
>> > >>> NHProf, I see all "ISession" per request ... but any command is
>> executed
>> > >>> (because I load a cache).
>> >
>> > >>> I wonder, if doing so may cause a problem in the future? Or, with
>> many
>> > >>> accesses the web application may become slow ?
>> >
>> > >>> At my global.asax I do this:
>> >
>> > >>> public override void Init()
>> > >>>         {
>> > >>>             base.Init();
>> >
>> > >>>             PreRequestHandlerExecute += OpenNHibernateSession;
>> > >>>             PostRequestHandlerExecute += DisposeNHibernateSession;
>> > >>>         }
>> >
>> > >>>         private static void OpenNHibernateSession(object sender,
>> > >>> EventArgs e)
>> > >>>         {
>> > >>>             if (RequestHelper.IsStaticFiles())  // ||
>> > >>> RequestHelper.IsJson()) = to avoid calls Json if necessary, but i'll
>> need
>> > >>> use h in some called jsons
>> > >>>                 return;
>> >
>> > >>>             ManagedWebSessionContext.Bind(HttpContext.Current,
>> > >>> _sessionFactory.OpenSession());
>> > >>>         }
>> >
>> > >>>         private static void DisposeNHibernateSession(object sender,
>> > >>> EventArgs e)
>> > >>>         {
>> > >>>             if (RequestHelper.IsStaticFiles()) // ||
>> > >>> RequestHelper.IsJson())
>> > >>>                 return;
>> >
>> > >>>             var session =
>> > >>> ManagedWebSessionContext.Unbind(HttpContext.Current,
>> _sessionFactory);
>> > >>>             if (session != null)
>> > >>>                session.Dispose();
>> >
>> > >>>         }
>> >
>> > >>> If someone can help-me... I'll! appreciate
>> >
>> > >>> PS: Sorry for my english!
>> >
>> > >>> Cheers
>> >
>> > >>> --
>> > >>> ______________________________________
>> > >>> Felipe B. Oriani
>> > >>> <[email protected]>[email protected] |
>> > >>> <http://www.felipeoriani.com.br>www.felipeoriani.com.br
>> >
>> > >>> "...Trabalhe quanto puder, tornando-se útil quanto possível..." ,
>> por
>> > >>> André Luiz
>> >
>> > >>> --
>> > >>> You received this message because you are subscribed to the Google
>> Groups
>> > >>> "nhusers" group.
>> > >>> To post to this group, send email to <[email protected]>
>> > >>> [email protected].
>> > >>> To unsubscribe from this group, send email to
>> > >>> <nhusers%[email protected]<nhusers%[email protected]>
>> >
>> > >>> [email protected]<nhusers%[email protected]>
>> .
>> > >>> For more options, visit this group at
>> > >>> <http://groups.google.com/group/nhusers?hl=en>
>> > >>>http://groups.google.com/group/nhusers?hl=en.
>> >
>> > >>  --
>> > >> 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]<nhusers%[email protected]>
>> .
>> > >> For more options, visit this group at
>> > >>http://groups.google.com/group/nhusers?hl=en.
>> >
>> > >>  --
>> > >> 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]<nhusers%[email protected]>
>> <nhusers%[email protected]<nhusers%[email protected]>
>> >
>> > >> .
>> > >> For more options, visit this group at
>> > >>http://groups.google.com/group/nhusers?hl=en.
>> >
>> > > --
>> > > ______________________________________
>> > > Felipe B. Oriani
>> > > [email protected] |www.felipeoriani.com.br
>> >
>> > > "...Trabalhe quanto puder, tornando-se útil quanto possível..." , por
>> André
>> > > Luiz
>> >
>> > > --
>> > > 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]<nhusers%[email protected]>
>> <nhusers%[email protected]<nhusers%[email protected]>
>> >
>> > > .
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/nhusers?hl=en.
>>
>> --
>> 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]<nhusers%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>>
>  --
> 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]<nhusers%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>

-- 
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