martes, abril 08, 2008
Cambio de residencia
Mi nueva residencia: http://ecatalab.blogspot.com
Nos vemos en el otro lado!
jueves, abril 20, 2006
Estado actual del proyecto
El caso es que ya lo tenemos todo claro y tenemos ya 1 generacion completa y otra " a punto de caramelo", por lo que podremos hablar en propiedad y sobre todo desde un prisma muy diferente al que pudieramos haber hablado hace unas semanas cuando empezamos con esta fase y aún no teniamos mas que la ayuda de las dsl tools y ninguna práctica.
Prepararos pues, para recibir en breve una oleada de posts relativos a la generacion de código de forma automática desde nuestro modelo y lo que es mejor, a como abordar de la mejor forma esta tarea. No os asusteis, os llevareis una grata sorpresa al ver la potencia que tiene la herramienta, creedme ;).
jueves, abril 06, 2006
Sintaxis de color en plantillas de generacion de código
No se si habeis comenzado con la etapa de generacion de código, pero algo que se hace realmente pesado es programar sin la sintaxis de color, sobre todo porque el código esta lleno de tags y debido a que los caracteres de retorno de carro se vuelcan sobre el fichero de salida, hemos de tener especial cuidado y tenerlo todo al mogollon. Por eso nos viene bien conocer la extension que nos propone Modelisoft.
Los pasos son bien sencillos:
- 1) Descargarnos el .zip con la .dll
- 2) Modificar si es necesario el archivo install.bat que viene con el, para que apunte a la ruta correcta (en nuestro caso por ser español, lo tendremos en Archivos de programa...
- 3) Todas aquellas plantillas de generacion de código que queramos tener coloreadas, han de tener la extension .t4 o .ReportTemplate
martes, abril 04, 2006
Como depurar en la plantilla de generacion de codigo
Todo esto en principio nos puede parecer trivial, puesto que hemos estado mucho tiempo modelando el diseñador, pero cuando tenemos algo puntual y sobre todo cuando nuestro modelo ya se va haciendo grande y dificil de acordarse de esos pequeños detalles, nos viene bien poder hacer breakpoints en la propia generacion de código.
Es muy sencillo, lo único que tenemos que tener presente es que lo que vamos a depurar no es la plantilla en sí, sino el código que mediante Sofware Factories se ha generado en C# a partir de nuestro fichero de template, y que generará nuestro archivo de salida. Parece lioso de entender pero si relees la frase anterior lo entenderas.
La idea general es la siguiente:
- nuestroTextTemplate.Template -> codigoIntermedioC#.cs -> nuestroFicheroOutput.sql
Como veis, se hace en 3 pasos y lo que atañe a la depuracion lo tendremos en codigoIntermedioC#.cs que es el que depuraremos.
Lo que tenemos que hacer es bien sencillo:
- Activar el flag debug="true" en la directiva "template"
<#@ template inherits="...ModelingTextTransformation" debug="true" #>
- Importar el espacio de nombres System.Diagnostics
<#@ import namespace="System.Diagnostics" #>
- Utilizar un bloque de expresion donde llamemos a la clase Debugger y hagamos un Breakpoint
<# Debugger.Break(); #>
Ahora, cuando pongamos el bloque "Expression", al guardar o darle al boton "GenerateAllTemplates", podremos pararnos en aquel punto marcado por nosotros. Pero recordad que lo que vereis sera el código C# intermedio generado mediante Sofware Factories.
Voy a poner un ejemplo de una prueba de plantilla de generacion de código simple con un breakpoint y luego parte de lo que veriamos en el Visual Studio con el debugger:
<# Debugger.Break(); #>
<# foreach(Clase clase in this.Esquema.classRole) { #>
<#=clase.Name#>
<# } #>
Aqui podemos ver una captura en plena depuracion:
martes, marzo 21, 2006
Primera compilacion de nuestro proyecto!
Dicho esto, voy a poner un pantallazo de la primera version compilada del ObjectOrientedMultidimensionalModel (vaya nombrecito, eh? ;).
De momento no podemos hacer conexiones entre Facts, dimensions y base clases, pero poco a poco.