【发布时间】:2012-07-30 04:09:40
【问题描述】:
我即将开始一个应该在 Tomcat 服务器上运行的 Web 应用程序的项目。我决定选择 Scala——我工作的另一个选择是 Groovy——主要是为了类型安全。我现在面临着为工作选择合适工具的任务。
我需要开发的项目只能通过 JSON API 访问。它将与自己的数据库和两个外部服务交互,这两个服务分别公开一个 JSON 和 XML API。我还需要能够安排定期作业,我的应用程序将使用这些外部服务执行各种同步任务。
对于数据库,我希望能够在 Scala 中定义我的模型并自动生成模式。如果需要更改我的模型,我希望有迁移来处理它。
对于这个应用程序,我正在尝试评估 Lift, Play! 2 和 Scalatra。
电梯是我的第一选择。它是三个项目中最成熟的,并且似乎被认为是高度安全的(我不想在安全性上妥协)。此外,它还具有似乎是 Scala 中最好的 JSON 处理库。尽管如此,在涉足它之后,我不确定这是否是正确的选择。该文档并不是我见过的最好的。此外,在我看来,Record + Squeryl 似乎比 Mapper 更好,但这种用法的文档更加稀缺。最后,虽然 Lift 确实可以用于创建 Web 服务,但它的真正优势似乎在于状态处理,因此我不相信我的项目需要额外的复杂性。
玩! 2 似乎有更好的文档,对我来说看起来更熟悉(我来自 Django 背景)。同样,它的默认数据库抽象并没有真正让我满意:ANORM 依赖于 SQL,它对类型检查没有帮助。无论如何我都必须使用 Squeryl,我不确定这个用例的文档是否一样好。此外,部署 Play! 2 个应用程序目前比我想要的更复杂。一个必须安装播放!在生产服务器上,我不确定这是我工作的选项。否则,有一个插件可以让它与 servlets 容器一起工作,但它是非常新的,我不确定它有多稳定/可靠。
最后可以选择使用 Scalatra。 Scalatra 似乎很容易设置,它的设计正是为了创建 Web 服务。折衷方案是 Scalatra 没有提供太多功能。它不与现有的 ORM 集成,也不建议如何组织应用程序的模型部分,也无助于设计 cron 或命令行任务。我也不确定该项目的长期未来。
你认为我的任务的最佳选择是什么?
【问题讨论】:
-
请解释投票结束并发表评论,以便我改进我的问题。
-
我会尝试猜测:这是因为像这样的问题(这里是 X,Y,Z -- what is the best?)没有硬参数往往会给出主观和主观的答案。 AFAIK,您列出的所有框架都适合 用 JSON 讨论,数据库的自动模式。或许还有其他原因。
-
好吧,我以为我给了一些参数:好的文档,只需要Web服务接口,需要能够调度任务,需要能够可靠地部署在Tomcat上,处理架构迁移。
-
在没有任何关于如何改进它的评论的情况下关闭问题有点烦人,在爱之夏更是如此:-/ blog.*.com/2012/07/kicking-off-the-summer-of-love
标签: scala playframework lift scalatra