Dominio WikiPage o agregar contenido semi-estructurado a mi aplicación
Desde hace un tiempo, vengo encontrando un patrón repetido en las aplicaciones que estamos desarrollando: Hay que agregar algún tipo de contenido no demasiado estructurado a determinadas tablas.
Para que se pueda entender pongo algunos ejemplos:
User Control en el GeneXus MarketPlace.
Necesita una pagina con texto con formato, un titulo, una explicación, links a paginas de ejemplo y algunos archivos adjuntos para poder bajar dicho control
Sistema de Incidentes.
Se necesita tener una explicación y una resolución con una historia de los mismos, dejando registro de quien agrega / cambia algo.
Es util tambien tener links a otros incidentes y tener adjuntos.
Proyectos de desarrollo compartido.
Es bueno tener una pagina donde se explique el alcance, los objetivos, las tareas que quedan por hacer. También es bueno tener para bajar los archivos necesarios para hacer funcionar dicho proyecto.
Varias de estas necesidades las podemos resolver con un Wiki, por lo que se me ocurría que seria conveniente agregar a las aplicaciones GeneXus un Data Type o un dominio WikiPage.
De esta forma, podríamos definir la tabla de proyectos de la forma
Proyectos
Cuando use la tabla de productos, voy a tener disponible tanto un link como el contenido de la pagina en HTML para poder usarla en cualquier lugar de mi aplicación.
La primera vez que voy a la pagina en el wiki, se debe crear la misma con un Template predefinido en este caso para proyectos, donde se pueda poner los datos que el diseñador de dicho Template establezca, cargándose estos datos con un SDT predeterminado.
Se deben hacer algunos controles básicos, como que si la pagina ya existe se debe editar y si no existe se debe crear y también si el usuario esta autorizado o no a editarla.
Que propiedades podría tener este dominio?
Los componentes básicos necesarios para hacer funcionar esto, ya están desarrollados, por lo que faltaría integrarlos y pensar bastante en su usabilidad para que fuera sencillos utilizarlos.
Porque no usar una pagina HTML ?
El editor Wiki es mas facil de usar que un editor HTML. Tiene resuelto la subida de imagenes, archivos adjuntos y el link a otras paginas de forma mas facil para el usuario final.
Ademas quedan grabado toda la historia de cambios, por lo que se sabe quien y cuando hizo determinado cambio.
Para que se pueda entender pongo algunos ejemplos:
User Control en el GeneXus MarketPlace.
Necesita una pagina con texto con formato, un titulo, una explicación, links a paginas de ejemplo y algunos archivos adjuntos para poder bajar dicho control
Sistema de Incidentes.
Se necesita tener una explicación y una resolución con una historia de los mismos, dejando registro de quien agrega / cambia algo.
Es util tambien tener links a otros incidentes y tener adjuntos.
Proyectos de desarrollo compartido.
Es bueno tener una pagina donde se explique el alcance, los objetivos, las tareas que quedan por hacer. También es bueno tener para bajar los archivos necesarios para hacer funcionar dicho proyecto.
Varias de estas necesidades las podemos resolver con un Wiki, por lo que se me ocurría que seria conveniente agregar a las aplicaciones GeneXus un Data Type o un dominio WikiPage.
De esta forma, podríamos definir la tabla de proyectos de la forma
Proyectos
*ProyectoId ID ProyectoNombre VarChar(100) ProyectoWikiPage WikiPage ProyectoFechaInicial DateEn WikiPage, podría verse en la pantalla como un link o como un editor sencillo, que apunte a un Wiki.
Cuando use la tabla de productos, voy a tener disponible tanto un link como el contenido de la pagina en HTML para poder usarla en cualquier lugar de mi aplicación.
La primera vez que voy a la pagina en el wiki, se debe crear la misma con un Template predefinido en este caso para proyectos, donde se pueda poner los datos que el diseñador de dicho Template establezca, cargándose estos datos con un SDT predeterminado.
Se deben hacer algunos controles básicos, como que si la pagina ya existe se debe editar y si no existe se debe crear y también si el usuario esta autorizado o no a editarla.
Que propiedades podría tener este dominio?
- WikiHost (Servidor, puerto, directorio virtual, etc del wiki donde se crearan las paginas)
- Template (Plantilla a utilizar para la creación de la pagina)
- SDTWikiPage (los datos que se quieran creación incial de la pagina, por ejemplo se podría crear una pagina en el wiki con una tabla que tenga el nombre del proyecto, la fecha de creación, etc).
- Categorías (Para dejar a la pagina ya clasificada con una categoría en el wiki, de forma de agrupar todas las paginas de proyectos).
Los componentes básicos necesarios para hacer funcionar esto, ya están desarrollados, por lo que faltaría integrarlos y pensar bastante en su usabilidad para que fuera sencillos utilizarlos.
Porque no usar una pagina HTML ?
El editor Wiki es mas facil de usar que un editor HTML. Tiene resuelto la subida de imagenes, archivos adjuntos y el link a otras paginas de forma mas facil para el usuario final.
Ademas quedan grabado toda la historia de cambios, por lo que se sabe quien y cuando hizo determinado cambio.
Comentarios
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.