Me gustaría utilizar Haskell más para mis proyectos, y creo que si puedo empezar a usarlo para aplicaciones web, realmente ayudaría a esa causa. He intentado happs una o dos veces, pero tuve problemas para despegar. ¿Hay frameworks más simples/más convencionales (más como lámpara) que pueda usar o debería dar happs otra vez?¿Cuál es la forma más sencilla de escribir aplicaciones web en Haskell?
Respuesta
Aquí está a list of web related blog posts about Haskell from the wiki.
Además, el siguiente gran marco web de Haskell es WASH.
Puede utilizar CGI y una biblioteca combinatoria (x) html, como se detalla en el artículo de la wiki Haskell Web Development. En Practical web programming in Haskell se puede encontrar una descripción más amplia de bibliotecas, marcos, etc. para la programación web en haskell.
Si usted decide ir con Happs es probable que desea para la obtención de este excelente ejemplo impulsado tutorial que está siendo desarrollado como una aplicación Happs: HApps Tutorial
Las mejores herramientas a partir de 2011 son los siguientes:
La comunidad de desarrollo web en torno Haskell ha estado prosperando en la competencia entre estas comunidades.
Los autores comparan sus marcos, incluso aquí: Comparing Haskell's Snap and Yesod web frameworks
Yesod sería una buena opción, se puede encontrar de O'Reilly Yesod Web Framework Book en línea.
La Web Application Interface, WAI, es una capa base muy agradable sobre la que puedes construir aplicaciones. Hay muchas bibliotecas interesantes en hackage para enrutamiento, creación de plantillas, etc. que funcionan bien en combinación con WAI, que es lo que hago.
Desarrollé MFlow con la idea de la mayor relación funcionalidad/tamaño de código. MFlow está hecho sin otro marco en mente, pero usa Haskell al límite para resolver los problemas de las aplicaciones web para reducir drásticamente el ruido y la proporción de errores en la programación web. La navegación completa en una aplicación MFlow es segura en tiempo de compilación. Utiliza bibliotecas web estándar: WAI, formlets, stm, blaze-html.
Juzga por ti mismo: esta es una aplicación completa con tres páginas. En un ciclo, pide dos números y muestra la suma. puede pulsar el botón de regreso a su gusto:
module Main where
import MFlow.Wai.Blaze.Html.All
main= do
addMessageFlows [("sum", transient . runFlow $ sumIt)]
wait $ run 8081 waiMessageFlow
sumIt= do
setHeader $ html . body
n1 <- ask $ p << "give me the first number" ++> getInt Nothing
n2 <- ask $ p << "give me the second number" ++> getInt Nothing
ask $ p << ("the result is " ++ show (n1 + n2)) ++> wlink() << p << "click here"
El estado se puede hacer persistente con una pequeña modificación.
http://hackage.haskell.org/package/MFlow
Hay ejemplos aquí: http://haskell-web.blogspot.com.es/
- 1. ¿Cuál es la forma más sencilla de actualizar la plataforma haskell a la última?
- 2. ¿Cuál es la forma más sencilla de obtener resultados de scripts de Python en la web?
- 3. ¿Cuál es la forma más sencilla de escribir bibliotecas portátiles cargables dinámicamente en C++?
- 4. ¿Cuál es la forma más sencilla de ofrecer/consumir servicios web en jython?
- 5. ¿Cuál es la forma más sencilla de crear una ventana con forma en wxPython?
- 6. C++: ¿Cuál es la forma más sencilla de leer y escribir archivos BMP utilizando C++ en Windows?
- 7. ANTLR ¿Cuál es la forma más sencilla de realizar una gramática dependiente de sangría de pitón?
- 8. ¿Cuál es la forma más sencilla de realizar una solicitud HTTP GET en Perl?
- 9. ¿Cuál es la forma más sencilla de convertir cadenas separadas por comas a int []?
- 10. ¿Cuál es la forma más sencilla de formatear una marca de tiempo de SQL en PHP?
- 11. ¿Cuál es la forma más sencilla de cargar dinero a través de Internet?
- 12. ¿Cuál es la forma más sencilla de convertir char [] a/de tchar [] en C/C++ (ms)?
- 13. ¿Cuál es una forma sencilla de esperar y detectar las pulsaciones de teclas en Haskell?
- 14. ¿Cuál es la forma más sencilla de comparar dos objetos google :: protobuf :: Message entre sí?
- 15. ¿Cuál es la forma más sencilla de importar un archivo SQLite SQL en una base de datos WEB SQL
- 16. ¿Cuál es la forma más sencilla de llamar a Http GET url usando Delphi?
- 17. ¿Cuál es la forma más sencilla de muestrear continuamente desde la línea de entrada utilizando C#
- 18. ¿Cuál es la forma más sencilla de intercambiar char en una cadena con Python?
- 19. ¿Qué significa "lambda" en Python, y cuál es la forma más sencilla de usarlo?
- 20. Cuál es la forma más sencilla de bloquear un objeto en Django
- 21. ¿Cuál es la forma más sencilla de extender una matriz numpy en 2 dimensiones?
- 22. ¿Cuál es la forma más sencilla de agregar uno a una cadena binaria en Perl?
- 23. ¿Cuál es la forma más sencilla de implementar el cifrado en WCF cuando se usa netTcpBinding?
- 24. ¿Cuál es la forma más sencilla de reproducir un MP3 en WPF?
- 25. ¿Cuál es la forma más sencilla de verificar la versión actual de su aplicación contra la última versión en la tienda de aplicaciones?
- 26. ¿Cuál es la forma más sencilla de mostrar httpServletResponse.sendError (403, "Mi Mensaje") Estado de JSTL
- 27. ¿Cuál es la forma más sencilla de exportar datos de Excel a Matlab?
- 28. VBScript: ¿Cuál es la forma más sencilla de formatear una cadena?
- 29. ¿Cuál es la forma más sencilla de conectar un dispositivo a un iPad desde una aplicación?
- 30. Forma más sencilla de obtener una aplicación web Lisp "hello world" en funcionamiento
CGI es muy simple, sobre todo en sistemas que ejecutan Apache. Usted acaba de hacer un ejecutable que imprime una página HTML (o parte de ella). Puede analizar la cadena url (GET) y obtener datos POST del sistema utilizando variables de entorno. Es simple, pero construir un sistema a partir de esas piezas requiere trabajo. –