2008-09-09 16 views

Respuesta

1

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.

+0

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. –

4

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

0

Existe también Hope (enlace se deprecia), aunque no parece haber ganado tanta tracción como HApps y WASH. Sin embargo, el sitio también ha estado tranquilo durante aproximadamente un año.

2

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.

4

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/

Cuestiones relacionadas