2008-09-09 4 views
19

Я хотел бы использовать Haskell больше для моих проектов, и я думаю, что если я начну использовать его для веб-приложений, это действительно поможет этому. Я пробовал один или два раза, но у меня не было проблем с выходом на землю. Существуют ли более простые/более обычные (более похожие на лампы) рамки, которые я могу использовать, или я должен просто дать другим попробовать?Каков самый простой способ написания веб-приложений в Haskell?

ответ

1

Вы можете использовать CGI и библиотеку комбинаторов (x) html, как указано в статье wiki Haskell Web Development. Более широкий обзор библиотек, фреймворков и т. Д. Для веб-программирования в haskell можно найти в Practical web programming in Haskell.

+0

CGI очень просто, особенно в системах, работающих под управлением Apache. Вы просто создаете исполняемый файл, который печатает HTML-страницу (или ее часть). Вы можете проанализировать строку url (GET) и получить POST-данные из системы с использованием переменных среды. Это просто, но создание системы из этих частей требует работы. – 2008-12-01 18:56:52

4

Если вы решите пойти с HAPPS вы, вероятно, хотите, чтобы оформить этот отличный пример приводится учебник, который разрабатывается как приложение HAPPS: HApps Tutorial

0

Существует также Hope (ссылка амортизируется), хотя похоже, не приобрел столько же тяги, сколько HApps и WASH. Тем не менее, сайт также был тихим около года.

16

Лучшие инструменты по состоянию на 2011 год являются:

Сообщество разработчиков веб вокруг Haskell был процветающий на конкуренции между этими сообществами.

Авторы даже сравнивают свои рамки здесь: Comparing Haskell's Snap and Yesod web frameworks

2

Web Application Interface, WAI, это очень хороший базовый слой, на котором вы можете создавать приложения поверх. Есть много хороших библиотек для взлома для маршрутизации, шаблонов и т. Д., Которые хорошо работают в сочетании с WAI, что я и делаю.

4

Я разработал MFlow с идеей наивысшего соотношения функциональности и коэффициента. MFlow сделан без каких-либо других концепций, но для того, чтобы использовать Haskell для решения проблем веб-приложений, чтобы резко снизить шум и коэффициент ошибок в веб-программировании. Вся навигация в приложении MFlow безопасна во время компиляции. Он использует стандартные веб-библиотеки: WAI, formlets, stm, blaze-html.

Судите сами: это полное приложение с тремя страницами. В цикле он запрашивает два числа и показывает сумму. вы можете нажать кнопку «Назад», как вы:

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/

 Смежные вопросы

  • Нет связанных вопросов^_^