Cómo construir una aplicación web autónoma

Puede crear aplicaciones web independientes con Common Lisp. Consulte la información completa en el Libro de cocina de Lisp común.

Construir un ejecutable autónomo es una característica incorporada de las implementaciones de Common Lisp . Está a un comando de distancia, como se explica en el Cookbook. Entonces podemos tener el servidor web, solo una biblioteca Lisp, incrustado en el binario. Como resultado, podemos ejecutarlo en la línea de comandos en nuestro servidor privado (durante el desarrollo trabajamos en REPL) y acceder a nuestra aplicación desde el exterior de inmediato (a diferencia de otras plataformas, utilizamos el mismo servidor web durante el desarrollo y para producción).

Hay bibliotecas para facilitar la inclusión de bibliotecas de terceros (como marcos JS o CSS) en el ejecutable. Recomiendo miradas regulares a la lista impresionante-cl # network-and-internet.

Otra característica común es iniciar un servidor Swank en nuestra aplicación, de modo que podamos conectarnos a nuestra aplicación de forma remota mientras se está ejecutando , desde nuestro entorno de desarrollo, usar su REPL y evaluar el código que contiene, lo que permite la recarga de códigos activos. Hay ejemplos o enlaces en el Cookbook.

Eso no es todo, también es fácil enviar nuestra aplicación web dentro de Electron gracias a Ceramic (al momento de escribir, no tiene características completas, sino funcionales y fáciles).

Para un par de ejemplos, puedo pensar en Pgcharts, Quickdocs, Potato (Slack-like) o Turtl.

Puede usar Electron o NWJS siempre que no le importe usar JavaScript. Ambas están diseñadas para crear aplicaciones de escritorio utilizando tecnología web (node.js y webkit) como Phonegap hace para aplicaciones móviles. El editor Atom y Visual Studio Code están hechos con Electron. Electron sería mi primera opción, usando TypeScript en lugar de JavaScript.

Puede crear una aplicación Java que use una vista web para la interfaz de usuario y Java para todo lo demás, pero debe crear una API para cerrar la brecha entre Java y JavaScript. Hice esto para una aplicación que era algo así como PowerPoint pero usaba páginas web para interactividad, y el resto de la aplicación usaba JavaFX para la interfaz de usuario. No me gustó mucho el proceso o el hecho de que la vista web se basara en una versión muy obsoleta de webkit, si tuviera que volver a hacerlo usaría Electron.

Hay otras formas de usar vistas web incrustadas (.NET, QT, etc.) pero tendrán desventajas similares a las de la solución Java, una vista web potencialmente desactualizada y la necesidad de crear un puente entre JavaScript y cualquier lenguaje que termine usando; No es difícil de hacer, pero no es una tarea particularmente agradable.

Lo que está buscando es un servidor web incorporado en el que el servidor web, como Jetty, esté integrado en la aplicación misma. Del mismo modo, también podría considerar incrustar la base de datos en la aplicación. Esto es ciertamente posible usando ‘Java’, pero también puede ser posible en otras plataformas.


Aprenda Apache JMeter por ejemplo

More Interesting

¿Cómo se pueden obtener los rastros de los servidores web de las grandes empresas para ser utilizados de forma confidencial con fines de investigación?

¿Qué es mejor, devolver al usuario un XML bonito o un XML minimizado en el caso de una aplicación web?

¿Cuáles son los desafíos de UI / UX al diseñar aplicaciones en tiempo real?

¿Puedo usar C ++ como back-end en una aplicación web?

¿Es posible evitar contenido inapropiado en la web?

Cómo lograr una interfaz de usuario suave como la seda (60 fps) en la aplicación react / redux

¿Deberían las versiones móviles de aplicaciones web parecerse a una interfaz de usuario de aplicación nativa (por ejemplo, entrada inferior fija para una página de chat) o tener el mismo aspecto que la versión de escritorio?

¿Qué se necesitará para hacer realmente accesible la web?

¿Cuáles son algunas buenas formas de crear aplicaciones web?

¿Puedo escribir una aplicación web front-end con código de máquina?

¿Cuál es el papel de las plantillas PSD en el desarrollo web?

¿Qué opinas sobre la creación de contenido de demostración para la incorporación de usuarios de SaaS B2B?

¿Cómo puedo registrar acciones (clics, etc.) que los usuarios realizan en una aplicación web AJAX?

¿Cuáles son las mejores aplicaciones web para compartir marcadores en un equipo que permiten un grupo privado de colaboradores, etiquetado, discusión de cada enlace compartido y tienen una búsqueda sólida?

¿Qué es la aplicación PCBA?