AltNetHispano.Vale

16 views
Skip to first unread message

Fabio Maulo

unread,
Jun 26, 2010, 6:57:55 PM6/26/10
to altnet-...@googlegroups.com
La lista de los requerimientos que salieron en el "café":
- las validaciones para clases de base o interfaces se aplican a la clase heredada o que implementan la interface
- recursos multi idioma para mensajes
- recursos multi idioma para property-friendly-name
- integración con System.ComponentModel.DataAnnotations

Pueden agregar otras ideas, ir implementando tests, tomando nota, modificar el codigo etc.

Jorge Gamba publicará el codigo en algún repositorio publico:
para el repositorio se propuso usar Mercurial y como posibles host CodePlex, Google, bitbucket

Si quieren el desarrollo puede seguir en AltNet café.

--
Fabio Maulo

José F. Romaniello

unread,
Jun 26, 2010, 10:42:24 PM6/26/10
to altnet-...@googlegroups.com
yo tiro otro requerimiento;
- que la interfaz del validador permita validar una sola propiedad, strongly typed (Expression<Func<TEntity, TPropertyType>>) y no strongly typed (esta es requerida en algunos lugares, por ejemplo IDataErrorInfo)
- que el resultado de una validación, además del mensaje de error, nos diga a que propiedad pertenece dicho mensaje de error.
- que la interfaz del validador tenga un metodo bool IsValid(object entity) y que este metodo funcione de la manera mas performante posible, es decir, que no tenga que ejecutar todas las validaciones, ante el primer False, debería devolver falso.
- Como podría definir una validación que diga que la propiedad Address, del objeto Persona, debe ser valida (con las validaciones de address que implique).

Cuando este en algún lado, yo me animo a escribir tests para esas cosas, pero ya he hecho en otros lugares a similares, si a alguien le interesa aprender, puede ganarme de mano ;).

Y como último comentario, lo pongamos en CodePlex pero todo en ESPAÑOL, jajaja que sufran los otros esta vez. 


--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.

Edgar Ramos

unread,
Jun 27, 2010, 1:44:14 AM6/27/10
to altnet-...@googlegroups.com
Aqui hay un interesado en aprender ...

Edgar

El día 26 de junio de 2010 21:42, José F. Romaniello
<jfroma...@gmail.com> escribió:

Jorge Gamba

unread,
Jun 27, 2010, 10:28:53 AM6/27/10
to altnet-...@googlegroups.com
Qué licencia le ponemos?
Blog: http://gambasoft.net
Twitter: http://twitter/jorgegamba

Leonardo Micheloni

unread,
Jun 27, 2010, 10:52:59 AM6/27/10
to altnet-...@googlegroups.com
Excelente muchachos, estraría bueno armar el proyecto en codeplex para
tener un backlog con todos estos requerimientos e ir implementándolos
en diferentes ALT.NET Café (me ofrezco para gestionarlo), me parece
que sería una muy buena manera de que mucha más gente se acerque a OO,
porque si se hace fuera de los ALT.NET Café (sé que soy pesimista) van
a terminar haciendo todo Fabio y José como en en NH, unhaddins, etc.
o soy muy pesismista? si bien en los Café van a hacer los mismas 3 o 4
personas las que hagan todo, al ser público el desarrollo más gente se
va a animar a participar...o no?

2010/6/27 Jorge Gamba <jorge...@gmail.com>:

Leonardo Micheloni

unread,
Jun 27, 2010, 11:02:03 AM6/27/10
to altnet-...@googlegroups.com
donde dice OO quise decir Open Source :D

2010/6/27 Leonardo Micheloni <leonardogabr...@gmail.com>:

Fabio Maulo

unread,
Jun 27, 2010, 11:07:44 AM6/27/10
to altnet-...@googlegroups.com
http://vale.codeplex.com/

2010/6/27 Leonardo Micheloni <leonardogabr...@gmail.com>



--
Fabio Maulo

Jorge Gamba

unread,
Jun 27, 2010, 11:19:57 AM6/27/10
to altnet-...@googlegroups.com
Gente, les comento que ya fue publicado el vídeo de la grabación del ALT.NET Café de ayer con el nacimiento de 'Vale'.


Como siempre, queda entonces disponible para que contribuyen agregándole contendio a esa página wiki.

Leonardo, efectivamente, como acordamos ayer en el ALT.NET Café, ya hospedé el proyecto en codeplex, en la dirección que menciona Fabio. Junto con él estamos grabando un pequeño screencast con el proceso completo para publicarlo, hoy Fabio subirá el código y publicaremos el sitio lo más pronto posible para que pueda iniciar la colaboración, que tiene los objetivos que comentas y eres bienvenido, así como todos los demás que quieran contribuir de alguna manera.

Leonardo Micheloni

unread,
Jun 27, 2010, 1:25:36 PM6/27/10
to altnet-...@googlegroups.com
Joya, muchas gracias, cualquier cosa que necesiten chiflen

2010/6/27 Jorge Gamba <jorge...@gmail.com>:

Jorge Gamba

unread,
Jun 29, 2010, 5:11:54 PM6/29/10
to altnet-...@googlegroups.com
Bueno, sigamos moviéndonos ...

Yo ayer publiqué un screencast junto con Fabio, http://www.screencast.com/t/OGNhZDZlYWU ahí se muestra como se hospedó el proyecto en Codeplex , se subió el código, se crean forks y envían request.

Esto se suma a la grabación del ALT.NET Café


Fabio también blogueo hoy http://fabiomaulo.blogspot.com/2010/06/altnet-hispano-vale.html y allí muy bien define el objeto de este proyecto:

"se espera nos sirva para involucrar más gente al mundo OpenSource y, tal vez, para generar otros ejemplos de varias herramientas y tecnicas que el mundo Alt.Net quiere mucho"

Por ahora queremos seguir haciendo unas guías sobre cómo contribuir al proyecto de manera sencilla, por ejemplo, se requiere lo siguiente:

- Que alguien haga un resumen del ALT.NET Café pasado y coloque las notas en la página wiki de la grabación
- Grabar un pequeño screencast de cómo reportar un issue en el espacio del proyecto en codeplex

Para el último punto se pueden usar los requerimientos que se sugirieron al principio de este thread.

Alguien quisiera colaborar con alguna de estas tareas?

Leonardo Micheloni

unread,
Jun 29, 2010, 6:34:07 PM6/29/10
to altnet-...@googlegroups.com
yo tomo ambas, gracias Jorge y Fabio.

2010/6/29 Jorge Gamba <jorge...@gmail.com>:

Fabio Maulo

unread,
Jun 30, 2010, 7:59:13 AM6/30/10
to altnet-...@googlegroups.com
El issue tracker está vacio

En OSS eso significa que no hay nada para hacer y está todo hecho.

2010/6/27 Fabio Maulo <fabio...@gmail.com>



--
Fabio Maulo

Jorge Gamba

unread,
Jun 30, 2010, 8:03:45 AM6/30/10
to altnet-...@googlegroups.com
Qué bien Leonardo! nos servirá mucho tu ayuda, de hecho, quisieras hacerte cargo de gestionar http://vale.codeplex.com/ y en general mantener viva la iniciativa?

Por supuesto, Fabio, yo y otros tantos aquí seguiremos colaborando, solo que también tenemos otras responsabilidades en esta comunidad y pues la idea es compartir/colaborar como grupo, entonces sería muy bueno contar con alguien que se encargue de la logística.

"Por ahora" los commits de código los va a hacer solo Fabio y el desarrollo oficial se va a hacer durante sesiones de diferentes ALT.NET Cafés, aunque se reciben y esperan issues, request de forks, etc.

David Vílchez

unread,
Jun 30, 2010, 8:08:31 AM6/30/10
to altnet-...@googlegroups.com
Agregue un issue, jeje  es mi primera incursión en un proyecto open source :)

Saludos

2010/6/30 Jorge Gamba <jorge...@gmail.com>

Leonardo Micheloni

unread,
Jun 30, 2010, 8:19:43 AM6/30/10
to altnet-...@googlegroups.com
Por supuesto Jorge, cueten conmigo, voy a empezar recopilando lo
charlado en la VAN

2010/6/30 Jorge Gamba <jorge...@gmail.com>:

Leonardo Micheloni

unread,
Jun 30, 2010, 10:30:35 AM6/30/10
to altnet-...@googlegroups.com
Gente,
Estuve subiendo los requerimientos que pusieron en este hilo, estoy
mirando la grabación (de a puchitos) mientras anoto los conceptos más
importantes para hacer un resumen y trato de clarificar un poco los
requerimientos, este finde bajo el código y trato de agregarles
algunos test a los requerimientos.

Saludos, Leonardo.

2010/6/30 Leonardo Micheloni <leonardogabr...@gmail.com>:

Fabio Maulo

unread,
Jun 30, 2010, 2:20:14 PM6/30/10
to altnet-...@googlegroups.com
si quieren sabado seguimos y haremos fix o ejemplos.
Por ejemplo para el issue7 alcanza con un ejemplo ;) 

2010/6/30 Leonardo Micheloni <leonardogabr...@gmail.com>



--
Fabio Maulo

Leonardo Micheloni

