atom feed20 messages in com.googlegroups.nhibernate-hispano[NHibernate-Hispano] Re: Pregunta sob...
FromSent OnAttachments
JuanApr 23, 2009 5:41 am 
Dario QuintanaApr 23, 2009 5:48 am 
"José F. Romaniello"Apr 23, 2009 5:51 am 
Dario QuintanaApr 23, 2009 8:58 am 
JuanApr 24, 2009 9:01 am 
Fabio MauloApr 24, 2009 9:15 am 
"José F. Romaniello"Apr 24, 2009 9:38 am 
Dario QuintanaApr 24, 2009 9:39 am 
"José F. Romaniello"Apr 24, 2009 9:46 am 
Fabio MauloApr 24, 2009 10:13 am 
Dario QuintanaApr 24, 2009 10:16 am 
Fabio MauloApr 24, 2009 10:17 am 
"José F. Romaniello"Apr 24, 2009 11:00 am 
Fabio MauloApr 24, 2009 11:30 am 
"José F. Romaniello"Apr 24, 2009 7:53 pm 
Fabio MauloApr 24, 2009 8:17 pm 
"José F. Romaniello"Apr 25, 2009 1:19 pm 
"José F. Romaniello"Apr 25, 2009 3:49 pm 
Fabio MauloApr 25, 2009 5:04 pm 
"José F. Romaniello"Apr 27, 2009 8:13 am 
Subject:[NHibernate-Hispano] Re: Pregunta sobre ISharedEngineProvider en NHibernate.Validator
From:Fabio Maulo (fabi@gmail.com)
Date:Apr 25, 2009 5:04:40 pm
List:com.googlegroups.nhibernate-hispano

Podes usar WLW y hacer compy&paste del HTML

El 25 de abril de 2009 19:49, "José F. Romaniello" <jfro@gmail.com>escribió:

Esta hecho, ahi va mi granito de arena :

http://nhforge.org/wikis/howtonh/setup-nhv-fluently-with-your-ioc-container.aspx (se aceptan criticas, me costo un poco el coloriado de código )

Fabio Maulo escribió:

Que buenas ideas. Podría por favor escribir un wiki con todas tus observaciones ? Sería muy util a todos usuarios de NHV.

El lugar para escribir un buen wiki de referencia, como te parezca mas claro, es: http://nhforge.org/wikis/validator/default.aspx

Tabien está el How To: http://nhforge.org/wikis/howtonh/default.aspx

El 24 de abril de 2009 23:53, "José F. Romaniello" <jfro@gmail.com <mailto:jfro@gmail.com>> escribió:

Ok, ya sabía como resolver un servicio con el container :S .. Lo que me hacía falta era el otro lado de la igual (osea lo que concierne a NHV) es decir, pone el shared engine en: NHibernate.Validator.Cfg.Environment.SharedEngineProvider como dice en uno de tus post.

Es probable que tenga algo mal pero esto es a lo que llegué:

var ve = new ValidatorEngine();

container.Register(Component.For<ValidatorEngine>() .Instance(ve) .LifeStyle.Singleton);

container.Register(Component.For<ISharedEngineProvider>() .ImplementedBy<CastleSharedEngineProvider>());

NHibernate.Validator.Cfg.Environment.SharedEngineProvider = container.Resolve<ISharedEngineProvider>();

var configure = new FluentConfiguration();

configure.Register( Assembly.Load("SGF.Dominio") .ValidationDefinitions() ) .SetDefaultValidatorMode(ValidatorMode.UseAttribute)

.IntegrateWithNHibernate.ApplyingDDLConstraints().And.RegisteringListeners();

ve.Configure(configure);

Algo que no podía darme cuenta, era como decirle a NHV que altere la configuración de NH para aplicar las constraints ddl y registrar los listeners.. Explorando un poco el código de NHV llegue a esto ValidatorInitializer.Initialize(miConfigDeNH)

IMO: Hice varias busquedas en google y creo que no esta muy "googleable" (salvo medio escondido un post de Marek Blotny). Creo que el post de referencia para nhibernate validator fluent es el de Fabio y no menciona nada sobre el ValidatorInitializar.Initialize. Si bien son dos cosas diferentes alguien podría tener la falsa impresión de que con esto:

"IntegrateWithNHibernate.ApplyingDDLConstraints().And.RegisteringListeners()"

ya esta. IMO2: Le falta un buen summary, como lo tienen la mayoría de las otras clases.

