我正在寻找具有以下某些属性的Scala Web框架。
适合该法案的最佳Scala网络微框架是什么?我一直在关注的一些框架:
但是,如果不花时间玩所有这些,就很难分辨出使用什么。
答案 0 :(得分:11)
Bowler 几乎是 Scalatra + Scalate ,其中一些强制/推动开发人员采用了良好的REST实践,例如正确使用Content-Type和Accept HTTP Headers来响应和发出HTML和JSON,并以适当的方式处理GET,POST,DELETE和PUT(并且更难以使用GET和DELETE)。
如果您对面向组件的UI感到好奇,Bowler会support Scalate's Scuery style,它与Bowler相结合,提供了一个非常可组合的UI风格,深受 Apache Wicket 的影响。
就前端与服务器端而言,Bowler takes quite a strong view that client-side code(JavaScript / CSS)是客户端代码,服务器端代码是服务器端。 JavaScript与服务器端Scala代码没有讨厌的“集成”,相反,您应该在客户端和服务器上使用最佳类型,通过常见的,易于理解的格式(如JSON)进行集成。
答案 1 :(得分:6)
我喜欢Scala的Play Framework。但是Scala模块还没有支持异步内容(例如websockets)。而且Anorm - 数据库抽象还不是很成熟。
但我喜欢这个框架,因为它非常轻巧,性能良好且易于理解。
Play Framework受Ruby on Rails的启发,开发周期非常短 - 只需保存Scala源文件并更新Web浏览器即可。源文件由框架自动编译,它直接在浏览器中显示信息性编译器错误消息。它还与包括Selenium在内的测试框架很好地集成。
Play Framework使用了一个使用事件驱动架构构建的高性能服务器框架(Netty),这可以在彗星应用程序中提供比传统Java Servlet容器之类的基于线程的服务器更好的性能。
答案 2 :(得分:6)
不确定它是否属于“微框架”,但我喜欢Lift。我没有真正看过你建议的其他人,但这里有一些关于Lift的评论:
Box
很棒Lift确实有Request和Session范围的变量。我喜欢它们,但它们可能属于你对“令人讨厌”设计的描述。
它还包括一个应该非常好的彗星实现,虽然我自己没有使用它。
正在进行的书和文档here。
答案 3 :(得分:4)
最好的是比赛和举起。电梯是如此复杂和一个有状态的框架。游戏非常简单,轻便且无状态,因此可以轻松扩展。 Typesafe.com(scala home)是用play / scala制作的,而play和scala也有增加的趋势。模块化和性能取决于类固醇,有很多模块可供使用,模板系统性能接近原始java / scala代码(比lift或jsp好得多)。数据库接口Anorm在游戏中比hibernate更简单,更高效,也易于调试。 play / scala中的模板系统与asp.net mvc 3 razor模板系统几乎相同,它是jvm世界IMO中的最佳状态,也可以使用其他像scalate(带有游戏scalate模块)但剃须刀要好得多
的问候, Serdar Irmak