unread,
Jun 30, 2010, 4:31:13 PM6/30/10
to altnet-...@googlegroups.com
Hay algo que no entiendo, porqué los test se hacen sobre el
PersonCrudAppService si lo que se quiere probar el el validador?

2010/6/30 Fabio Maulo <fabio...@gmail.com>:

Leonardo Micheloni

unread,
Jun 30, 2010, 4:52:40 PM6/30/10
to altnet-...@googlegroups.com
ahh ahora veo, son ejemplos, sorry

2010/6/30 Leonardo Micheloni <leonardogabr...@gmail.com>:

Fabio Maulo

unread,
Jul 1, 2010, 10:23:50 AM7/1/10
to altnet-...@googlegroups.com
Para entenderlo tenes que mirar el video de sabado.
Arrancamos desde el problema sin tener el validador... al final las clases quedaron como las ves ahora en el repository.

2010/6/30 Leonardo Micheloni <leonardogabr...@gmail.com>



--
Fabio Maulo

Fabio Maulo

unread,
Jul 1, 2010, 10:24:25 AM7/1/10
to altnet-...@googlegroups.com, Jorge Gamba
Che, que hacemos el sabado ?
Seguimos ?

2010/6/30 Leonardo Micheloni <leonardogabr...@gmail.com>



--
Fabio Maulo

Jorge Gamba

unread,
Jul 1, 2010, 10:26:53 AM7/1/10
to AltNet-Hispano
Perfecto!, entonces veámonos el sábado a las 18:00 GMT (meridiano 0)
por http://snipr.com/virtualaltnet

