내 프로젝트에 하스켈을 더 사용하고 싶습니다. 웹 앱용으로 사용하기 시작하면 도움이 될 것입니다. 나는 한두 번 두 번이나 행복하게 노력했지만 땅에 떨어지는 데 어려움을 겪었습니다. 내가 사용할 수있는 더 단순하거나 더 일반적인 (더 많은 램프와 같은) 프레임 워크가 있습니까? 아니면 그냥 또 다른 시도를 해줘야합니까?하스켈에서 웹 앱을 작성하는 가장 간단한 방법은 무엇입니까?
답변
여기에 a list of web related blog posts about Haskell from the wiki입니다.
다음으로 큰 하스켈 웹 프레임 워크는 WASH입니다.
위키의 Haskell Web Development 문서에 나열된대로 CGI 및 (x) html 연결자 라이브러리를 사용할 수 있습니다. haskell에서의 웹 프로그래밍을위한 라이브러리, 프레임 워크 등의 더 큰 개요는 Practical web programming in Haskell에서 찾을 수 있습니다.
당신이 HApps로 이동하기로 결정했다면 당신은 아마 HApps 응용 프로그램으로 개발중인이 좋은 예 구동 튜토리얼 체크 아웃 할 수 있습니다 : HApps Tutorial
2011 년 가장 좋은 도구는 다음과 같습니다
웹 개발 커뮤니티는이 지역 사회 사이의 경쟁에서 번성하고있다.
저자도 여기에 자신의 프레임 워크를 비교 : Comparing Haskell's Snap and Yesod web frameworks이
Yesod가 좋은 선택이 될 것입니다, 당신은 오라일리의 Yesod Web Framework Book 온라인을 찾을 수 있습니다.
Web Application Interface, WAI는 앱을 빌드 할 수있는 아주 멋진 기본 레이어입니다. WAI와 함께 잘 작동하는 라우팅, 템플리 팅 등을위한 hackage에 대한 훌륭한 라이브러리가 많이 있습니다. 이것이 내가하는 일입니다.
최고의 기능성/코드 크기 비율이라는 아이디어로 MFlow를 개발했습니다. MFlow는 다른 프레임 워크를 염두에 두지 않고 웹 프로그래밍의 노이즈와 오류 비율을 크게 줄이기 위해 웹 애플리케이션의 문제를 해결하기 위해 하스켈을 제한적으로 사용합니다. MFlow 응용 프로그램의 전체 탐색은 컴파일 할 때 안전합니다. 그것은 표준 웹 라이브러리를 사용합니다 : WAI, formlets, stm, blaze-html ..
자신을위한 판사 : 이것은 3 페이지의 완전한 응용 프로그램입니다. 루프에서는 두 개의 숫자를 물어보고 합계를 표시합니다. 당신이 원하는대로 뒤로 버튼을 누를 수 있습니다 :
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"
약간의 수정을 가하여 상태를 지속시킬 수 있습니다.
http://hackage.haskell.org/package/MFlow
예는 여기에 있습니다 : http://haskell-web.blogspot.com.es/
- 1. 이베이처럼 앱을 작성하는 방법은 무엇입니까?
- 2. 하이브리드 iPhone 앱을 작성하는 가장 좋은 방법은 무엇입니까?
- 3. 개념 증명 (PoC) 앱을 작성하는 가장 좋은 방법은 무엇입니까?
- 4. 연속 메일을 보내는 앱을 작성하는 가장 좋은 방법은 무엇입니까
- 5. 데스크톱에서 자바 스크립트로 프로그램을 작성하는 가장 간단한 방법은 무엇입니까?
- 6. 하스켈에서 Perl 코드 생성기를 작성하는 단계는 무엇입니까?
- 7. 하스켈에서 subprocess.communicate에 가장 근접한 사람
- 8. 간단한 Silverlight 단위 테스트를 작성하는 방법은 무엇입니까?
- 9. 간단한 시계 응용 프로그램을 작성하는 방법은 무엇입니까?
- 10. 간단한 BitTorrent 응용 프로그램을 작성하는 방법은 무엇입니까?
- 11. 바람둥이에서 실행되는 자바 웹 앱을 작성하는 가장 간단한 해결책은 다음과 같습니다. ID로 몇 DB 레코드를 나열하십시오.
- 12. 웹 앱을 초기화하는 방법은 무엇입니까?
- 13. 자바에서 간단한 메일 서버를 작성하는 방법은 무엇입니까?
- 14. C++에서 간단한 클래스를 작성하는 방법은 무엇입니까?
- 15. 라이브 웹 앱을 새 서버로 옮기는 가장 좋은 방법은 무엇입니까?
- 16. WPF 및 웹 앱을 모두 타겟팅하는 가장 좋은 방법은 무엇입니까?
- 17. PHP 웹 메일 스크립트를 작성하는 방법은 무엇입니까?
- 18. 하스켈에서 게임 엔진과 네트워크 서버를 가장 잘 동기화하는 방법은 무엇입니까?
- 19. 다른 서버를 청취하는 가장 간단한 방법은 무엇입니까?
- 20. twisted를 사용하여 웹 서버를 작성하는 방법은 무엇입니까?
- 21. Android 앱을 확장하는 가장 좋은 방법은 무엇입니까?
- 22. 레일스 앱을 배포하는 가장 좋은 방법은 무엇입니까?
- 23. 가장 많이 사용되는 앱을 계산하는 방법은 무엇입니까?
- 24. 안드로이드 앱을 만드는 가장 전문적인 방법은 무엇입니까
- 25. 레일 앱을 테스트하는 가장 좋은 방법은 무엇입니까?
- 26. 배치 스크립트를 작성하는 가장 좋은 방법은 무엇입니까?
- 27. 루프를 작성하는 가장 좋은 방법은 무엇입니까?
- 28. 활동 로그를 작성하는 가장 좋은 방법은 무엇입니까?
- 29. XML을 작성하는 가장 빠른 방법은 무엇입니까
- 30. XHTML을 작성하는 가장 좋은 방법은 무엇입니까?
CGI 특히 아파치를 실행하는 시스템에 매우 간단합니다. HTML 페이지 (또는 그 일부)를 출력하는 실행 파일을 만들면됩니다. url (GET) 문자열을 구문 분석하고 환경 변수를 사용하여 POST 데이터를 시스템에서 가져올 수 있습니다. 간단하지만 그 부분들로 시스템을 만드는 것은 작업을 필요로합니다. –