stringtranslate.com

Junto al mar (software)

Seaside , acrónimo de “Squeak Enterprise Aubergines Server with Integrated Development Environment”, es un software informático , un framework web para desarrollar aplicaciones web en el lenguaje de programación Smalltalk . Se distribuye como software libre y de código abierto bajo una licencia MIT .

Seaside ofrece 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 continuaciones [4] basado en la capacidad de manipular la pila de ejecución de algunas implementaciones de Smalltalk .

Características principales

Aunque las mejoras posteriores en el manejo del estado en los motores JavaScript de los navegadores web han hecho que este aspecto sea menos importante hoy en día, [ cita requerida ] el método de manejo del estado del navegador de Seaside (a través de continuaciones ) fue un punto de interés inicial en los primeros años posteriores a su lanzamiento en 2002. Este mecanismo permite la reversión y reanudación, resolviendo muchos problemas comunes que ocurrían entonces con la ejecución de 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 continuaciones le dan 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 proporciona 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 los procesos de identificación y reparación de errores se realicen dentro de un entorno de desarrollo integrado (IDE). [6]

Una aplicación Seaside es un conjunto de componentes que interactúan entre sí. Cada uno almacena el estado en las vistas de página y puede mostrarse a sí mismo en el flujo 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 el concepto 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 posibilidad de generar o usar plantillas HTML; el marcado HTML se genera mediante programación. (El marco de gestión de contenido Pier basado en Seaside ofrece sintaxis de marcado wiki para la creación de plantillas). Seaside utiliza devoluciones de llamadas en los cierres para especificar las acciones que se deben realizar 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 llamadas 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 es compatible con Ajax a través de la integración con script.aculo.us y jQuery . Seaside también es compatible con la tecnología server-push de estilo Comet . [9] Seaside puede funcionar con implementaciones de servidor web basadas en Smalltalk u otras que no sean Smalltalk (Nginx, Apache).

Filosofía

En los últimos años, algunas prácticas recomendadas han llegado a ser ampliamente aceptadas en el campo del desarrollo web:

Seaside rompe deliberadamente todas estas reglas. Avi Bryant, que en aquel entonces trabajaba en Dabble DB, lo describió en 2006 como un marco de trabajo "herético", argumentando que este rechazo cuidadoso y razonado de las creencias convencionales sobre el desarrollo web condujo 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 de Smalltalk. El desarrollo original de Seaside se realizó en Squeak a principios de la década de 2000. Michel Bany implementó puertos para VisualWorks a través de la versión 2.7 de Seaside; Cincom Systems admite 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 admitiendo 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ó un puerto de 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 en la biblioteca estándar de Racket (lenguaje de programación) utiliza una filosofía muy similar, también basada en continuaciones. [16]

Críticas

Proyectos de código abierto que lo utilizan

Muchos proyectos de código abierto utilizan Seaside, algunos de los cuales son:

Proyectos propietarios que lo utilizan

Muchos proyectos propietarios utilizan Seaside, algunos de los cuales son:

Véase también

Referencias

  1. ^ El equipo de Seaside
  2. ^ "Lanzamientos · SeasideSt/Seaside". GitHub .
  3. ^ Seaside: un marco de aplicación web con flujo de control múltiple
  4. ^ IBM DeveloperWorks: Cruzando fronteras: Continuaciones, Desarrollo web, Programación Java
  5. ^ Seaside: Un entorno flexible para crear aplicaciones web dinámicas
  6. ^ Depuración de aplicaciones en Seaside
  7. ^ Avi Bryant explica por qué Seaside no utiliza plantillas
  8. ^ Marcos de aplicaciones web: un estudio comparativo
  9. ^ Captura de pantalla: Aplicación de chat Seaside Comet
  10. ^ "Notas de la sesión 'Web Heresies: The Seaside Framework', OSCON 2006". Archivado desde el original el 30 de agosto de 2014.{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  11. ^ "Seaside 2.9 está implementado actualmente en Pharo y sirve como implementación de referencia".
  12. ^ Blog de Smalltalk sobre la playa para delfines
  13. ^ Junto al mar 2,6 g
  14. ^ Costa 2.8
  15. ^ ¿Seaside funciona con GNU Smalltalk? Preguntas frecuentes sobre GNU Smalltalk
  16. ^ "Continuar: Aplicaciones web en Racket".
  17. ^ Artículo de Jon Udell en InfoWorld Archivado el 12 de febrero de 2007 en Wayback Machine.

Enlaces externos