On Jul 1, 9:24 am, Fabio Maulo <fabioma...@gmail.com> wrote:
> Che, que hacemos el sabado ?
> Seguimos ?
>
> 2010/6/30 Leonardo Micheloni <leonardogabrielmichel...@gmail.com>
>
>
>
> > ahh ahora veo, son ejemplos, sorry
>
> > 2010/6/30 Leonardo Micheloni <leonardogabrielmichel...@gmail.com>:
> > > Hay algo que no entiendo, porqué los test se hacen sobre el
> > > PersonCrudAppService si lo que se quiere probar el el validador?
>
> > > 2010/6/30 Fabio Maulo <fabioma...@gmail.com>:
> > >> si quieren sabado seguimos y haremos fix o ejemplos.
> > >> Por ejemplo para el issue7 alcanza con un ejemplo ;)
>
> > >> 2010/6/30 Leonardo Micheloni <leonardogabrielmichel...@gmail.com>
>
> > >>> Gente,
> > >>>  Estuve subiendo los requerimientos que pusieron en este hilo, estoy
> > >>> mirando la grabación (de a puchitos) mientras anoto los conceptos más
> > >>> importantes para hacer un resumen y trato de clarificar un poco los
> > >>> requerimientos, este finde bajo el código y trato de agregarles
> > >>> algunos test a los requerimientos.
>
> > >>> Saludos, Leonardo.
>
> > >>> 2010/6/30 Leonardo Micheloni <leonardogabrielmichel...@gmail.com>:
> > >>> > Por supuesto Jorge, cueten conmigo, voy a empezar recopilando lo
> > >>> > charlado en la VAN
>
> > >>> > 2010/6/30 Jorge Gamba <jorgega...@gmail.com>:
> > >>> >> Qué bien Leonardo! nos servirá mucho tu ayuda, de hecho, quisieras
> > >>> >> hacerte
> > >>> >> cargo de gestionarhttp://vale.codeplex.com/y en general mantener
> > >>> >> viva la
> > >>> >> iniciativa?
> > >>> >> Por supuesto, Fabio, yo y otros tantos aquí seguiremos colaborando,
> > >>> >> solo que
> > >>> >> también tenemos otras responsabilidades en esta comunidad y pues la
> > >>> >> idea es
> > >>> >> compartir/colaborar como grupo, entonces sería muy bueno contar con
> > >>> >> alguien
> > >>> >> que se encargue de la logística.
> > >>> >> "Por ahora" los commits de código los va a hacer solo Fabio y el
> > >>> >> desarrollo
> > >>> >> oficial se va a hacer durante sesiones de diferentes ALT.NET Cafés,
> > >>> >> aunque
> > >>> >> se reciben y esperan issues, request de forks, etc.
>
> > >>> >> El 29 de junio de 2010 17:34, Leonardo Micheloni
> > >>> >> <leonardogabrielmichel...@gmail.com> escribió:
>
> > >>> >>> yo tomo ambas, gracias Jorge y Fabio.
>
> > >>> >>> 2010/6/29 Jorge Gamba <jorgega...@gmail.com>:
> > >>> >>> > Bueno, sigamos moviéndonos ...
> > >>> >>> > Yo ayer publiqué un screencast junto con
> > >>> >>> > Fabio,http://www.screencast.com/t/OGNhZDZlYWUahí se muestra
> > como
> > >>> >>> > se
> > >>> >>> > hospedó el proyecto en Codeplex , se subió el código, se crean
> > forks
> > >>> >>> > y
> > >>> >>> > envían request.
> > >>> >>> > Esto se suma a la grabación del ALT.NET Café
>
> >http://altnet-hispano.pbworks.com/cafe-2010-06-26-construyendo-un-fra...
> > >>> >>> > <leonardogabrielmichel...@gmail.com> escribió:
>
> > >>> >>> >> Joya, muchas gracias, cualquier cosa que necesiten chiflen
>
> > >>> >>> >> 2010/6/27 Jorge Gamba <jorgega...@gmail.com>:
> > >>> >>> >> > Gente, les comento que ya fue publicado el vídeo de la
> > grabación
> > >>> >>> >> > del
> > >>> >>> >> > ALT.NET
> > >>> >>> >> > Café de ayer con el nacimiento de 'Vale'.
>
> >http://altnet-hispano.pbworks.com/cafe-2010-06-26-construyendo-un-fra...
> > >>> >>> >> > Como siempre, queda entonces disponible para que contribuyen
> > >>> >>> >> > agregándole
> > >>> >>> >> > contendio a esa página wiki.
> > >>> >>> >> > Leonardo, efectivamente, como acordamos ayer en el ALT.NETCafé,
> > >>> >>> >> > ya
> > >>> >>> >> > hospedé
> > >>> >>> >> > el proyecto en codeplex, en la dirección que menciona Fabio.
> > >>> >>> >> > Junto
> > >>> >>> >> > con
> > >>> >>> >> > él
> > >>> >>> >> > estamos grabando un pequeño screencast con el proceso completo
> > >>> >>> >> > para
> > >>> >>> >> > publicarlo, hoy Fabio subirá el código y publicaremos el sitio
> > lo
> > >>> >>> >> > más
> > >>> >>> >> > pronto
> > >>> >>> >> > posible para que pueda iniciar la colaboración, que tiene los
> > >>> >>> >> > objetivos
> > >>> >>> >> > que
> > >>> >>> >> > comentas y eres bienvenido, así como todos los demás que
> > quieran
> > >>> >>> >> > contribuir
> > >>> >>> >> > de alguna manera.
>
> > >>> >>> >> > El 27 de junio de 2010 09:52, Leonardo Micheloni
> > >>> >>> >> > <leonardogabrielmichel...@gmail.com> escribió:
> > >>> >>> >> >> 2010/6/27 Jorge Gamba <jorgega...@gmail.com>:
> > >>> >>> >> >> > Qué licencia le ponemos?
>
> > >>> >>> >> >> > El 27 de junio de 2010 00:44, Edgar Ramos
> > >>> >>> >> >> > <eramose...@gmail.com>
> > >>> >>> >> >> > escribió:
>
> > >>> >>> >> >> >> Aqui hay un interesado en aprender ...
>
> > >>> >>> >> >> >> Edgar
>
> > >>> >>> >> >> >> El día 26 de junio de 2010 21:42, José F. Romaniello
> > >>> >>> >> >> >> <jfromanie...@gmail.com> escribió:
> > >>> >>> >> >> >> > <fabioma...@gmail.com>
> > >>> >>> >> >> >> > escribió:
>
> > >>> >>> >> >> >> >> La lista de los requerimientos que salieron en el
> > "café":
> > >>> >>> >> >> >> >> - las validaciones para clases de base o interfaces se
> > >>> >>> >> >> >> >> aplican
> > >>> >>> >> >> >> >> a
> > >>> >>> >> >> >> >> la
> > >>> >>> >> >> >> >> clase
> > >>> >>> >> >> >> >> heredada o que implementan la interface
> > >>> >>> >> >> >> >> - recursos multi idioma para mensajes
> > >>> >>> >> >> >> >> - recursos multi idioma para property-friendly-name
> > >>> >>> >> >> >> >> - integración con System.ComponentModel.DataAnnotations
>
> > >>> >>> >> >> >> >> Pueden agregar otras ideas, ir implementando tests,
>
> ...
>
> read more »

Leonardo Micheloni

unread,
Jul 1, 2010, 10:29:43 AM7/1/10
to altnet-...@googlegroups.com
Si si, estoy viendo el video, mietras hago un resumen y miro el código

2010/7/1 Jorge Gamba <jorge...@gmail.com>:

