Encantadisimo

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" 
> <[email protected] <mailto:[email protected]>> 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"
>     > <[email protected] <mailto:[email protected]>
>     <mailto:[email protected] <mailto:[email protected]>>>
>     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"
>     >     > <[email protected] <mailto:[email protected]>
>     <mailto:[email protected] <mailto:[email protected]>>
>     >     <mailto:[email protected]
>     <mailto:[email protected]> <mailto:[email protected]
>     <mailto:[email protected]>>>>
>     >     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
>     <[email protected] <mailto:[email protected]>
>     >     <mailto:[email protected] <mailto:[email protected]>>
>     >     >     <mailto:[email protected]
>     <mailto:[email protected]> <mailto:[email protected]
>     <mailto:[email protected]>>>
>     >     >     > <mailto:[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>> <mailto:[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>>>>>
>     >     >     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
>     >     >     <[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>>>
>     >     >     >     <mailto:[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>>
>     >     >     <mailto:[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected]
>     <mailto:[email protected]>>>>>
>     >     >     >     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 <[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected] <mailto:[email protected]>>
>     >     >     <mailto:[email protected]
>     <mailto:[email protected]> <mailto:[email protected]
>     <mailto:[email protected]>>>
>     >     >     >     <mailto:[email protected]
>     <mailto:[email protected]>
>     >     <mailto:[email protected] <mailto:[email protected]>>
>     <mailto:[email protected] <mailto:[email protected]>
>     >     <mailto:[email protected] <mailto:[email protected]>>>>>
>     >     >     >     >
>     >     >     >     > > 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
>     >
>     > >
>
>
>
>
>
>
> -- 
> Fabio Maulo
>
> >


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

Responder a