Monday, August 22, 2005

ExpertCoder versión 20050822 liberada

Ya fue corregido el bug que forzó el retiro de la versión 20050820.

Como mencioné la otra vez, el nuevo manual de usuario de ExpertCoder se basará en esta versión, así que pueden descargarla para probar los ejemplos del manual y para jugar un poco, e inclusive para basar sus proyectos en ella, pero no considero que esta versión tenga calidad suficiente como para un entorno de producción.

Recuerden que la versión 0.1a de MonoUML necesita la versión anterior, 20050503, lo que no sucede con la versión de SVN porque ésta depende de la versión de CVS de ExpertCoder.

No duden en preguntar si tienen dudas o problemas.

Como siempre, se agradecen todos los reportes de bugs.

Versión retirada debido a bug

He retirado momentáneamente la última versión de ExpertCoder del área de descargas, debido a que he encontrado un bug importante en la librería de serialización. Esta tarde voy a corregirlo y voy a subir un nuevo paquete.

Disculpen las molestias.

Saturday, August 20, 2005

Nueva versión de ExpertCoder - 20050820

He liberado una nueva versión de ExpertCoder, la 20050820.

Esta versión no es compatible a nivel API con la anterior, así que aquellos que estén usando EC deberán recompilar sus proyectos y corregir lo que haga falta - no creo que sea mucho.

A propósito, MonoUML (en SVN) utiliza ExpertCoder de CVS desde hace algún tiempo, así que no es necesario modificarle nada. He dejado visible la versión anterior de EC, porque es la que usa la versión 0.1a de MonoUML.

Aunque los cambios incorporados en esta versión no están tan bien probados como los de otras versiones, he preferido liberar ahora para que el nuevo manual de usuario de ExpertCoder, que está en pleno desarrollo, refleje la realidad de la versión disponible para descarga.

El paquete es mucho más pequeño que el de la versión anterior, ya que no incluye los símbolos para depuración; de todas formas, a los usuarios del framework .NET de Microsoft les servía de poco.

Para obtener los fuentes correspondientes a esta versión, basta con tomar la versión marcada con el tag rel-20050820 desde CVS.

Por supuesto, si se topan con algún problema relacionado a esta versión, por favor avísenme.

¡Espero que lo disfruten! :)

Librería de plantillas más simple

He subido unos cambios al CVS de ExpertCoder, que simplifican (un poquito) la manera de escribir clases derivadas de Template (o sea, plantillas).

Hasta ayer, existía una enumeración TemplateSource, que se usaba para indicar durante la construcción de la instancia si la cadena que venía a continuación debía interpretarse como una plantilla de texto o como el nombre del fichero que contiene a la plantilla.

Ahora hay dos constructores: uno que recibe un string y otro que recibe un FileInfo de System.IO.

A modo de ejemplo:
antes:


public class MiPlantilla : Template
{
public MiPlantilla() : base(
TemplateSource.Text,
"mensaje: $Mensaje!",
new string[] {"$Mensaje!"})
{ }
/* ... */
}
y ahora

public class MiPlantilla : Template
{
public MiPlantilla() : base(
"mensaje: $Mensaje!",
new string[] {"$Mensaje!"})
{ }
/* ... */
}

Ahora me gusta más :)

Sunday, August 14, 2005

Un modelo en varios ficheros

Acabo de subir unos cambios a ExpertCoder, en particular a la librería de XMI 2.0 y a los serializadores que la utilizan, que posibilitan distribuir un modelo en varios ficheros XMI.

Esto permite, por ejemplo, tener definido un solo fichero XMI con tipos de datos comunes, y luego utilizarlo desde varios modelos. Pero más importante aún, será la posibilidad de definir perfiles (profiles) de UML 2 y luego poder aplicarlos a modelos, manteniendo por separado cada componente:

  • La definición del perfil.
  • La definición del modelo.
  • La aplicación del perfil al modelo.

Mantener todo por separado, de esta forma, permitirá aplicar y desaplicar más de un perfil a un modelo. Esto es sumamente útil en lo que respecta a generadores de código, ya que es frecuente que un generador necesite más información de la que el UML puro puede proporcionar; por ejemplo, es necesario un perfil de modelado de datos para poder indicar el tamaño de una columna de tipo varchar, ya que una Property de UML solo tiene tipo de dato, pero no tamaño.

He anunciado este evento en la lista de distribución en castellano de desarrolladores de MonoUML, ya que también he añadido una entrada de menú en MonoUML para agregar referencias a otros dominios de modelo desde el proyecto actual.