Articulo de referencia

Costa (software)

[http://www.seaside.st/community/contributors/ The Seaside Team] "},"released":{"wt":"{{Start date and age|2002}}"},"latest release version":{"wt":"3.6.0"},"latest release date"...

Seaside , acrónimo de “Squeak Enterprise Aubergines Server with Integrated Development Environment” (Servidor empresarial de berenjenas con entorno de desarrollo integrado), es un software , un marco de trabajo web para desarrollar aplicaciones web en el lenguaje de programación Smalltalk . Se distribuye como software libre y de código abierto bajo la 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 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, el método de Seaside para manejar el estado del navegador (mediante 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 la reanudación, resolviendo muchos problemas comunes que ocurrían entonces con las aplicaciones web en ejecución, manteniendo adecuadamente el estado en el lado del servidor incluso cuando se utilizan los botones "atrás", "adelante" o "actualizar" del navegador web. Los servidores basados ​​en continuaciones 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 proporciona acceso a herramientas de desarrollo y soporte para la depuración dentro de una aplicación. En el modo de desarrollo, los errores no controlados se notifican en 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 corrección de errores se lleven a cabo 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 su estado entre las distintas páginas y puede renderizarse en el flujo HTML . Por lo tanto, es sencillo escribir un componente una sola vez y reutilizarlo en otras partes de la aplicación. Seaside también admite el concepto de tareas, que permiten al programador describir la lógica de alto nivel de la interacción entre componentes.

Seaside no está orientado a plantillas y no ofrece la generación ni el uso de plantillas HTML; el marcado HTML se genera mediante programación. (El marco de gestión de contenido Pier , basado en Seaside , sí ofrece sintaxis de marcado wiki para la creación de plantillas). Seaside utiliza funciones de devolución de llamada en 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 garantizar la separación entre la estructura (marcado) y el contenido y la presentación ( hojas de estilo en cascada (CSS)). [ 7 ] La combinación de componentes, funciones de devolución 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 envío de datos desde el servidor al estilo Comet . [ 9 ] Seaside puede funcionar con implementaciones de servidores web basadas en Smalltalk u otras que no sean Smalltalk (Nginx, Apache).

Filosofía

En los últimos años, algunas buenas prácticas se han generalizado en el campo del desarrollo web:

  • Comparte la menor cantidad de información posible.
  • Utilice URL limpias, cuidadosamente seleccionadas y significativas .
  • Utilice plantillas para separar el modelo de la presentación.

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 las ideas convencionales del 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 hasta la versión 2.7 de Seaside; Cincom Systems soporta 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 soportando 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 posterior. [ 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

  • En comparación con otros frameworks web , Seaside consume mucha memoria. Una sola sesión puede acumular varios cientos de kilobytes de RAM. Una versión posterior, la 2.8, reduce significativamente este tamaño (por ejemplo, un  tamaño típico anterior de 200 KB se reduce a 50  KB).
  • Seaside no utiliza el protocolo REST ( Representational State Transfer ) por defecto. En su lugar, las URL ( Uniform Resource Locators ) almacenan información de clave de sesión, y las URL significativas deben generarse explícitamente.

Proyectos de código abierto que lo utilizan

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 contenidos y un marco de aplicación de alto nivel para Seaside.
  • Proyecto ADK

Proyectos propietarios que lo utilizan

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

Véase también

Referencias

  1. El equipo de la costa
  2. "Lanzamientos · SeasideSt/Seaside" . GitHub .
  3. Seaside: un marco de trabajo para aplicaciones web con flujo de control múltiple.
  4. IBM DeveloperWorks: Cruzando fronteras: Continuaciones, desarrollo web, programación Java
  5. Seaside: Un entorno flexible para la creación de aplicaciones web dinámicas
  6. Depuración de aplicaciones costeras
  7. Avi Bryant explica por qué Seaside no utiliza plantillas
  8. Marcos de trabajo para aplicaciones web: un estudio comparativo
  9. Grabación de pantalla: Aplicación de chat Seaside Comet
  10. "Notas de la sesión "Herejías web: El marco de trabajo costero", OSCON 2006. Archivado del original el 30 de agosto de 2014.{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  11. "Seaside 2.9 está implementado actualmente en Pharo, que sirve como implementación de referencia."
  12. Blog Seaside for Dolphin Smalltalk
  13. Costa 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.
  • Sitio web oficial
  • Sitio web oficial
  • costa en GitHub