2013-03-13 44 views
2

我開始開發一個應用程序(一些無聊的會計軟件用於室內使用),並決定使其基於Web,因爲這樣可以一次解決幾個問題。Haskell和webframeworks

現在有了幾個可供Haskell選擇的webframework(happstack,yesod和snap),我仍然開始感到不得不處理HTML,CSS和極其聰明的有線JavaScript。

Uhm。

那麼,我認爲不妨試試所有的AJAX方法,並在CappuccinoSproutCore做UI。 (SEO在這裏不是問題)。

但是現在我不需要一個完整的Web框架,比如上述三個框架之一,一個可以爲JSON或XML包裝數據的HTTP服務器在理論上應該足夠了。

現在仍然有一點可以使用這三者之一?

最重要的是這種方法有多可行?

半滑舌鰨

+0

我很好奇你的會計應用程序是如何出現的。我正在爲Haskell編寫一些會計應用程序。一旦我們將它發佈到網絡上,我會嘗試在這裏鏈接到它。 – 2013-05-09 00:21:42

回答

5

我認爲你的問題可能會在「過於寬泛」來這裏瀕臨 - 所以我想這取決於你的需求。如果您所做的只是交換JSON,並且實際上Yesod書中有一個JSON web service example,您可能不需要使用類型安全的URL,這樣可以避免使用Yesod本身,而是建立在底層WAI包上。

我不能評論Snap和Happstack,因爲我沒有真正關注過它們,但也有其他的選擇。例如,Scotty在WAI之上增加了一個更簡單的層,這對於構建基本的服務器來說已經足夠了,而沒有太多的學習曲線。我還發現閱讀Scotty的代碼是瞭解WAI的好方法,如果您正在開發更復雜的Yesod應用程序,這也是非常有用的。

+0

嗨,盧克有罪過於寬泛。這樣,即。僅僅爲JSON和XML使用服務器,沒有用戶界面是我的第一次嘗試,因此我也在尋求保證。 – Guenni 2013-03-14 00:21:58

2

所有三大web框架都有自己的web服務器。 Yesod的服務器是warp。 Snap的服務器是snap-server。 Happstack的服務器是happstack-server。它們都具有相當低級別的API,適合您的應用程序。 Warp的API在wai中定義。 Snap服務器的API在snap-core中定義。 Happstack沒有爲其API提供單獨的包,但是他們在happstack-lite包中有它的簡化版本。

我建議你看一下API並使用你最喜歡的那一個。