Seaside , acrónimo que significa “Squeak Enterprise Aubergines Server with Integrated Development Environment”, es un software informático , un marco web para desarrollar aplicaciones web en el lenguaje de programación Smalltalk . Se distribuye como software gratuito y de código abierto bajo una licencia MIT .
Seaside proporciona una arquitectura de componentes en la que las páginas web se construyen como árboles de componentes individuales con estado , cada uno de los cuales encapsula una pequeña parte de una página. Seaside utiliza continuaciones para modelar múltiples flujos independientes entre diferentes componentes. [3] Por lo tanto, es un marco web basado en continuación [4] basado en la capacidad de manipular la pila de ejecución de algunas implementaciones de Small talk.
Aunque la mejora posterior del manejo del estado en los motores JavaScript de los navegadores web ha significado que este aspecto sea menos importante hoy en día, [ cita necesaria ] El método de Seaside para manejar el estado del navegador (a través de continuaciones ) fue un punto inicial de interés en los primeros años después de su lanzamiento en 2002. Este mecanismo proporciona reversión y reanudación, resolviendo muchos problemas comunes que ocurren al ejecutar aplicaciones web, manteniendo adecuadamente el estado en el lado del servidor incluso cuando se utilizan los botones "atrás" y "adelante" o "actualizar" del navegador web. Los servidores basados en continuidad brindan al desarrollador la capacidad de mantener el estado en el servidor de manera escalable. [5]
Una característica distintiva de Seaside es su entorno de desarrollo integrado, que brinda acceso a herramientas de desarrollo y soporte de depuración dentro de una aplicación. En el modo de desarrollo, los errores no controlados se informan a la página web; los desarrolladores pueden acceder y modificar el código y el estado del programa directamente desde la página web, lo que permite que se realicen procesos de identificación y corrección de errores dentro de un entorno de desarrollo integrado (IDE). [6]
Una aplicación Seaside es un conjunto de componentes que interactúan. Cada uno almacena el estado de las vistas de página y puede representarse en la secuencia HTML . Por lo tanto, es sencillo escribir un componente una vez y luego reutilizarlo en otra parte de una aplicación. Seaside también apoya la noción de tareas, que permiten a un programador describir la lógica de alto nivel de la interacción de los componentes.
Seaside no está orientado a plantillas y no ofrece generación ni uso de plantillas HTML; El marcado HTML se genera mediante programación. (El marco de gestión de contenidos Pier, basado en Seaside, ofrece sintaxis de marcado wiki para crear plantillas). Seaside utiliza devoluciones de llamada en cierres para especificar las acciones que se deben tomar al hacer clic en un enlace o enviar un formulario. Los desarrolladores y usuarios de Seaside argumentan que esto ayuda a imponer la separación de la estructura (marcado) del contenido y la presentación ( Hojas de estilo en cascada (CSS)). [7] La combinación de componentes, devoluciones de llamada y cierres de Seaside puede reducir significativamente la brecha semántica entre un flujo de trabajo complejo y su representación en código. [8]
Seaside admite Ajax mediante la integración con script.aculo.us y jQuery . Seaside también admite la tecnología de inserción de servidor estilo Comet . [9] Seaside puede funcionar con implementaciones de servidor web basadas en Smalltalk u otras que no sean de Smalltalk (Nginx, Apache).
En los últimos años, algunas mejores prácticas han llegado a ser ampliamente aceptadas en el campo del desarrollo web:
Seaside rompe deliberadamente todas estas reglas. Avi Bryant, entonces de Dabble DB, lo describió en 2006 como un marco "herético", argumentando que este rechazo cuidadoso y razonado de los conocimientos convencionales del desarrollo web condujo a un modelo muy eficaz para desarrollar aplicaciones web. [10]
El principal desarrollo de Seaside está implementado en Pharo Smalltalk. [11] Existen puertos para otros dialectos de Smalltalk. El desarrollo original de Seaside se realizó en Squeak a principios de la década de 2000. Michel Bany implementó puertos a VisualWorks a través de Seaside versión 2.7; Cincom Systems admite Seaside como parte de VisualWorks desde principios de 2008. Instantiations anunció el soporte de Seaside en su plataforma VAST (VA Smalltalk) versión 8.0 en 2009. La plataforma VAST ha continuado brindando soporte a Seaside hasta su última versión. Esteban Maringolo mantuvo el puerto 2.8, además de algunos otros complementos (como script.aculo.us ) para Dolphin Smalltalk X6. [12] Gemstone Systems implementó un puerto para Gemstone/S . [13] Se completó una versión 2.8 para GemStone, [14] y una versión preliminar de 3.0 se ejecuta en GNU Smalltalk 3.0a y posteriores. [15]
El paquete de servidor web de la biblioteca estándar de Racket (lenguaje de programación) utiliza una filosofía muy similar, también basada en continuaciones. [dieciséis]
Muchos proyectos de código abierto utilizan Seaside, algunos de los cuales son:
Muchos proyectos propietarios utilizan Seaside, algunos de los cuales son:
{{cite web}}
: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )