2011-07-08 95 views
20

我正在尋找具有以下某些屬性的Scala Web框架。Scala web微框架

  • 模塊化,以防萬一(例如)我不想使用特定的模板語言或框架默認的數據庫接口。
  • 避免「魔術」或糟糕的設計決策(通常優先考慮Unfiltered的功能風格) - 線程本地請求/響應對象,反射(比較Bowler的函數名稱約定)等。
  • DB接口。任何支持與SQLAlchemy相同程度的靈活性(ORM和SQL支持平滑互操作和逃逸孵化)?
  • 模板/視圖語言。這裏非常靈活,但我對基於組件的方法感興趣。
  • 性能,可伸縮性(Comet支持)。

什麼是最適合該法案的Scala網絡微框架?

  • Scalatra的
  • 鮑勒(建立在了Scalatra)
  • 播放(斯卡拉接口)
  • 抑揚
  • 未過濾的(最小的HTTP請求處理,沒有DB:我一直在尋找一些框架界面/模板語言)

但是沒有花時間玩所有這些,很難分辨使用什麼。

+1

爲了使它更適合Stackoverflow,也許你可以將你的問題改爲「給定條件X,Y和Z,什麼是最好的Web框架?」。否則,您接受的「Can people comment ..」的答案將不會有用。 –

+0

@Eugene感謝您的建議。我修改了我的問題。 – Yang

回答

11

Bowler是非常了Scalatra + Scalate的,朝向好的REST風格的做法,如正確使用Content-Type和接受開發者的一些強制執行措施/輕推用於響應和發佈HTML和JSON的HTTP標題,並以適當的方式處理GET,POST,DELETE和PUT(並且更糟糕地使用GET和DELETE)。

如果你是好奇面向組件的UI的,圓頂不會support Scalate's Scuery style,與禮帽相結合,是由阿帕奇檢票嚴重影響很組合的UI風格。

就前端與服務器端而言,Bowler takes quite a strong view that client-side code(JavaScript/CSS)是客戶端代碼,服務器端代碼是服務器端。 JavaScript代碼與服務器端的Scala代碼沒有討厭的「一體化」,而應該最好的品種在客戶端和服務器,綜合運用通過一個共同的,易於理解的格式,如JSON。

6

我喜歡Play Framework與斯卡拉。但是Scala模塊還不支持異步的東西(例如websockets)。而且Anorm - 數據庫抽象還不是很成熟。

但是我喜歡這個框架,因爲它非常輕便,性能好,易於理解。

Play Framework受Ruby on Rails的啓發,開發週期非常短 - 只需保存Scala源文件並更新Web瀏覽器即可。源文件由框架自動編譯,並直接在瀏覽器中顯示信息性的編譯器錯誤消息。它還與包括Selenium在內的測試框架進行了良好的整合。

Play Framework使用高性能服務器框架(Netty),該框架使用事件驅動架構構建,與傳統Java Servlet容器等基於線程的服務器相比,這可能會在彗星應用程序中提供更好的性能。

+0

感謝您的誠實投入。 – Yang

6

不確定它是否符合「微框架」的條件,但我喜歡Lift。我還沒有真正望着你建議的人,但這裏有電梯上一些評論:

  • 這是很大的,但你可以挑選你想使用
    • 我從來沒有打擾什麼零件有很大一部分:例如數據庫接口,魔術形式,屏幕,奇才......
  • 設計者友好的意見/模板是非常好的
  • 我喜歡的方式重寫規則完成
  • 性能是根據我的經驗非常好
  • Box是偉大
  • 大,樂於助人的社區

電梯確實有request和session範圍的變量。我喜歡他們,但他們可能會陷入你對「糟糕」設計的描述。

它還包括一個應該是很不錯的,雖然我沒有用它自己一顆彗星實施。

工作在進步書籍和文檔here

+0

很高興聽到Lift的模塊化。我會再看看這個項目。 – Yang

4

最好的是戲劇和電梯。提升是如此複雜和有狀態的框架。遊戲非常容易,輕鬆且無狀態,因此可以非常容易地進行縮放。 Typesafe.com(scala home)由play/scala製作,並且play和scala也有增長的趨勢。模塊化和性能上發揮類固醇,有很多模塊,用於播放和模板系統性能接近原始的Java/Scala代碼(比提升更好或JSP)。數據庫接口在玩遊戲時,比起像hibernate這樣的orms來說,它更加簡單和高效,也很容易調試。在遊戲中模板系統/ Scala是用asp.net MVC 3剃鬚刀模板系統幾乎相同,這是藝術的狀態,在JVM世界上最好的海事組織,你也可以使用其他類似Scalate的(有播放Scalate的模塊),但是剃鬚刀是非常非常好。

問候, 塞爾達爾Irmak

+0

不知道Typesafe.com使用Play! – Yang