Seaside , un acrónimo que significa “Squeak Enterprise Aubergines Server with Integrated Development Environment”, es un software de computadora , 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 .
Desarrollador (es) | El equipo de Seaside [1] |
---|---|
Versión inicial | 2002 |
Lanzamiento estable | 3.4.4 / 7 de febrero de 2021 [2] |
Repositorio | |
Escrito en | Charla |
Sistema operativo | Multiplataforma |
Plataforma | IA-32 , x86-64 , BRAZO |
Disponible en | inglés |
Tipo | Marco web |
Licencia | MIT |
Sitio web | www |
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 la continuación [4] basado en la capacidad de manipular la pila de ejecución de algunas implementaciones de Smalltalk.
Caracteristicas clave
La implementación de Seaside de continuaciones fue un punto de interés inicial en sus primeros años de existencia luego de su lanzamiento en 2002. Las continuaciones proporcionan un mecanismo para la reversión y la reanudación, una disposición útil para el entorno del navegador web en el que los botones de actualización y retroceso pueden interrumpir el flujo de procesamiento. Esto resuelve muchos problemas comunes con la ejecución de aplicaciones web, como mantener adecuadamente el estado en el lado del servidor incluso cuando se utilizan los botones "atrás" y "adelante" del navegador web. Los servidores de continuación brindan al desarrollador la capacidad de mantener el estado en el servidor de manera escalable. [5] La posterior mejora de las implementaciones de JavaScript en los navegadores web desde 2002 ha hecho que el aspecto de las continuaciones de Seaside sea menos significativo, al permitir que los navegadores de los clientes realicen un mejor seguimiento del estado.
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 alterar el código del programa y el estado directamente desde la página web, lo que permite que los procesos de identificación y corrección de errores ocurran 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 en las vistas de página y se puede representar a sí mismo 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 admite 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 la generación o el uso de plantillas HTML; El marcado HTML se genera mediante programación. (El marco de gestión de contenido de Pier basado en Seaside ofrece sintaxis de marcado wiki para la creación de 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 reforzar 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 el código. [8]
Seaside admite Ajax mediante la integración con script.aculo.us y jQuery . Seaside también es compatible con la tecnología de empuje de servidor de estilo Comet . [9] Seaside puede funcionar con implementaciones de servidor web basadas en Smalltalk u otras que no sean de Smalltalk (Nginx, Apache).
Filosofía
En los últimos años, algunas de las mejores prácticas han sido ampliamente aceptadas en el campo del desarrollo web:
- Comparta el menor estado posible.
- Utilice URL claras, cuidadosamente elegidas y significativas .
- Utilice plantillas para separar el modelo de la presentación.
Seaside rompe deliberadamente todas estas reglas. Avi Bryant lo describe como un marco "herético". Sostiene que este rechazo cuidadoso y razonado de la sabiduría convencional del desarrollo web ha llevado a un modelo muy eficaz para desarrollar aplicaciones web. [10]
Puertos
El desarrollo principal de Seaside se implementa en Pharo Smalltalk. [11] Existen puertos para otros dialectos 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 es compatible con Seaside como parte de VisualWorks a 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 seguido brindando soporte a Seaside a través de 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] de la piedra preciosa sistemas implementados de un puerto a la piedra preciosa / S . [13] Se completó una adaptación 2.8 para GemStone, [14] y una versión preliminar de 3.0 se ejecuta en GNU Smalltalk 3.0ay posterior. [15]
Criticas
- En comparación con otros marcos web , Seaside consume mucha memoria. Una sesión podría acumular varios cientos de kilobytes de RAM. Una versión posterior, la versión 2.8, reduce significativamente este tamaño (por ejemplo, un tamaño típico de 200 KB se convierte en 50 KB).
- Seaside no sigue la transferencia de estado representacional (REST) de forma predeterminada. En cambio, los localizadores uniformes de recursos (URL) contienen información clave de la sesión, y las URL significativas deben generarse explícitamente.
Proyectos de código abierto que lo usan
Muchos proyectos de código abierto utilizan Seaside, algunos de los cuales son:
- Magritte: un marco de metadescripción con una estrecha integración en Seaside
- Pier: un sistema de gestión de contenido y un marco de aplicación de alto nivel para Seaside
- Proyecto ADK
Proyectos propietarios que lo utilizan
Muchos proyectos propietarios utilizan Seaside, algunos de los cuales son:
- Dabble DB : aplicación de base de datos basada en la web [16]
- Cmsbox: un sistema de gestión de contenido (CMS) puesto a disposición por netstyle.ch para el mercado suizo.
Ver también
- Pila de soluciones , VIDRIO
- Nagare (marco web)
- Lista de sistemas de gestión de contenido
- Comparación de frameworks web
Referencias
- ^ El equipo de Seaside
- ^ https://github.com/SeasideSt/Seaside/releases
- ^ Seaside: un marco de aplicación web de flujo de control múltiple
- ^ IBM DeveloperWorks: Cruzando fronteras: Continuaciones, desarrollo web, programación Java
- ^ Seaside: un entorno flexible para la creación de aplicaciones web dinámicas
- ^ Depuración de aplicaciones junto al mar
- ^ Avi Bryant explica por qué Seaside no usa plantillas
- ^ Marcos de aplicaciones web: un estudio comparativo
- ^ Screencast: Aplicación Seaside Comet Chat
- ^ " ' Herejías Web: notas de la sesión de Seaside Framework', OSCON 2006" . Archivado desde el original el 30 de agosto de 2014.CS1 maint: bot: estado de URL original desconocido ( enlace )
- ^ "Seaside 2.9 está implementado actualmente en Pharo y sirve como implementación de referencia".
- ^ Blog de Seaside for Dolphin Smalltalk
- ^ Junto al mar 2,6g
- ↑ Seaside 2.8
- ^ ¿Seaside se ejecuta en GNU Smalltalk , preguntas frecuentes sobre GNU Smalltalk?
- ^ Artículo de Jon Udell en InfoWorld Archivado el 12 de febrero de 2007 en la Wayback Machine.
enlaces externos
- Página web oficial
- Página web oficial
- junto al mar en GitHub