Ich würde gerne Haskell mehr für meine Projekte verwenden, und ich denke, wenn ich anfangen kann, es für Web-Anwendungen zu verwenden, würde es wirklich dazu beitragen. Ich habe es ein oder zwei Mal probiert, hatte aber Schwierigkeiten, vom Boden abzuheben. Gibt es einfachere/konventionellere (mehr wie Lampen) Frameworks, die ich verwenden kann oder sollte ich einfach einen anderen Versuch geben?Was ist der einfachste Weg, um Web-Anwendungen in Haskell zu schreiben?
Antwort
Hier ist a list of web related blog posts about Haskell from the wiki. Das nächste große Haskell-Webframework ist WASH.
Und es gibt eine Apple webobjects based domain specific language.
Sie können CGI und eine (x) HTML-Kombinator-Bibliothek verwenden, wie im Artikel Haskell Web Development des Wikis aufgeführt. Eine größere Übersicht über Bibliotheken, Frameworks usw. für Web-Programmierung in Haskell finden Sie in Practical web programming in Haskell.
Wenn Sie mit Happs entscheiden, gehen Sie wahrscheinlich wollen Sie dieses hervorragendes Beispiel angetrieben Tutorial zur Kasse, die als Happs Anwendung entwickelt wird: HApps Tutorial
Die besten Tools ab 2011 sind:
Die Web-Entwickler-Community um Haskell wurde zwischen diesen Gemeinden am Wettbewerb gedeihen.
Die Autoren selbst ihre Gerüste hier vergleichen: Comparing Haskell's Snap and Yesod web frameworks
Yesod eine gute Wahl sein würde, können Sie Yesod Web Framework Book Online von O'Reilly finden.
Die Web Application Interface, WAI, ist eine sehr schöne Basisschicht, auf der Sie Apps erstellen können. Es gibt viele nette Bibliotheken auf Hacks für Routing, Templating usw., die gut in Kombination mit WAI funktionieren, was ich auch tue.
Ich entwickelte MFlow mit der Idee der höchsten Funktionalität/Code Größenverhältnis. MFlow wurde ohne ein anderes Framework entwickelt, um Haskell an die Grenzen zu bringen, um die Probleme von Web-Anwendungen zu lösen, um das Rauschen und die Fehlerrate bei der Web-Programmierung drastisch zu reduzieren. Die gesamte Navigation in einer MFlow-Anwendung ist zur Kompilierzeit sicher. Es verwendet Standard-Web-Bibliotheken: WAI, Formlets, stm, Blaze-html ..
Beurteilen Sie selbst: Dies ist eine vollständige Anwendung mit drei Seiten. In einer Schleife fragt es nach zwei Zahlen und zeigt die Summe an. Sie können die Zurück-Taste wie gewünscht drücken:
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"
Der Zustand kann mit ein wenig Modifikation persistent gemacht werden.
http://hackage.haskell.org/package/MFlow
Es gibt Beispiele hier: http://haskell-web.blogspot.com.es/
- 1. Was ist der einfachste Weg, um SUMPRODUCT
- 2. Der einfachste Weg, um NSData in eine Datei zu schreiben
- 3. Was ist der einfachste Weg, um MNS-Schema zu aktualisieren?
- 4. Was ist der einfachste Weg, um mit TensorFlow zu beginnen?
- 5. Was ist der einfachste Weg, um Java-Objekte zu erhalten?
- 6. Der einfachste Weg, um eine einfache bedingte Prüfung zu schreiben
- 7. Was ist der einfachste Weg, um portable, dynamisch ladbare Bibliotheken in C++ zu schreiben?
- 8. Was ist der einfachste Weg, um eine Textdatei in Java zu schreiben
- 9. Was ist der einfachste Weg, um im binären Modus in stdout zu schreiben?
- 10. Was ist der einfachste Weg, um eine Datei mit Perl zu schreiben?
- 11. Was ist der einfachste Weg in Java zu tun?
- 12. Was ist der einfachste Weg, XML in C++ zu generieren?
- 13. Was ist der einfachste Weg, um ERRORLEVEL auf Null zurückzusetzen?
- 14. Der einfachste Weg, um Zahlen zu überprüfen
- 15. Was ist der einfachste Weg, um eine ArrayList umzukehren?
- 16. Was ist der einfachste Weg, Einstellungsdateien in Java zu machen?
- 17. Was ist einfachste Weg, um ein Video in einem Media
- 18. Was ist der einfachste Weg, um einen leeren Iterable mit Ausbeute in Python zu erstellen?
- 19. Was ist der einfachste Weg, um Liniensegmente zu zeichnen, um die Ausgabe eines Algorithmus zu visualisieren?
- 20. Der einfachste Weg, um Einheit zu lernen
- 21. Was ist der einfachste Weg, einen Webservice zu klonen?
- 22. Der einfachste Weg, um eine Datei herunterzuladen?
- 23. Was ist der einfachste Weg, eine Koordinatenliste zu erstellen?
- 24. Was ist der einfachste Weg, Kommas zu einer Ganzzahl hinzuzufügen?
- 25. Was ist der einfachste Weg, diese Tabelle zu analysieren:
- 26. Was ist der einfachste Weg, mehrere Webanfragen hintereinander zu tätigen?
- 27. In R, was ist der einfachste Weg, um einen Vektor zu einem Einheitsvektor zu skalieren?
- 28. Was ist der einfachste Weg, um ActiveX zu etwas kompatibel in allen Browsern zu konvertieren
- 29. Was ist der einfachste Weg, um moderne GUI-Anwendungen in der GNU/Linux-Welt zu erstellen?
- 30. Was ist der einfachste Weg, um das Bild der ausgewählten Registerkarte in ASP.NET MVC zu ändern?
CGI ist sehr einfach, vor allem auf Systemen mit Apache. Sie erstellen einfach eine ausführbare Datei, die eine HTML-Seite (oder einen Teil davon) ausgibt. Sie können die URL-Zeichenfolge (GET) analysieren und POST-Daten mithilfe von Umgebungsvariablen vom System abrufen. Es ist einfach, aber ein System aus diesen Teilen zu bauen braucht Arbeit. –