Acredito que o Giovanni tenha feito essa colocação a respeito de
atomicidade ser por Root Aggregation, pois teoricamente quando
trabalhasse com um root aggregation todos os objetos que ele precisa
usar estão de alguma forma relacionados a ele. Dessa forma, utilizando
qualquer framework de ORM, quando você mandar persistir o root os
objetos associados e alterados de um jeito ou de outro vão ser
persistidos tb pelo ORM.
Exemplo: Pedido e Produto. Por mais que os dois sejam root
aggregations eles tem um relacionamento direto (Pedido contem produtos
e um Produto pode estar em pedidos). Dessa forma quando você altera os
dois e manda persistir um só, os dois vao acabar sendo persistidos.
Att.,
Tuca
On Jul 6, 12:00 pm, Régis Soares <
regissoa...@gmail.com> wrote:
> Para compartilhar a sessão por vários repositórios vc pode usar session per
> request ou conversação. Nos repositórios vc tem apenas
> NhHelper.GetCurrentSession().
>
> 2010/7/6 Alessandro de Souza <
alessandro.de.so...@gmail.com>
>
> > Depois do comentário do Giovanni, que também estou aguardando uma melhor
> > explicação (please Giggio)... foi tudo por terra.....
> > Mais a abstração seria em caso de compartilhar a mesma issession por vários
> > repositórios.....
>
> > Em 6 de julho de 2010 11:25, Régis Soares <
regissoa...@gmail.com>escreveu:
>
> > Não entendi ainda qual a justificativa para usar tal abstração.
>
> >> Tudo bem que criar um IHttpModule introduz uma dependência do NH na
> >> aplicação Web, pois o módulo deve conhecer a ISession. Mas mesmo assim acho
> >> tal dependência tão pequena que não justifica introduzir mais código (e mais
> >> complexidade) para removê-la.
>
> >> 2010/7/5 Alessandro de Souza <
alessandro.de.so...@gmail.com>
>
> >>> Oi Alexandre...
> >>> eu concordo com vc...
> >>> Só que o custo do que eu quiz dizer com um UOW genérico é muitissimo
> >>> baixo... não passa de uma interface com uns 3 metodos apenas:
> >>> IniciarTransação, FinalizarTransação e AbortarTransação.
> >>> Na classe concreta apenas usamos o session no caso do NH ou ObjectContext
> >>> no caso do EF...
> >>> Baixo custo creio eu.....
>
> >>> Abraços...
>
> >>> Em 5 de julho de 2010 21:40, Alexandre Valente <
> >>>
alexandre.g.vale...@gmail.com> escreveu:
>
> >>> Oi Alessandro,
>
> >>>> Mais ou menos né? Se vc quiser fazer um UOW genérico, vc vai ter um
> >>>> custo que dificilmente se paga a não ser que vc troque de framework, o que é
> >>>> raríssimo. E o pattern é tão simples que refazer provavelmente é muito mais
> >>>> simples do que tentar fazer algo genérico.
>
> >>>> Na minha experiência, quase a totalidade dos casos de NH se resolve com
> >>>> um SessionScope sendo criado per request e um transactionScope qdo
> >>>> necessário... Claro que com o ActiveRecord fica ainda mais simples... Assim
> >>>> não temos razões para complicar muito.... :-)
>
> >>>> abs,
>
> >>>> Alexandre Valente
> >>>> MCSE+I, MCSD, MDCBA, ITIL, CSM
> >>>>
agvalente.wordpress.com
> >>>>
www.whitefox.com.br<
http://www.whitefox.com.br%20/>
>
> >>>> 2010/7/5 Alessandro de Souza <
alessandro.de.so...@gmail.com>
>
> >>>> Amigos... aqui vale uma ressalva..
> >>>>> Se estivermos falando de DDD os repositórios devem ser abstraídos para
> >>>>> que fique bem desacoplado com o domínio e o restante da aplicação. Ou seja:
> >>>>> indiferente de qual tecnologia for usada para implementação dos repositórios
> >>>>> concretos o domínio e o restante da aplicação devem funcionar da mesma
> >>>>> forma.
> >>>>> Como os repositórios devem ser abstraídos o UOW também. Assim,
> >>>>> indiferente de qual tecnologia for usada para a implantação concreta dos
> >>>>> repositórios o UOW também deverá ser implementado para funcionar
> >>>>> corretamente.
> >>>>> Em resumo o UOW deve ser abstraído para ser possível usá-lo tanto com o
> >>>>> NH como o EF, EF4 ou qualquer outro ORM ou mesmo acesso direto,
> >>>>>
ADO.NET <
http://ado.net/> e assim vai....
>
> >>>>> Acho que é isto.....
>
> >>>>> Em 5 de julho de 2010 18:37, Régis Soares <
regissoa...@gmail.com>escreveu:
>
> >>>>> Então é como dizem: "Para quê facilitar se a gente pode complicar?"
> >>>>>> rs
>
> >>>>>> abs
>
> >>>>>> 2010/7/5 Alexandre Valente <
alexandre.g.vale...@gmail.com>
>
> >>>>>> É um nome mais bonito pra exatamente isto! :-)
>
> >>>>>>> abs,
>
> >>>>>>> Alexandre Valente
> >>>>>>> MCSE+I, MCSD, MDCBA, ITIL, CSM
> >>>>>>>
agvalente.wordpress.com
> >>>>>>>
www.whitefox.com.br<
http://www.whitefox.com.br%20/>
>
> >>>>>>> 2010/7/5 Régis Soares <
regissoa...@gmail.com>
>
> >>>>>>>> Pessoal,
>
> >>>>>>>> Vejo ultimamente muita gente falando de MVC com Repositórios e UOW
> >>>>>>>> aqui no DNA. Alguém pode me explicar o que querem dizer com isso?
>
> >>>>>>>> Pois pelo que entendo, quando trabalhamos com NHibernate a Session
> >>>>>>>> é a UOW, e quando usamos o padrão Session per request, isso fica mais
> >>>>>>>> evidente. Ou seja, isso é transparente para quem está usando. Quando dizem
> >>>>>>>> "Repositórios e UOW" parece estar se tratando de algo diferente.
>
> >>>>>>>> abs
> >>>>>>>> Régis Soares
>
> >>>>>>>> --
> >>>>>>>> Você recebeu esta mensagem porque faz parte do grupo .Net Architects
> >>>>>>>> hospedado no Google Groups.
> >>>>>>>> Para postar envie uma mensagem para
> >>>>>>>>
dotnetar...@googlegroups.com
> >>>>>>>> Para sair do grupo envie uma mensagem para
> >>>>>>>>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >>>>>>>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >>>>>>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >>>>>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >>>>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >>>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >>
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>
> >
dotnetarchitec...@googlegroups.com<
dotnetarchitects%2Bunsu...@googlegroups.com>