Yo estuve haciendo pruebas, despues no lo termine :P pero podes usar el engine para generacion de codigo de cooperator y lo podes combinar con la metadata del assembly
-------------------------------------------------------------------------------- rdi2k | Ezequiel Jadib | MSN: [EMAIL PROTECTED] | Blogs: http://geeks.ms/blogs/ejadib/ (ES) - ejadib.wordpress.com (EN) ----- Original Message ----- From: Sebastian Renzi To: puntonet@mug.org.ar Sent: Wednesday, January 24, 2007 10:22 AM Subject: [puntonet] Validar entidad Dani, antes que nada quería comentar que el link que mande ayer no hace lo que yo pensaba. Creí que levantaba la metadata de la base y los assembly que levanta son solo los templates para la generación. La verdad es que lo que quiero es generar código basándome en un assembly que contenga el domain model, si ya hay algo hecho mejor ,pero la verdad no encontré, así que me parece lo voy a tener que hacer. Hay un proyecto en codeplex llamado "NHibernate Domain Mapper" que levanta la metadata de un assembly pero para generar los hbm, así que se podría investigar esa parte y después ver como generar el código. Si tenes info, la verdad me interesaría mucho verlo un poco mas en profundidad y si les parece bien después lo meten dentro del coop. ------------------------------------------------------------------------------ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Daniel Calvin Enviado el: martes, 23 de enero de 2007 20:18 Para: puntonet@mug.org.ar Asunto: [puntonet] Validar entidad Hola Seba Mirá hay mucho que se puede generar, no con el modeler actual, pero no sería imposible armar uno que sirva. La ing. inversa de un assembly es una pavada. Hay algunos temas que resolver, que entidades conforman agregaciones y cuales composiciones. ( por ejemplo ) La ing. inversa no sirve pa determinar esas cosas, se puede hacer con asistencia del desarrollador, tal como hoy el modeler de coop no infiere todo desde la base. No se si te interesa ver el tema en profundidad como para construir algo o solo estas buscando algo que ya lo tenga resuelto y solo usarlo. Contame si queres, las ideas y principios a aplicar son simples, tenemos todo el core armado como para poder hacer esas cosas, solo hay que armarlo. Bue, contame... Abrazo Daniel Calvin El día 23/01/07, Sebastian Renzi <[EMAIL PROTECTED]> escribió: Generar mis propios artefactos pero basandome en un assembly que contenga el domino ya modelado. Modelaria las clases del domino con el class designer del VS2005, compilo el assembly y en base a eso quiero generar las entidades, repositorios y demas yerbas.. no se si me explique bien que es lo que quiero hacer .. por ahí vi algo que me parece hace algo como lo que busco ,pero no tuve tiempo de mirarlo en detalle. http://www.codeproject.com/useritems/SmartCode-Code_Generation.asp La única contra que le veo a este es que las dll tienen que estar si o si en el GAC para que las levante. ------------------------------------------------------------------------------ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Daniel Calvin Enviado el: martes, 23 de enero de 2007 16:43 Para: puntonet@mug.org.ar Asunto: [puntonet] Validar entidad Uhmmmm, no demasiado para algunas cosas y para otras tal vez si. Coop usa una Abstract Factory para resolver la ing. inversa, con lo cual se puede ( en teoria al menos ) escribir un provider para que lo levante de cualquier lado. El tema es que vos lo que querrias hacer es la ing. inversa del modelo y genarar la DAL o algo por el estilo. Es eso????? Contame que es lo que pensas, la finalidad y te digo que tan complejo es.... Daniel El día 23/01/07, Sebastian Renzi < [EMAIL PROTECTED]> escribió: Gracias Dany por la data. Respondiendo a tu plegaria de la PD, que tan complicado seria hacerle algunos cambios al coop para que la fuente de metadata no sea un schema de base de datos sino un assembly ? ------------------------------------------------------------------------------ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Daniel Calvin Enviado el: martes, 23 de enero de 2007 16:14 Para: puntonet@mug.org.ar Asunto: [puntonet] Validar entidad Que buena pregunta Mario.... :)) Por lo general, y a mi pesar algunas veces pasa que uno rompe sus propias reglas, trato de no usar ese tipo de cosas. Si ves coop te permite implementar una interface IValidable using System; namespace Cooperator.Framework.Core { public interface IValidable { void Validate(); } } Y te genera las clases asi: public partial class Cliente // : IValidable { Si queres sacas el comentario, ( \\ ), e implementas la interface genrando una exception si la validacion es fallida. Bueno, fijate que es void, no retorna valor, el core de coop internamente lo que hace es siempre que la entidad impelmente IValidable invocar el validate. La única opción que tenes es en validate generar una exception, coop se encargara de progresarla. Me parece que es parecido a lo que queres hacer vos. Fijate que no retorna un estado, por un lado el framework te garantiza la invocación del metodo, por otro burbujea la exception. No se si es lo que estas buscando, tal vez la idea te sirva. Tampoco es un método que me encante, creo que sirve cuando ya no quedan más opciones. ( sobre por alla abajo en la DAL ) Abrazos Daniel Calvin PD: Bajen y usen coop..... ( por favor ... ) ja ja El día 23/01/07, Sebastian Renzi < [EMAIL PROTECTED] > escribió: Gracias Dany por la respuesta .. que usas vos para reemplazar public bool Validate() ? ------------------------------------------------------------------------------ De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Daniel Calvin Enviado el: martes, 23 de enero de 2007 15:30 Para: puntonet@mug.org.ar Asunto: [puntonet] Validar entidad Hola Sebastian En realidad hablar de validar es un poco amplio...., prefiero hablar de operaciones fallidas. Pero sin entrar en detalles sobre el tema, creo que la mejor opción siguen siendo la excetions... Te garantizan esabilidad, no tenes que arrastar flags, enums, lo que sea. Digo que validar es amplio porque en algunos casos no se justifica una exception, particularmente no me gustan los public bool Validate() en las clases, pero hay quienes lo usan.... Las exceptions son caras?, yo respondo, pero confiables y ricas en información. Es un tema largo, muchas veces no se puede retornar un estado aunque se quiera, por ejemplo una falla en un constructor, hay otras aunque se pueda retornar no se controla... Bue, tal vez aporte mas confusión que claridad, vivan las exceptions!!!!! Daniel El día 23/01/07, Sebastian Renzi < [EMAIL PROTECTED] > escribió: Hola lista, buenas tardes, quisiera conocer sus opiniones de cómo retornan o avisan que una entidad no esta validada. Supongamos que tengo el objeto Cliente, al momento de persistirlo verifico si esta validado, en el caso que no lo este, estoy tirando una exception, me gustaría saber como lo hacen, ya que siempre me dio un poco de cosa manejarme con exceptions. Salu2 Sebastian Renzi -- Daniel A. Calvin Cooperator Team Member http://www.cooperator.com.ar Microsoft Certified Professional -- Daniel A. Calvin Cooperator Team Member http://www.cooperator.com.ar Microsoft Certified Professional -- Daniel A. Calvin Cooperator Team Member http://www.cooperator.com.ar Microsoft Certified Professional -- Daniel A. Calvin Cooperator Team Member http://www.cooperator.com.ar Microsoft Certified Professional