如何开始使用Scala开发Web?

时间:2009-08-13 14:46:19

标签: scala

现在,我熟悉Scala语言并准备进行Web开发。我遇到的唯一框架是Lift并且对此一无所知。你如何使用Scala进行Web开发?

6 个答案:

答案 0 :(得分:4)

至少有2个用于Web开发的scala框架。正如您所提到的,其中之一是Lift

还有Step,这是一个用于红宝石的Sinatra静脉微观框架。它看起来很酷,并且有一个很好的DSL。

稍微更具实验性,最新的scalaz主干有一个用于处理Web应用程序的包。虽然它在文档和示例方面有些缺乏,并且在接下来的几个月中可能会经历一些重大变化(我是一个提交者)。如果您想按照我正在考虑的方式使用它,您可以查看scapps。我希望很快能有一个示例应用程序。

答案 1 :(得分:2)

我已经使用WicketTapestry在Scala中构建Web应用程序。

我没有使用Lift的主要原因是因为我们的开发人员对这两个框架非常有经验,因此转换为Scala对他们来说会更容易。

当然,在使用Scala的Java Web框架时需要记住一些事项:

  • 收集课程。 Scala集合远比Java对象更丰富,但大多数Java框架都无法使用它们。 (显然,Scala 2.8将引入一些补救措施)
  • 偶尔的兼容性问题,例如Tapestry 5.1不接受模块类中不需要的方法,但Scala会隐式地为每个类添加$tag()。这将导致Tapestry拒绝该类。

答案 2 :(得分:2)

在Scala中使用Lift进行Web开发有一些好处:

  • 积极,支持,反应迅速的社区;
  • 该框架是为Scala而设计的,而不是与Scala兼容;
  • 已经由多个贡献者投入了大量精力。

否定:

  • 可能是一个挑战,如果(像我一样)你正在从Struts等框架中移动;
  • 对用户请求的大部分响应都发生在1.1-SNAPSHOT中,而不是特定版本,这意味着您正在针对移动目标进行编码。在实践中不是一个大问题,但我可以看到这对某些人来说是令人不安的。很明显,一旦1.1发布,这个要点就不会老化。

正如尼克帕特里奇在答案中指出的,还有其他框架。由于我不知道您对框架的期望或期望,我只能向您指出一些可能帮助您下定决心的Lift资源:

您可能还想了解一下Lift的动机和影响(“Seaside的高度细化的会话和安全性, Rails快速闪存,Django'不仅仅包括CRUD',Wicket的设计师友好模板....“列在http://liftweb.net/上,看看它们是否符合您的要求。

答案 3 :(得分:1)

我在Struts 2和Scala上取得了成功。 scala.reflect包中的@BeanInfo和@BeanProperty注释可以方便地进行属性访问。

答案 4 :(得分:1)

如果您想在Scala中编写应用程序,我相信Lift目前是领先的Web框架。

答案 5 :(得分:0)

play framework现在是最大的scala Web框架之一。