Comprobalo tu mismo http://fabiomaulo.blogspot.com/2010/11/conform-any-to-many.html
2011/2/10 Rodrigo Marquez <[email protected]> > Una pregunta, ConfORM te evita el mapeo en xml por completo? > > El 10 de febrero de 2011 16:46, Carlos Peix <[email protected]>escribió: > > A mi no me resulta penoso ni molesto escribir mappings en XML, es una tarea >> que me lleva una fraccion del tiempo que dedico a programar. >> >> Cuando programo y necesito uno o dos campos mas en mi objeto, los agrego y >> tambien agrego el mapping. Me lleva el mismo tiempo escribir en el XML que >> en mi clase. >> >> Distinto sera el caso, supongo, de aquel que tiene que escribir el mapping >> de 200 clases de una sola vez, >> >> Ultimamente estoy usando ConfORM porque me resulta todavia mas comodo. >> >> ---------------------------------- >> Carlos Peix >> >> 2011/2/10 Edgar Ramos <[email protected]> >> >>> Yo en cambio sigo mapeando, trato de entender bien esta estrategia y los >>> diversos conceptos relacionados, para cuando la domine bien, ir con todo a >>> ConfORM >>> >>> >>> Saludos >>> >>> Edgar >>> >>> El 10 de febrero de 2011 16:14, Fabio Maulo <[email protected]>escribió: >>> >>> El estandard de facto para uso de attributes es NHMA >>>> (NHibernate.Mapping.Attributes). >>>> Repito que es el estandard de facto para quien usa attributes para >>>> mappings de NHibernate. >>>> >>>> Para quien le gusta usar attributes tambien hay varias adaptacciones >>>> usando System.ComponentModel.DataAnnotations; las adaptaciones mas usadas >>>> son para FNH. >>>> >>>> El aclarar "robusto" y "grande" no está de sobra porque lo usaste como >>>> parametro para eleguir la forma de mapear con NHibernate; tu opinion sobre >>>> lo que significa "robusto" es importante a la hora de ayudarte con una >>>> decisión. >>>> >>>> En .NET nos estamos alejando siempre mas sea de XML que de Attribute >>>> (por lo menos para determinadad cosas). >>>> Spring.NET está reimplementatdo toda la configuracción por codigo usando >>>> convenciones y fluent-interfaces; Spring.NET habla con el equipo de Spring >>>> (Mark lo hace) para que estas inovaciones sean tomadas por el equipo JAVA. >>>> >>>> En .NET los attributes son classes concretas y para usarlas hay que >>>> agregar referencias a los assemblies que contienen dichos attributes. >>>> Haciendote un ejemplo con NHMA significa que en el assembly donde definis >>>> tu >>>> dominio tendras que referenciar NHMA y po end NH así que tenes las classes >>>> de tu dominio pegadas a NHibernate. Quien no le importa esa "cosita" usa >>>> NHMA. A quien si le importa usa otra forma no intrusiva de mapeo. >>>> >>>> Tener un framework que mapea NHibernate basandose en patterns de >>>> mapeo/implementacción es una ENORME ventaja y permite, con unas pocas >>>> lineas >>>> de codigo, tener todos los mappings... hasta se llega a agregar classes de >>>> dominio sin tener que hacer absolutamente nada para usarlas con NHibernate. >>>> Ni hablar del uso de fluent-interfaces, configuracción por codigo y >>>> convetions en la configuracción de framework de IoC/DI/AOP. >>>> >>>> El mundo .NET evolució muy rapido. >>>> >>>> Darme una respuesta que me parezca ofensiva te va a costar a menos que >>>> no uses malapalabras reconocidas como ofensivas. >>>> Tener una opinion distinta para mi no es una ofensa. >>>> >>>> Sigo sosteniendo que tu "todo me está orillando a utilizar el >>>> nhibernate vía xml" es solo por desconderse tras una forma conocida de >>>> mapear. En NHibernate hay muchisimas mas opciones para llevar a cabo esa >>>> tarea aburidisima. >>>> >>>> >>>> 2011/2/10 Rodrigo Marquez <[email protected]> >>>> >>>>> Mira Fabio, acabo de borrar 20 líneas de >>>>> texto respondiéndote ofensivamente, no groseramente, pero sí a la >>>>> ofensiva. >>>>> Las he borrado, no me interesa entablar una discusión contigo. Simplemente >>>>> quiero hacerte notar que el sarcasmo (Habría que implementar >>>>> EsRobusto(framework) e EsGrandes(proyecto)) está de sobra en un grupo de >>>>> profesionales, de cualquier ramo, yo lo que quería recalcar es que NO HAY >>>>> un >>>>> framework que pudiéramos considerar como DE FACTO para utilizar >>>>> anotaciones >>>>> (o atributos) en NHibernate, como lo puede ser JPA en java, que te aseguro >>>>> sería la respuesta de 9 de cada 10 profesionales en Java al preguntarles >>>>> sobre un FW para manejar anotaciones. Simple, en .NET no lo hay y >>>>> NHibernate >>>>> no lo implementa aún de manera nativa, como ya lo hace Hibernate 3.0. Eso >>>>> es >>>>> todo, si se ofendió alguien ni modos. Pero responde en forma seria, el >>>>> foro >>>>> merece el respeto. >>>>> >>>>> P.D. ¿Qué es TOSTO? >>>>> >>>>> El 10 de febrero de 2011 12:50, Fabio Maulo >>>>> <[email protected]>escribió: >>>>> >>>>>> Habría que implementar EsRobusto(framework) e EsGrandes(proyecto) >>>>>> >>>>>> FNH existe y es usado por un gran numero de projectos grandes y por lo >>>>>> que pude investigar es un proyecto robusto. >>>>>> Viasual NHibernate y LLBLGEN son usado por un gran numero de projectos >>>>>> grandes, son proyectos robusto, proveen reverse engineering y son pagos. >>>>>> >>>>>> ConfORM mas que robusto es TOSTO y, aunque si en menor cantidad, >>>>>> tambien es usado en proyectos grandes. >>>>>> >>>>>> Repito, si queres usar XML es solo porque queres. Si trabajas con >>>>>> clases que representan el dominio, y queres que el DB sea diseñado >>>>>> siguiendo >>>>>> reglas de ORM, en NHibernate hay muchas opciones y todas no solo son >>>>>> validas >>>>>> si no que son usadas en proyectos comerciales serios. >>>>>> >>>>>> Si lo que buscas es "desconderte tras lo conocido" (XML) no hay ningun >>>>>> problema, pero lo le heche la culpa a otros afirmando que necesitas un >>>>>> framework "robusto" y para proyectos "grandes". >>>>>> >>>>>> >>>>>> 2011/2/10 Rodrigo Marquez <[email protected]> >>>>>> >>>>>>> Hola Fabio, no concuerdo, al decir que todo me orilla a... estoy >>>>>>> diciendo que debido a que no encuentro evidencia sólida de que exista un >>>>>>> framework robusto que me ayude a eludir el xml, al mencionar evidencia >>>>>>> me >>>>>>> refiero no simplemente al testimonio de empresas o proyectos grandes que >>>>>>> hayan usado alguno de los frameworks disponibles (como las que tiene el >>>>>>> mismo NHibernate y ya no digamos Hibernate...) sino que me conformaría >>>>>>> con >>>>>>> escuchar que hay cierta predilección de la mayoría de los que saben >>>>>>> (AKA, >>>>>>> los que moderan el grupo, y otros foros) por algún framework ya sea por >>>>>>> su >>>>>>> estabilidad/flexibilidad/conveniencia, no me malinterpreten, no digo >>>>>>> que los >>>>>>> que hay no sean buenos, sino >>>>>>> >>>>>>> El 10 de febrero de 2011 11:49, Fabio Maulo >>>>>>> <[email protected]>escribió: >>>>>>> >>>>>>>> Rodrigo, >>>>>>>> creo que quien se "orilla" a utilizar XML eres tu mismo. >>>>>>>> >>>>>>>> un pequeño ejemplo : >>>>>>>> http://fabiomaulo.blogspot.com/2010/11/conform-understanding-polymorphism_04.html >>>>>>>> Notar que el mapping de ese domino es de 4 lineas. >>>>>>>> >>>>>>>> La serie: http://fabiomaulo.blogspot.com/search/label/ConfORM >>>>>>>> >>>>>>>> 2011/2/10 Rodrigo Marquez <[email protected]> >>>>>>>> >>>>>>>>> Ah pues muchas gracias Carlos por compartirme tu experiencia, >>>>>>>>> fíjate que todo me está orillando a utilizar el nhibernate vía xml, >>>>>>>>> en fin, >>>>>>>>> por ahí he visto que existen generadores de xml por ingeniería >>>>>>>>> inversa y eso >>>>>>>>> resuelve parte del problema, una pregunta más, y creo que la última, >>>>>>>>> que tal >>>>>>>>> funcionan en nhibernate los on-cascade, para crear, actualizar y >>>>>>>>> eliminar >>>>>>>>> registros?, relacionados evidentemente. >>>>>>>>> >>>>>>>>> Saludos >>>>>>>>> >>>>>>>>> El 10 de febrero de 2011 04:09, Carlos Peix <[email protected] >>>>>>>>> > escribió: >>>>>>>>> >>>>>>>>> Hola Rodrigo, >>>>>>>>>> >>>>>>>>>> Yo he usado AR hace tiempo, no tuve problemas. Deje de usarlo >>>>>>>>>> porque no me gusto el modelo de trabajo y al fin y al cabo, no me >>>>>>>>>> molestaba >>>>>>>>>> escribir los mappings en XML. >>>>>>>>>> >>>>>>>>>> ---------------------------------- >>>>>>>>>> Carlos Peix >>>>>>>>>> >>>>>>>>>> 2011/2/9 Rodrigo Marquez <[email protected]> >>>>>>>>>> >>>>>>>>>>> Hola Carlos, todos, el ActiveRecord de Castle me pareció muy >>>>>>>>>>> bueno, solamente he estado leyendo sobre él, pero no sé, estoy >>>>>>>>>>> considerando >>>>>>>>>>> seriamente usar simple Nhibernate 3.0 y utilizar xml's como en la >>>>>>>>>>> versiones >>>>>>>>>>> antediluvianas de Hibenate, lo digo porque no cuento con tanto >>>>>>>>>>> tiempo como >>>>>>>>>>> para ahondar en ActiveRecord u otra tecnología, y desconozco que >>>>>>>>>>> tan grande >>>>>>>>>>> es la curva de aprendizaje para estos frameworks, la aplicación que >>>>>>>>>>> debo >>>>>>>>>>> construir es sencilla, sin grandes requerimientos, aunque va a ser >>>>>>>>>>> algo >>>>>>>>>>> concurrida, no puedo dar muchos detalles por ser confidencial pero >>>>>>>>>>> va a ser >>>>>>>>>>> utilizada a nivel nacional aunque por no muchos establecimientos, >>>>>>>>>>> yo calculo >>>>>>>>>>> que la concurrencia ha de estar entre 100-200 personas por hora. Lo >>>>>>>>>>> que >>>>>>>>>>> quiero evitar es comenzar a utilizar algo como ActiveRecords y >>>>>>>>>>> luego darme >>>>>>>>>>> cuenta que me va a dar problemas y deba echar para atrás parte de mi >>>>>>>>>>> desarrollo. >>>>>>>>>>> >>>>>>>>>>> Saludos, apreciaría si alguien tiene algún comentario sobre >>>>>>>>>>> ActiveRecords, si alguien lo ha utilizado en algún proyecto >>>>>>>>>>> empresarial. >>>>>>>>>>> >>>>>>>>>>> El 9 de febrero de 2011 05:01, Carlos Peix < >>>>>>>>>>> [email protected]> escribió: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2011/2/8 Rodrigo Marquez <[email protected]> >>>>>>>>>>>> >>>>>>>>>>>> al referirte al framework de attributes te refieres al Fluent >>>>>>>>>>>>> Nhibernate?, >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Hay varias maneras de configurar los mapeos de NHibernate, todas >>>>>>>>>>>> ellas son distintas: >>>>>>>>>>>> >>>>>>>>>>>> - XML: archivos .hbm.xml, muy similar a Hibernate >>>>>>>>>>>> - Atributos: un proyecto de NH Contrib, desactualizado segun >>>>>>>>>>>> vi hace un tiempo >>>>>>>>>>>> - Castle ActiveRecord: no es solo configuracion, agrega >>>>>>>>>>>> servicios a NHibernate. Se configura con atributos similares a >>>>>>>>>>>> los que >>>>>>>>>>>> indicaste en tu ejemplo de JPA >>>>>>>>>>>> - FluentNHibernate: configura NH mediante una API fluent. >>>>>>>>>>>> Luego genera los mappings. >>>>>>>>>>>> - ConfORM: es una suerte de autoconfiguracion. Parte de >>>>>>>>>>>> ciertas reglas y del analisis de las clases de dominio. >>>>>>>>>>>> - Algun otro que se me escape... >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> porqué comentas que es engorroso?, hice un pequeño ejemplo pero >>>>>>>>>>>>> no lo suficiente como para dar un veredicto, así que me gustaría >>>>>>>>>>>>> saber un >>>>>>>>>>>>> poco mas del porqué de tu comentario, gracias!!! >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Es una cuestion subjetiva, a muchos no nos gusta utilizar >>>>>>>>>>>> atributos de persistencia (u otros de infraestructura) en nuestro >>>>>>>>>>>> modelo. >>>>>>>>>>>> Ademas hay opciones que pemiten escribir menos y separado del >>>>>>>>>>>> dominio. >>>>>>>>>>>> >>>>>>>>>>>> Por ejemplo, con ConfORM, una vez que tenes establecidas las >>>>>>>>>>>> reglas, las cuales deben estar de acuerdo a tus convenciones de >>>>>>>>>>>> codificacion, no tenes que configurar nada con cada nueva clase >>>>>>>>>>>> que agreges >>>>>>>>>>>> (suponiendo que dejas que NHibernate genere tu esquema de base de >>>>>>>>>>>> datos). >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Darío, José, a ambos gracias, me refirieron a Conform, por lo >>>>>>>>>>>>> que leo está interesante, se trata de un generador de modelos, es >>>>>>>>>>>>> decir, que >>>>>>>>>>>>> crea los xmls a partir de código, estoy en lo correcto? >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> No, es justo al reves. Vos escribis tu modelo y luego lo mapeas >>>>>>>>>>>> con ConfORM >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> lo han utilizado alguna vez? es estable? >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> A la primera pregunta: si, a la segunda: si, como cualquier otro >>>>>>>>>>>> software liberado luego de su version 1.0. Siempre es bueno tener >>>>>>>>>>>> tests. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Muchisimas gracias!! >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ---------------------------------- >>>>>>>>>>>> Carlos Peix >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> El 8 de febrero de 2011 17:57, José F. Romaniello < >>>>>>>>>>>>> [email protected]> escribió: >>>>>>>>>>>>> >>>>>>>>>>>>> Habia un proyecto NHibernate MappingsAttribuetes en contrib >>>>>>>>>>>>>> creo pero >>>>>>>>>>>>>> esta olvidado, la unica opción con atributos es activerecord >>>>>>>>>>>>>> (castle >>>>>>>>>>>>>> project). >>>>>>>>>>>>>> Según fabio en nhibernate no se mapea más, desde el proyecto >>>>>>>>>>>>>> conform. >>>>>>>>>>>>>> >>>>>>>>>>>>>> El 08/02/11, rodmarquez21 <[email protected]> escribió: >>>>>>>>>>>>>> > Buenas tardes a todo@s, vengo de Hibernate 3, para java, lo >>>>>>>>>>>>>> he usado >>>>>>>>>>>>>> > con JPA, es decir, con anotaciones, ya no se usa el XML para >>>>>>>>>>>>>> mapear >>>>>>>>>>>>>> > los atributos, saben si el NHibernate puede trabajar con >>>>>>>>>>>>>> algo parecido >>>>>>>>>>>>>> > al JPA???, algo así: >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > @Entity >>>>>>>>>>>>>> > @Table(name="tbl_sky") >>>>>>>>>>>>>> > public class Sky implements Serializable { >>>>>>>>>>>>>> > ... >>>>>>>>>>>>>> > } >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > o... >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, >>>>>>>>>>>>>> > generator="SEQ_STORE") >>>>>>>>>>>>>> > public Integer getId() { ... } >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > El @ marca las anotaciones, hay algo así para .NET? >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > Gracias de antemano!! >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > -- >>>>>>>>>>>>>> > Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>>>>>> > [email protected] >>>>>>>>>>>>>> > Para más, visite: >>>>>>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Enviado desde mi dispositivo móvil >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>> Para más, visite: >>>>>>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> Para más, visite: >>>>>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>>>> [email protected] >>>>>>>>>>>> Para más, visite: >>>>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>>> [email protected] >>>>>>>>>>> Para más, visite: >>>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>>> [email protected] >>>>>>>>>> Para más, visite: >>>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>>> [email protected] >>>>>>>>> Para más, visite: >>>>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> 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 >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>> [email protected] >>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> 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 >>>>>> >>>>> >>>>> -- >>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>> [email protected] >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>> >>>> >>>> >>>> -- >>>> 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 >>>> >>> >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> [email protected] >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- 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