Fabio Maulo escribió: > El 24 de abril de 2009 15:00, "José F. Romaniello" > <jfro@gmail.com <mailto:jfro@gmail.com> <mailto:jfro@gmail.com <mailto:jfro@gmail.com>>> escribió: > > > Barbaro, entiendo lo que decis y realmente me gusta mas. Si no fuera > molestia, podrías comentar un poco como se hace lo segundo (por ahora > sin ServiceLocator): > "En la configuración de NHV le pido a WindSor, o mejor al > ServiceLocator, la instancia de ISharedEngineProvider." > > > container.Resolve<ISharedEngineProvider>(); > > > Por otro lado, existe alguna forma de hacer esto en app/web.config? > > > Ah bueno... desde allí no podes porque tiene que ser parameter-less ctor. > Pero si configuras NHV luego de configurar el container y lo primero > que haces es asignar el SharedEngineProvider todo te funciona. > > > > > Fabio Maulo escribió: > > Está bien aunque yo lo implementatría distinto. > > En el constructor de CastleSharedEngineProvider injectaría > > ValidatorEngine y en Castle registraría ISharedEngineProvider. > > En la configuración de NHV le pido a WindSor, o mejor al > > ServiceLocator, la instancia de ISharedEngineProvider. > > > > El 24 de abril de 2009 13:38, "José F. Romaniello" > > <jfro@gmail.com <mailto:jfro@gmail.com> <mailto:jfro@gmail.com <mailto:jfro@gmail.com>> > <mailto:jfro@gmail.com <mailto:jfro@gmail.com> <mailto:jfro@gmail.com <mailto:jfro@gmail.com>>>> > escribió: > > > > > > Y ya que estamos hablando de rudimentario, yo no me animaba a > > mostrar el > > mio por las duda les causara asco, > > tiene esta pinta esta "pasable" por lo menos?: > > > > public class CastleSharedEngineProvider : > ISharedEngineProvider > > { > > public ValidatorEngine GetEngine() > > { > > var containerAccessor = > > HttpContext.Current.ApplicationInstance as IContainerAccessor; > > > > if (containerAccessor == null) > > throw new Exception("No se encontro > > IContainerAccessor"); > > > > var ve = > > containerAccessor.Container.Resolve<ValidatorEngine>(); > > > > return ve; > > } > > } > > > > en el container lo meto asi : > > > > Component.For<ValidatorEngine>() > > .Instance(ve) > > .LifeStyle.Singleton > > > > (creo que el singleton no haría falta ya que le estoy > pasando una > > instancia concreta). > > > > > > Fabio Maulo escribió: > > > barbaro me preocupa solo lo de "rudimentario"... para eso > usá lo que > > > está en NHV que ya es static por si mismo. > > > > > > El 24 de abril de 2009 13:01, Juan <juan@gmail.com <mailto:juan@gmail.com> > <mailto:juan@gmail.com <mailto:juan@gmail.com

> > <mailto:juan@gmail.com <mailto:juan@gmail.com> <mailto:juan@gmail.com <mailto:juan@gmail.com>>> > > > <mailto:juan@gmail.com <mailto:juan@gmail.com> > <mailto:juan@gmail.com <mailto:juan@gmail.com>> <mailto:juan@gmail.com <mailto:juan@gmail.com> > <mailto:juan@gmail.com <mailto:juan@gmail.com>>>>> > > escribió: > > > > > > > > > Por ahora tengo un ISharedEngineProvider rudimentario > que lo > > creo en > > > codigo y se lo pongo al > > > NHibernate.Validator.Enviroment.SharedEngineProvider > antes de > > > configurar el NHibernate para asegurarme que es la misma > > engine que > > > va a utilizar NH, en los pre update/delete listeners. > > > > > > Pero queria quitarme esa dudita, ya que con la App/Web > > config puedo > > > hacer lo mismo, aunque yo lo hago a mano por el hecho de > > tener la > > > config de nhv en una archivo aparte. > > > > > > Gracias > > > > > > On 23 abr, 11:58, Dario Quintana > > <cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar> > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar>> > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar> > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar>>> > > > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar> > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar>> > > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar> > <mailto:cont@darioquintana.com.ar <mailto:cont@darioquintana.com.ar>>>>> > > > wrote: > > > > Otra opción, que se podría usar para configurar con > > > nhvalidator.cfg.xml: > > > > .. > > > > var vtor = new ValidatorEngine(); > > > > vtor.Configure(); //lee el nhvalidator.cfg.xml > > > > .. > > > > > > > > Cuando se lee de la configuración se instancia el > > SharedEngine, > > > pero la > > > > instancia 'vtor' se la podría: > > > > 1) "copiar" la instancia adentro del SharedEngine, > entonces se > > > usa la misma > > > > instancia. > > > > 2) descartarla, y que el SharedEngine cree otra > instancia. > > Pero > > > ahí queda > > > > feo porque, en cada aplicación se habrían creado por lo > > menos dos > > > > ValidatorEngine. > > > > > > > > 2009/4/23 Fabio Maulo <fabi@gmail.com <mailto:fabi@gmail.com> > <mailto:fabi@gmail.com <mailto:fabi@gmail.com>> > > <mailto:fabi@gmail.com <mailto:fabi@gmail.com> <mailto:fabi@gmail.com <mailto:fabi@gmail.com>>> > > > <mailto:fabi@gmail.com <mailto:fabi@gmail.com> > <mailto:fabi@gmail.com <mailto:fabi@gmail.com>> <mailto:fabi@gmail.com <mailto:fabi@gmail.com> > <mailto:fabi@gmail.com <mailto:fabi@gmail.com>>>>> > > > > > > > > > La razon es que es la unica forma de garantizar que el > > > ValidatorEngine sea > > > > > realmente shared.Pero podes asignar el > SharedEngine a mano. > > > > > > > > -- > > > > Dario Quintanahttp://darioquintana.com.ar <http://darioquintana.com.ar> > <http://darioquintana.com.ar> > > <http://darioquintana.com.ar> > > > <http://darioquintana.com.ar> > > > > > > > > > > > > > > > -- > > > Fabio Maulo > > > > > > > > > > > > > > > > > > > > > -- > > Fabio Maulo > > > > > > > > > > > > -- > Fabio Maulo > > >

--~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección:
NHib@googlegroups.com Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---