Qué se entiende por Patterns? La definición original de la "Banda de los Cuatro" (Gang of Four), Gamma, Helm, Johnson and Vlissides, en su libro "Design Patterns"
A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context.
[Design patterns] solve specific design problems and make object-oriented designs more flexible and elegant, and ultimately reusable. They help designers reuse successful designs by basing new designs on prior experience. A designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them
Nada más convincente que Websydian para demostrar el valor del uso de patterns. Un pattern, un patrón, es un esquema aplicable a la solución de un problema. La idea de los patterns es la de aplicar soluciones bien definidas a problemas estudiados, simplificando la construcción del software. Plex basa todo su trabajo en el principio de la reutilización y la herencia. Comenzó, en su primera época bajo el nombre de Obsydian, usando estos principios bajo el nombre de "Clases". El paso a la utilización de Patterns no significó cambios en la base en que Plex se sustenta (herencia, encapsulamiento, reuso), pero sin embargo a poco de usar uno u otro sistema de conceptos, está claro que no son lo mismo, y que el enfoque basado en el concepto de Patterns es superior. La discusión acerca de la transición hacia el uso de Patterns en Plex es un debate que ocupó algún tiempo algunos años atrás, pero hoy sólo existen dudas en aquellas compañias que tienen una inversión grande instalada en el primer sistema de clases creadas para Obsydian. En otro sitio dedicaremos algo de tiempo a las acciones a tomar para pasar de uno a otro sistema, transicionalmente. No obstante, se pueden afirmar dos puntos: El repositorio de Patterns permite soluciones superiores, y el paso de uno a otro sistema es posible sin mayores dificultades.
Qué es Websydian? Un conjunto de Patterns diseñados para resolver la presentación y el back end de una aplicación en la Web,
construída con Plex y para Plex. Es una vía rápida para pasar una aplicación modelada con Plex a su explotación en Internet, o cualquier vía que use el protocolo HTTP.
Tan simple como agregar un "is a" a una entidad definida en un modelo de Plex. Y desde allí, hasta desarrollos más y más complejos.
Actualmente es posible usar Websydian para una aplicación Web típica, o para Wap, o manejarla como un Servicio Web, usando SOAP y XML.
La gran ventaja que ofrece es que el diseño está hecho, con lo que el grado de conocimiento requerido y la inversión necesaria para adquirirlo bajan radicalmente.
Con este conjunto de Patterns es posible poner a trabajar un proyecto en tiempos sustancialmente bajos, y lo que es mejor aún,
estrechamente integrados a las aplicaciones preexistentes en las que se basa, mediante Plex.
Hablar de decenas de miles de dólares (o euros), es algo más que probable cuando se encara un desarrollo de este tipo,
que además requerirá la utilización de un equipo con nuevas habilidades, y que desatará la pesadilla de la administración del contenido, y sus contínuas modificaciones.
Es aquí donde la importancia de un repositorio integrado, un modelo que propaga sus cambios inmediatamente, y que es flexible a la hora de ser modificado, hace la diferencia.
Softdesign | La empresa que creó Websydian, comenzando por un pequeño grupo de desarrolladores, en Dinamarca. Migrando su nombre y su sitio al de Websydian, hoy más conocido que la empresa que lo creó. |
Los patterns de Websydian | El conjunto de patterns no sólo incluye el marco básico, sino también soluciones específicas terminadas, como el carrito de compras |
La documentación de los patterns | Completa referencia en línea de los productos, y de las versiones anteriores |
Las preguntas frecuentes (FAQs) | Guía básica para los problemas más frecuentes que pueden encontrarse. A partir del área de Soporte, varias formas de obtener información. Existe más información, pero requiere login. Hay un boletín al que es posible suscribirse. |
La experiencia de Lucio Gayosso disponible | Lucio aporta un buen número de sugerencias para el diseño con Websydian. El sitio de Lucio está migrando, y se actualizarán los enlaces cuando suceda. |
Michel Weber en Alemania | Gracias a Leslie Franke encontré la página, con información útil para la configuración de Websydian |
Websydian en el Foro de Usuarios | EDGE mantiene un hilo de discusión abierto sobre Websydian específicamente |
Sin olvidar que es posible usar Frames o no, existen dos estilos básicos disponibles para el diseño de páginas: Disposición de los datos en formato de detalle, y en formato de grilla.
No obstante, un despliegue más complejo de los datos se puede obtener con el concepto de las páginas child.
Este es un patrón que permite desplegar un subformato de datos dependiente de una region Detail o Grid.
Así, se consigue una página que es el resultado de la combinación de dos distintas, con presentación de datos tan variada como sea necesario.
Es posible aplicar este concepto tanto a la creación de áreas de grilla dependiente de otra tipo grilla o detalle, o también para la creación de listas tipo ListBox o Combo
Existe información adicional en la documentación de Websydian, por lo que aquí se describirá sólo aquello que no era suficientemente explícito en tal documentación, respecto a la implementación.
Desarrollo gráfico del caso:
Figura 1. Código original generado por Websydian para la página Parent
Figura 2. Apariencia inicial de la página parent:
El marcador P233EXT representa la llamada al generador de la página child, que debe ser reubicado manualmente.
Figura 3. Código inicial de la página Child
El código de la página child es económico, y sólo abarca la fila child.
Figura 4. Código modificado de la página parent:
El marcador inicial con el nombre de implementación de la página child fue movido al interior de la grilla del parent, indicado como el contenido de una fila de la tabla.
Figura 5. Código modificado de la página Child:
Sólo queda como código de la plantilla child, la definición de la fila de la tabla, la que queda incluída en el padre. Se mantiene el marcador de grilla.