Gracias Fabio

Fabio Maulo escribió:
> Podes usar WLW y hacer compy&paste del HTML
>
> El 25 de abril de 2009 19:49, "José F. Romaniello" 
> <[email protected] <mailto:[email protected]>> 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"
>     > <[email protected] <mailto:[email protected]>
>     <mailto:[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]>>
>     >     <mailto:[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]>>>
>     >     >     <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ó:
>     >     >     >
>     >     >     >
>     >     >     >     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]>>>>
>     >     >     >     > <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]
>     <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]>>>>
>     >     >     >     >     <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]
>     <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]>>>>
>     >     >     >     >     <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]
>     <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>
>     >     >     >     >     <http://darioquintana.com.ar>
>     >     >     >     >
>     >     >     >     >
>     >     >     >     >
>     >     >     >     >
>     >     >     >     > --
>     >     >     >     > Fabio Maulo
>     >     >     >     >
>     >     >     >     > >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     > --
>     >     >     > 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