Edgar Ramos

unread,
Jul 1, 2010, 10:41:48 AM7/1/10
to altnet-...@googlegroups.com
Me apunto para el sabado, trato de seguirles el paso, pero van tan
deprisa..., por otro lado me gustaria colaborar en el codigo y en los
test, pero mi nivel es tan basico, he visto la van 2 veces mas la
presencial y hay conceptos propios de c# que me encuentro revizando
para seguir avanzando, de hecho viendo el codigo he podido comprender
los conceptos.

Adelante, sigo investigando para algun dia no tan lejano alcanzarlos

Saludos

Edgar

Fabio Maulo

unread,
Jul 1, 2010, 10:44:26 AM7/1/10
to altnet-...@googlegroups.com
redman running!!! 



--
Fabio Maulo

José F. Romaniello

unread,
Jul 1, 2010, 10:45:51 AM7/1/10
to altnet-...@googlegroups.com
Sin miedo Edgar.. mete el dedo (en el código).

Leonardo Micheloni

unread,
Jul 1, 2010, 10:46:14 AM7/1/10
to altnet-...@googlegroups.com
Si Edgardo, mi idea es armar un resumen, tal vez un post sobre los
conceptos que se van tirando en la VAN y si puedo sobre decisiones del
diseño, pero estoy corriendo contra el horizonte :) , cuando lo tenga
aviso

2010/7/1 Edgar Ramos <eramo...@gmail.com>:

José F. Romaniello

unread,
Jul 1, 2010, 10:46:25 AM7/1/10
to altnet-...@googlegroups.com
Te vamos a sacar bueno vos no te preocupes LOL

Edgar Ramos

unread,
Jul 1, 2010, 10:55:06 AM7/1/10
to altnet-...@googlegroups.com
Genial, veo el video y Fabio y Tú (José) lo hacen parecer tan facil
(he aqui la experiencia), pero, si, ando en el codigo aprendiendo, de
hecho planifique este domingo con otro compañero que anda en mi misma
situacion, revizar puntualmente todos aquellos conceptos que se nos
complica entender, luego me hago una lista a ver si ayuda a otras
personas que estan este nivel basico

Edgar

El día 1 de julio de 2010 09:46, José F. Romaniello

VyKtoR

unread,
Jul 1, 2010, 11:12:41 AM7/1/10
to AltNet-Hispano
Ayer andaba revisando el video, pero solo vi el principio, ya que
andaba en la oficina y pues ay que respetar los horarios de trabajo
espero este fin de semana checarlo por completo y revisar el codigo
para analizar y poder realizar aportaciones ya que quiero colaborar en
este proyecto. En proyectos que tengo aquí en la oficina utilizo el
Relfection no se si les será de ayuda.

Saludos y seguimos en contacto.

