VAN - Septiembre 26 de 2009 - Generación de Código
Formato
Reunión virtual
Duración:
Vídeo: 1:58 horas
Nota: La presentación del tema a cargo de Angel "Java" Lopez comprende 1:14 horas y a partir de ahí continua la sección de preguntas y discusión.
Síntesis:
En esta reunión virtual, se presentaron al comienzo algunos conceptos de generación de código; situación actual del desarrollo que nos lleva a plantearnos una solución pragmática que es la generación de código; y un ejemplo ("prueba ácida") con una herramienta de código abierto, AjGenesis. El ejemplo consistió en ¿cómo generar un Hola Mundo? en distintas tecnologías.
Fueron presentadas entonces, las características de un sistema de generación de código:
- Que parta de un modelo, libremente definido
- Que sea de código abierto
- Que genere el código que hubiéramos generado nosotros
- Que genere código para cualquier tecnología, librerías, frameworks (porque la tecnología, librerías y frameworks cambian)
- Que tome decisiones en el medio de la generación (un lenguaje de programación, más que un lenguaje de templates)
- Que se integre con la plataforma de base (.NET en este caso, pero podría ser Java)
- Que genere para distintas plataformas
- Que pueda ser invocado como librería, para integrarlo en nuestros proyectos
Se presentó un ejemplo más completo, donde basado en un modelo libremente definido, se generó una aplicación para .NET, para Java, y para PHP.
Y como última demo, se mostró la capacidad de generar código como servicio, desde una interfaz web, usando AjGenesis Web Studio.
Tanto el código de AjGenesis, como los ejemplos de Hola Mundo, y los de entidades con distintas tecnologías, pueden bajarlo del sitio de Codeplex del proyecto: http://ajgenesis.codeplex.com/SourceControl/BrowseLatest
En la segunda parte, se plantearon discusiones, sobre qué generar o no, y se mencionaron proyectos que generan código o generan código, y los pro y contra de la generación de código (que como se mencionó, no es una "bala de plata" que resuelve todos los problemas).
Enlaces:
- Sobre la generación de código donde se tratan los temas de los primeros minutos de la charla
- AjGenesis herramienta de código abierto, que genera código basado en modelos libremente definidos, tareas y plantillas (código, ejemplos, enlaces, incluye AjGenesis Web Studio)
- AjGenesis Studio interfaz Windows para usar sobre AjGenesis
- Posts en español sobre AjGenesis, explicando ejemplos, los lenguajes que usa, y próximos pasos.
- http://groups.google.com/group/codegeneration grupo de discusión sobre generación de código, en español.
- Diez reglas principales para la generación de código
- CodeSmith Generador basado en plantillas, similares a ASP.NET
- MyGenerationSoftware
- MDA Model Driven Architecture, desde Object Management Group
- Andromda Generador de código para varias tecnologías basado en MDA
- CodeGeneration.NET Sitio de Generación de Código (actualmente, preparando la conferencia Code Generation 2010)
- Cooperator Framework Genera código .NET mapeando objetos a bases de datos (Object Relation Mapping, ORM)
- CSLA.Generator Generador de código para el framework CSLA.
- Sculpture Genera código para distintos tipos de proyectos .NET, desde un modelo diseñado por las herramientas de extensibilidad de Visual Studio
- Enlaces de @ajlopez sobre Code Generation en general
- The Model Driven Software Network comunidad interesada en el desarrollo dirigido por modelos
-
La generación de código y el trabajo de desarrollo de software
-
Modelo, decisiones, inteligencia artificial y AjGenesis
-
Generación de código como servicio
Lecturas
Video
Si lo prefieren, pueden observar el vídeo en http://www.screencast.com/t/cJZ6yeXkt o descargar el archivo desde este enlace, el cual tiene un tamaño de 467.05 MB.