以前曾问过这样的问题-但现在所有答案都已过时。

我期待着在基于Scala的webapp上工作。我知道这个问题可以分为两个部分,但是我将它们作为一个发布,因为它们依赖于相同的上下文,并且依赖于所使用的托管平台和框架。

我已经阅读了关于Play的多个(很棒的)辩论!和“提升”,但找不到Play之间的良好比较! 2.1和提升。我如何确定哪种情况更适合我的情况(一个社交网站)?

类似地,这个discussion对于如果使用Lift可以使用哪个平台也有很好的论据,但这是2010年的,似乎已经过时了。推荐的提供程序(stax.net)已死(或者我猜它已与cloudbees.com合并)。我个人倾向于GAE,因为它们很快就会开始,但是不确定问题是否仍然存在:


支持演员(我不确定Akka是否可以帮助我们解决此问题)
给定会话的请求由不同的JVM服务,而无需通知正在运行的应用程序
引用David Pollak(Lift的主要作者):



  尽管Google提出要求,但GAE速度缓慢且不可扩展,
  与之交谈过的尝试扩展GAE应用程序的方法失败了并且消失了
  别处)。 GAE将您锁定在次优存储中
  机制。 GAE是免费的,但Stax也是免费的,并且有很多便宜的东西
  选项,包括SliceHost。接下来,您将拥有Amazon EC2和
  RackSpace。因此,我还没有找到任何人使用GAE的充分理由。
  如果没有充分的理由使用GAE,则需要投入大量资源
  围绕GAE JVM不兼容性进行编码(例如,没有新线程)
  似乎是浪费。


如果我选择GAE,另一个问题是缺少游戏! 2.1支持。我仍然看不到该模块。另一个问题是将来很难迁移到其他数据库(尽管我听说迁移到MongoDB应该相对容易一些)。最糟糕的情况是退出GAE并使用AppScale。

最佳答案

就我个人而言,我将LiftCloudbeesMongoLab用作大多数项目的首选。我尝试了几种云托管服务无济于事(尤其是Heroku和RedHat。由于您已经引用了David Pollak的帖子,我不认为我尝试了GAE)。要使用cloudbees,您只需要sbt plugin。然后,就像运行cloudbees-deploy目标一样简单。一分钟之内,您的代码即可启动并运行。我很容易被打倒。我之所以选择Mongo,主要是因为它具有出色的g8 template(请注意,现在有一个SQL equivalent

我真正喜欢Cloudbees和MongoLab的另一件事是它们都有免费服务。这对我来说很棒,因为我只在业余时间从事这些项目,所以当我的想法半生半熟时,我不想花任何钱。

至于Lift,我无法将其与Play进行比较。我下载/安装了Play,但由于MVC的状态立即被关闭。我觉得以视图为先的方法对我来说很陌生,但这似乎是构建Web应用程序的一种更加直观和强大的方法。我喜欢Lift并不会掩盖我确实在开发Web应用程序的事实。我经常感到MVC框架试图使所有HTML / CSS / JS等保持一定距离。

07-25 23:37
查看更多