On 27 jun, 10:19, Jorge Gamba <jorgega...@gmail.com> wrote:
> Gente, les comento que ya fue publicado el vídeo de la grabación del
> ALT.NETCafé de ayer con el nacimiento de 'Vale'.
>
> http://altnet-hispano.pbworks.com/cafe-2010-06-26-construyendo-un-fra...
>
> Como siempre, queda entonces disponible para que contribuyen agregándole
> contendio a esa página wiki.
>
> Leonardo, efectivamente, como acordamos ayer en el ALT.NET Café, ya hospedé
> el proyecto en codeplex, en la dirección que menciona Fabio. Junto con él
> estamos grabando un pequeño screencast con el proceso completo para
> publicarlo, hoy Fabio subirá el código y publicaremos el sitio lo más pronto
> posible para que pueda iniciar la colaboración, que tiene los objetivos que
> comentas y eres bienvenido, así como todos los demás que quieran contribuir
> de alguna manera.
>
> El 27 de junio de 2010 09:52, Leonardo Micheloni <
> leonardogabrielmichel...@gmail.com> escribió:
>
>
>
>
>
> > Excelente muchachos, estraría bueno armar el proyecto en codeplex para
> > tener un backlog con todos estos requerimientos e ir implementándolos
> > en diferentes ALT.NET Café (me ofrezco para gestionarlo), me parece
> > que sería una muy buena manera de que mucha más gente se acerque a OO,
> > porque si se hace fuera de los ALT.NET Café (sé que soy pesimista) van
> > a terminar haciendo todo Fabio y José  como en en NH, unhaddins, etc.
> > o soy muy pesismista? si bien en los Café van a hacer los mismas 3 o 4
> > personas las que hagan todo, al ser público el desarrollo más gente se
> > va a animar a participar...o no?
>
> > 2010/6/27 Jorge Gamba <jorgega...@gmail.com>:
> > > Qué licencia le ponemos?
>
> > > El 27 de junio de 2010 00:44, Edgar Ramos <eramose...@gmail.com>
> > escribió:
>
> > >> Aqui hay un interesado en aprender ...
>
> > >> Edgar
>
> > >> El día 26 de junio de 2010 21:42, José F. Romaniello
> > >> <jfromanie...@gmail.com> escribió:
> > >> > El 26 de junio de 2010 19:57, Fabio Maulo <fabioma...@gmail.com>
> > >> >> altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsubscribe@go oglegroups.com>
> > >> >> Para tener acceso a más opciones, visita el grupo en
> > >> >>http://groups.google.com/group/altnet-hispano?hl=es.
>
> > >> > --
> > >> > Has recibido este mensaje porque estás suscrito al grupo
> > >> > "AltNet-Hispano" de
> > >> > Grupos de Google.
> > >> > Para publicar una entrada en este grupo, envía un correo electrónico a
> > >> > altnet-...@googlegroups.com.
> > >> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > >> > altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsubscribe@go oglegroups.com>
> > >> > Para tener acceso a más opciones, visita el grupo en
> > >> >http://groups.google.com/group/altnet-hispano?hl=es.
>
> > >> --
> > >> Has recibido este mensaje porque estás suscrito al grupo
> > "AltNet-Hispano"
> > >> de Grupos de Google.
> > >> Para publicar una entrada en este grupo, envía un correo electrónico a
> > >> altnet-...@googlegroups.com.
> > >> Para anular tu suscripción a este grupo, envía un correo electrónico a
> > >> altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsubscribe@go oglegroups.com>
> > >> Para tener acceso a más opciones, visita el grupo en
> > >>http://groups.google.com/group/altnet-hispano?hl=es.
>
> > > --
> > > Blog:http://gambasoft.net
> > > Twitter:http://twitter/jorgegamba
>
> > > --
> > > Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano"
> > de
> > > Grupos de Google.
> > > Para publicar una entrada en este grupo, envía un correo electrónico a
> > > altnet-...@googlegroups.com.
> > > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > > altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsubscribe@go oglegroups.com>
> > > Para tener acceso a más opciones, visita el grupo en
> > >http://groups.google.com/group/altnet-hispano?hl=es.
>
> > --
> > Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano"
> > de Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo electrónico a
> > altnet-...@googlegroups.com.
> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > altnet-hispan...@googlegroups.com<altnet-hispano%2Bunsubscribe@go oglegroups.com>

Edgar Ramos

unread,
Jul 1, 2010, 11:54:37 AM7/1/10
to altnet-...@googlegroups.com
Gente, algun ebook, info, link, lo que sea para profundizar el tema de
refactoring, veo en el video del sabado mucho de eso y me gustaria
aprender

Saludos

Edgar

Pedro Wood

unread,
Jul 1, 2010, 11:57:32 AM7/1/10
to altnet-...@googlegroups.com
El libro de Refactoring de Martin Fowler http://www.refactoring.com/

Saludos,

Pedro

2010/7/1 Edgar Ramos <eramo...@gmail.com>:

Edgar Ramos

unread,
Jul 2, 2010, 11:47:40 PM7/2/10
to altnet-...@googlegroups.com
Gracias Pedro, leyendo el libro de refactoring y viendo la van
framework desde cero (parte 1), me he dado cuenta del porque de muchas
cosas de las que hace Fabio en el codigo, observo claramente lo
siguiente

.- Como aplica claramente TDD
.- Como lleva a cabo la metáfora de los dos sombreros

Tambien observo como utiliza claramente algunas de estas técnicas de refactoring

.- Extract Method
.- Extract Class
.- Extract Interface
.- Replace Parameter with Method
.- Move Method

En fin sigo viendo el video (si otra vez..) y aprendiendo

Saludos

Edgar

PD: Que pleno de a poquito voy entendiendo los test

ÿÿÿÿ

Fabio Maulo

unread,
Jul 2, 2010, 11:57:42 PM7/2/10
to altnet-...@googlegroups.com
"Como aplica claramente TDD"
Bah.... mas o menos, yo me tomo algunas licencias poeticas, TDD no siempre me ayuda a pensar.

2010/7/3 Edgar Ramos <eramo...@gmail.com>



--
Fabio Maulo

Edgar Ramos

unread,
Jul 3, 2010, 12:53:42 AM7/3/10
to altnet-...@googlegroups.com
Vi otro refactoring

.- Encapsulate Field

Alfredo Fernandez lopez

