Generadores de Código revisados: CodesmithTools & IronSpeed

image

Acabo de darle una pequeña revisada –una vez mas– a las herramientas arriba mencionadas, es que cada cierto tiempo voy viendo sus facilidades, y bueno, en el trabajo usamos algunas, dependiendo del caso o necesidad…

De por si el uso de una herramienta de generación de código ayuda considerablemente en todo lo relacionado a código que puede considerarse repetible o muchas veces “tonto”, aqui me refiero a las partes de conexión a base de datos, uso de stored procedures o incluso partes que siempre son repetibles si se usan alternativas ORM como Entity Framework u otros…

Pero bueno, de por si las facilidades brindadas por un generador de código es una filosofía mas que interesante, pero creo que este tema ya ha sido cubierto muchas veces, asi que por hoy no lo tocaremos.

Estaba usando el CodeSmith por un tiempo y que puedo decirles? que es genial!!, puede generar lo que sea, si tienes claro el modelo de trabajo, es decir, la configuración de una plantilla, la cual contiene una parte variable (la que nos ayudará a generar el código) que en base a parámetros y un poco de programacion .net nos genera lo que sea!

Mas que una demo, les recomiendo descarguen la versión de prueba y bueno, revisen la sección Examples / Basic Samples / CSharp para que noten la facilidad para generar rápidamente algunas cosas interesantes.

En la imagen de la derecha puede observarse el explorador de plantillas del CodeSmith y como pueden notar es considerablemente similar al IDE del Visual Studio, asi que la familiaridad de herramienta, ayudará un poco.

Lo interesante del asunto es que hay ejemplos de generación de código en varios frameworks como CSLA o NHibernate.

Entre lo positivo que podría resaltar es que la filosofía de esta herramienta es generar lo que sea desde una plantilla de texto plano configurada vía parametros y mientras mas programes en .net para generar texto plano, pues mucho mejor!
Lo negativo a mencionar es inicialmente, que su versión de pruebas es de 30 días (aunque la solucion rápida de un amigo fue pedir de nuevo un key de pruebas…) y por otro lado, a pesar de que veo que su comunidad es activa, a veces busco información y pues, me quedo en el aire con la duda (por suerte tengo amigos que saben bastante y me ayudan con ello, pero tampoco deberia ser asi, no?)

image

Por otro lado y luego de mucho tiempo, volví a descargar el IronSpeed Designer, muy interesante, con su pantalla inicial preguntándote “qué theme le pondrías a tu aplicación a generar?”, quedé pasmado pensando… “por qué no ponen eso en otras aplicaciones?”

De por si la configuración es bastante amigable, desde qué colores quieres incluir en las pantallas a generarse (asi es, pantallas!) hasta qué tabla quieres usar, lo cual considero mínino necesario en una buena aplicación de este rubro.

Lo que debo resaltar aqui como positivo es que el entorno es amigable y directo, es decir, necesito generar esto, punto final =D.
Y bueno una nueva característica de esta versión es que puedes configurar el diseño de la interfaz generada, desde el logo del header al texto del footer… como dije, entorno amigable.
Lo negativo del asunto es que a pesar que la generación de las fuentes ha mejorado considerablemente, pues el mantenimiento de las mismas, lo veo un poco engorroso, solo puedo decirles, que se genera tooodo en una capa =S, aunque claro estoy usando la version Free, bastante limitada en lo que respecta a numero de tablas y páginas a generar. 
 

En general que les puedo decir? La verdad es que ambas herramientas son muy buenas! claro ambas tienen un costo, pero si podría recomendarles algo, les preguntaría, exactamente qué buscan?

– Ya que, si se trata de mantenimientos rápidos, como a veces sucede en algunos proyectos, empresas pequeñas o incluso curiosidades que me podría pedir hasta mi abuelo, pues IronSpeed, hasta el Free les puede servir, ya que a pesar que limitan la cantidad de tablas (no mas de 15) y páginas que tengan que generarse (no más de 30), es algo que puede superarse

– Si estamos hablando de una aplicación mas empresarial (por asi decirlo) en la cual se necesite una distribución orientada a servicios, o quizá los requerimientos del usuario incluyan específicamente utilización de LINQ, NHibernate, CSLA, capas… pues CodeSmith te puede generar lo que quieras!

– Ahora, si tenemos la limitante del costo por las licencias, pues la mejor alternativa, es el AJGenesis del buen Angel “Java” Lopez.
Aqui la filosofia que se maneja es la que debería seguir todo motor de generación de código, permitir generar cualquier tipo de código a raiz de una plantilla configurable/programable.
De por si el AJGenesis es un mundo por explorar, que a su vez, no deja de ser sencillo de aprender, pero bueno, ese es tema de otro post o desde ya, les recomiendo revisen la documentacion que pueden encontrar en el blog del Java Lopez!

Y ya para despedirme, pues les adelanto que tengo en mente un podcast relacionado, veamos que sucede, no?

Un Saludo!
@jersson

7 comentarios sobre “Generadores de Código revisados: CodesmithTools & IronSpeed”

  1. Prové codesmith y me gustó mucho (incluso te genera los stored procedures). Lo único que no me acabó de gustar es que te generaba código que incluso no llegas a utilizar nunca (y eso no es bueno). Quizá por eso el problema estaba en que utilizaba una plantilla inadecuada. La idea de usar generadores de código para tareas comunes me parece una buena idea.

    Buen artículo.

  2. Hola Jesús, en efecto todo depende de que plantilla usas para la generación del código.
    Asi es, tal como indicas, esa es la idea!

    Saludos y Gracias.
    Jersson

  3. CodeSmith junto a plantillas como nettiers es muy bueno creando las capas de datos, negocio e incluso controles web que facilitan utilizar las entidades del modelo de datos, además crea clases parciales con lo cual el mantenimiento y regeneración resulta fácil y se pueden personalizar las clases creadas sin perder código al regenerar, tambien es posible configurar las clases de negocio para que utilicen WCF.

  4. Hola navegante! asi es! puedes hacerlo que quieras con codesmith! y bueno, tu comentario es un claro ejemplo de poder lograrlo.

    Saludos y Gracias

  5. Hola, en general lo interesante del CodeSmith es que trabaja en base a los resulsets que le mandes, es decir, si configuras la fuente de datos, pues haria lo mismo que con SQL.

    Estoy buscando un ejemplo via google, pero te lo comento pues un amigo del trabajo usaba codesmith con oracle, y no tenia problemas!

    Saludos

  6. hola pregunton 😀
    me parece que entre hoy y el lunes un amigo de por aqui verá un template accediendo a oracle, cualquier novedad te comento 😀

  7. Hola Preguntón, te recomiendo que consideres este enlace http://tinyurl.com/orasmith ya que en realidad lo que al codesmith le interesa es la fuente de datos y desde alli es que trabaja.

    Porfa si tienes problemas con la conexion, comentalo, a ver si por este medio hacemos un post al respecto.

    Saludos
    @jersson

Responder a jersson Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *