2013-03-13 4 views
2

필자는 일일이 몇 가지 문제를 해결할 수있는 응용 프로그램 (사내 사용을위한 지루한 회계 소프트웨어)을 웹 기반으로 개발하기로 결정했습니다.하스켈과 webframeworks

Haskell에서 선택할 수있는 몇 가지 webframeworks (happstack, yesod 및 snap)를 사용하여 HTML, CSS 및 현명하게 유선 연결된 JavaScript를 다루어야하는 고통을 다시 느끼기 시작합니다.

엄.

도대체 내가 생각하기에 도대체 AJAX 방식으로 모든 것을 시도해보고 UI를 Cappuccino 또는 SproutCore으로 시도해보십시오. (SEO는 여기에 문제가되지 않습니다).

하지만 위의 세 가지 중 하나 인 JSON 또는 XML로 래핑 된 데이터를 처리 할 수있는 HTTP 서버는 이론상 충분할 것으로 보입니다.

이 세 가지 중 하나를 사용하는 것이 여전히 중요한가요?

그리고 무엇보다도 가능한 방법은 무엇입니까?

귄터

+0

귀하의 회계 신청이 어떻게 이루어 졌는지 궁금합니다. 나는 Haskell에서도 회계 응용 프로그램을 쓰고있다. 일단 우리가 웹에 게시하면 여기에 링크하려고합니다. –

답변

5

나는 당신의 질문은 여기에 "지나치게 광범위한"에 다가갑니다 것 같아요 - 그래서 나는 그것이 당신의 요구 사항에 따라 달라집니다 것 같아요. 실제로 JSON을 교환하는 경우 유형 보증 된 URL과 같은 것이 필요하지 않으며 사실 Yesod 책의 내용은 JSON web service example이며 Yesod 자체는 사용하지 않고 기본 WAI 패키지를 기반으로합니다.

Snap과 Happstack에 대해 언급 할 수는 없지만 많은 옵션을 살펴 보았습니다.하지만 다른 옵션도 있습니다. 예를 들어 Scotty은 학습 곡선을 많이 쓰지 않고도 기본 서버를 구축하기에 충분해야하는 WAI 위에 간단한 레이어를 추가합니다. 나는 또한 Scotty의 코드를 읽는 것이 WAI에 대한 이해를 돕기위한 좋은 방법이라는 것을 알았습니다.이 방법은보다 복잡한 Yesod 앱을 개발할 때 매우 유용합니다.

+0

안녕 루크, 지나치게 폭 넓은 것으로 기소 된 유죄. 이런 식으로 진행됩니다. 서버를 JSON과 XML 용으로 만 사용하고 UI가없는 것은 첫 번째 시도이므로 안심할 수도 있습니다. – Guenni

2

큰 세 가지 웹 프레임 워크에는 모두 자체 웹 서버가 있습니다. Yesod의 서버는 warp입니다. Snap의 서버는 snap-server입니다. Happstack의 서버는 happstack-server입니다. 그들은 모두 당신의 어플리케이션에 적합한 상당히 낮은 수준의 API를 가지고 있습니다. Warp의 API는 wai에 정의되어 있습니다. Snap 서버의 API는 snap-core에 정의되어 있습니다. Happstack은 API를 위해 별도의 패키지를 가지고 있지 않지만, happstack-lite 패키지에 단순 버전을 가지고 있습니다.

API를보고 가장 좋아하는 것을 사용하는 것이 좋습니다.