unread,
Jul 3, 2010, 3:46:20 AM7/3/10
to altnet-...@googlegroups.com
Que rabia, me pilláis en mala época, 0 tiempo libre :( a la que pueda intentare engancharme

Pedro J. Molina

unread,
Jul 10, 2010, 5:49:09 PM7/10/10
to AltNet-Hispano
Hola a todos:
Hoy tras la tercera sesión de Alt.Cafe sobre Vale quise compartir con
ustedes una pregunta. La traemos aqui para que quede por escrito y
pueda generar el debido debate.

Actualmente la interfaz IValidator de Vale tiene definido la siguiente
signatura de método:
void Register<T>(Func<T, string> assert);

Tal y como esta definida un ejemplo de uso puede ser el siguiente
(extraido de los tests):

IValidator validator = new Validator();
validator.Register<Person>(p => validator.StringIsRequired("Name",
p.Name));
validator.Register<Person>(p =>
validator.DateIsInThePast("Birthday", p.Birthday));

var person = new Person { Name = null, Surname = null, Birthday =
DateTime.Today };
var invalidMessages = validator.GetInvalidMessages(person);
invalidMessages.Should().Contain("Name is required.");
invalidMessages.Should().Contain("Birthday should be in the
past.");


En este contexto:
Usar delegados de tipo: Func<T, string> implica implementar métodos de
validación tal que dado un T, retornarán u mensaje de error como
string.

Al estar tratando con validaciones, a mi modo de ver, queda mas
natural tratarlas como predicados, es decir: como funciones que se
evalúan sobre el objeto a true o a false. En caso de fallar, entonces
necesitamos proporcionar un mensaje de error.

Estoy proponiendo reemplazar las signaturas de tipo Func<T, string>
por Predicate<T>, y extraer fuera el mensaje de error.

Tal que asi:

Esta variante para cuando la validación es especifica a una propiedad:
void Register<T>(string property, string PropertyFriendlyName,
Predicate<T> assert, string errorMessage);

Y esta otra para cuando la validación no depende de una sola
propiedad, sino del estado agregado del objeto (más de una propiedad).
void Register<T>(Predicate<T> assert, string errorMessage);


Este cambio, reduce la responsabilidad de los métodos de validación
propiamente dichos, ya que no tendrían que retornar la cadena del
error, sino simplemente indicar si pasa o no pasa. Por contra las
implementaciones de IValidator serían ahora las encargadas de
recopilar y retornar los mensajes de error.

En esta misma línea y si se acepta este modo de registro, también
pudiera ser conveniente introducir otra signatura para el tratamiento
de errores:

public interface IValidator
{
IEnumerable<IValidationError> GetValidationErrors(object entity);
...

Donde tendriamos:

public interface IValidationError
{
public string PropertyName {get;}
public PropertyInfo Property {get;} //?
public string PropertyFriendlyName {get;}
public string ErrorMessage {get;}
}

De este modo podriamos tener más información sobre que fue mal en la
validación. Y tal vez de paso simplifica la adición de algunas de las
propuestas de extensión que hay propuestas.

¿Que opinan? ¿Pros y contras?

Especialmente Fabio: tal vez el caso de uso inicial dista del que yo
tengo en la cabeza.


PD: Revisando los validadores tipo como StringLen() caí en la cuenta
de que pueden requerir el paso de algún parámetro adicional para
realizar su función: esto es, la validación. Aquí creo que
Predicate<T> no nos seria del todo valida, ya que solo acepta un
parámetro de entrada de tipo T.
Sin embargo Func< ... > si que esta sobrecargada para soportar más de
un parámetro de entrada y tendríamos que volver a ella tal que:
Func<T, bool>.


Saludos,
Pedro J.

Fabio Maulo

unread,
Jul 10, 2010, 6:26:10 PM7/10/10
to altnet-...@googlegroups.com
Vayan opinando.
Yo ya he visto varios validadores, en .NET, y he implementado minimos 3 (uno privado hace unos 5 años).

Poner un Func<T, bool> implica que hay que ir a buscar el mensaje de otro lado y allí empieza la rosca de generar clases de validacción que tengan un metodo de Match y un mensaje... y vamos con la rosca.

Por ahora el engine se banca cualquier funcionamiento se le quiera dar externamente.
Vendría a ser
"Yo ejecuto ese Func, si tenes algo que no te gusta mandame el mensaje, si no no me mandes nada."
Un solo roundtrip y cero "if"

Con un Predidicate sería:
"Che te doy este T decime si te gustó: ah, no te gustó ? bueno ahora decime por que en un mensaje."
Dos roundtrip y un "if".

Pero bueno... el codigo está allí y es de todos así que vallan cargando discussiones en su correspondente espacio:

e issue en su correspondiente espacio:

Voten los issues que le gustaría que sean implementados.

Escriban tests, agreguen validadores, hagan clones y si tienen gana envien pull-requests.
Para eso empezé el projecto en Alt.NET Hispano en lugar que abrir otro prj OSS por mi cuenta.


2010/7/10 Pedro J. Molina <pjmo...@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.




--
Fabio Maulo

Jorge Gamba

unread,
Jul 12, 2010, 9:52:51 PM7/12/10
to altnet-...@googlegroups.com
Me parece muy razonable lo que comenta Pedro, dicho de otra manera, lo primero que se esperaría de un "validador" es "que valide" (que diga si es válido o no el objeto bajo análisis), los mensajes de "por qué no es válido" son más bien un valor agregado, útil o necesario pero secundario.

Me parece que está interpretación ...

if (!invalidMessage.Any()) { // personRepository.Save(person); }

No debería dejarse bajo responsabilidad del usuario del FWK, sino que corresponde al mismo FWK.

En cuanto a la siguiente expresión ...

> Con un Predidicate sería:
> "Che te doy este T decime si te gustó: ah, no te gustó ? bueno ahora decime por que en un mensaje."
> Dos roundtrip y un "if".

Entiendo que en "decime si te gustó" de todas formas se evaluarían todas las reglas de validación (se podrían configurar otros comportamientos) y con sus resultados se iría llenando una colección que luego del if estaría disponible para que el usuario del FWK la lea si la necesita. No le veo mucho problema a esto, quedaría más OOP y se mantiene a disposición la lista de mensajes.

Así, el método Save de PersonCrudAppService.cs quedaría algo como:

public IEnumerable<string> Save(Person person)
{
	if (validator.IsValid(person))
	{
		// personRepository.Save(person);
	}
	return validator.InvalidMessages;
}
En este caso no se uso un if adicional, el que aparece ahí ya lo tenía la implementación original; incluso se restó una línea de código.

Por otro lado, alguien podría darle un mal uso a la API actual así:

public IEnumerable<string> Save(Person person) {
if (validator.IsValid(person))
{ // personRepository.Save(person); } return validator.GetInvalidMessages(person); }

En este caso, es claro que la evaluación de las reglas/acciones de validación se haría dos veces. Claro, esto se podría solucionar sin cambiar el estilo actual.

Leonardo Micheloni

unread,
Jul 12, 2010, 9:56:56 PM7/12/10
to altnet-...@googlegroups.com
estaría bueno armar un hilo en la parte de discusiones de codeplex

http://vale.codeplex.com/Thread/List.aspx

2010/7/12 Jorge Gamba <jorge...@gmail.com>:

Jorge Gamba

unread,
Jul 12, 2010, 9:57:19 PM7/12/10
to altnet-...@googlegroups.com
Viéndolo mejor, dado que AltNetHispano.Vale.Validator es un servicio y no una entidad, más bien, podría ser algo como:

public IEnumerable<string> Save(Person person) { var validationResult = validator.Validate(person) if (validationResult.IsValid) { // personRepository.Save(person); } return validator.InvalidMessages; }

Pedro J. Molina

unread,
Jul 13, 2010, 3:02:43 AM7/13/10
to AltNet-Hispano
Hilo creado:
http://vale.codeplex.com/Thread/View.aspx?ThreadId=219241

Podemos seguir aportando pros y contras allí si lo prefieren así.

Un saludo,
Pedro J.


On 13 jul, 03:56, Leonardo Micheloni
<leonardogabrielmichel...@gmail.com> wrote:
> estaría bueno armar un hilo en la parte de discusiones de codeplex
>
> http://vale.codeplex.com/Thread/List.aspx
>
> 2010/7/12 Jorge Gamba <jorgega...@gmail.com>:
> >> 2010/7/10 Pedro J. Molina <pjmol...@gmail.com>

Jorge Gamba

unread,
Jul 13, 2010, 6:41:39 AM7/13/10
to altnet-...@googlegroups.com
Fabio, entonces puedes copiar tu texto a http://vale.codeplex.com/Thread/View.aspx?ThreadId=219241 para mover la discusión allá en orden?

Fabio Maulo

unread,
Jul 13, 2010, 9:26:48 AM7/13/10
to altnet-...@googlegroups.com
done

2010/7/13 Jorge Gamba <jorge...@gmail.com>



--
Fabio Maulo

Leonardo Micheloni

unread,
Jul 13, 2010, 11:21:59 AM7/13/10
to altnet-...@googlegroups.com
qué lindo quedó, en breve voy a abrir otra discución sobre el tema de
políticas de validación / tags / rule sets

2010/7/13 Fabio Maulo <fabio...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages