如何开始使用Scala开发web?

如何开始使用Scala开发web?,scala,Scala,现在,我熟悉Scala语言并准备好进行web开发。我遇到的唯一一个框架是,我对它一无所知。如何使用Scala进行web开发?我在Scala中使用和来构建web应用程序 我没有选择Lift的主要原因是,我们的开发人员对这两个框架非常有经验,因此转换到Scala对他们来说比较容易 当然,在使用带有Scala的Java web框架时,需要记住以下几点: 收集类。Scala集合比Java集合丰富得多,但大多数Java框架无法使用它们。(很明显,Scala 2.8将引入一些解决方法) 偶尔会出现兼容性问

现在,我熟悉Scala语言并准备好进行web开发。我遇到的唯一一个框架是,我对它一无所知。如何使用Scala进行web开发?

我在Scala中使用和来构建web应用程序

我没有选择Lift的主要原因是,我们的开发人员对这两个框架非常有经验,因此转换到Scala对他们来说比较容易

当然,在使用带有Scala的Java web框架时,需要记住以下几点:

  • 收集类。Scala集合比Java集合丰富得多,但大多数Java框架无法使用它们。(很明显,Scala 2.8将引入一些解决方法)
  • 偶尔会出现兼容性问题,例如Tapestry 5.1不接受它在模块类中不需要的方法,但Scala会向每个类隐式添加一个
    $tag()
    。这将导致Tapestry拒绝该类

我已经成功地使用了Struts 2和Scala。scala.reflect包中的@BeanInfo和@BeanProperty注释对于属性访问非常方便。

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

至少有两个用于web开发的scala框架。正如你提到的,一个是

还有一个,这是一个微观框架,在Sinatra的脉络中,用于ruby。它看起来很酷,有一个很好的DSL


更具实验性的是,最新的trunk有一个用于处理web应用程序的包。不过,它有点缺乏文档和示例,在接下来的几个月里可能会经历一些重大的变化(我是提交者)。如果你想遵循我正在考虑使用它的最前沿的方式,你可以去看看。我希望很快就会有一个示例应用程序出现。

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

  • 积极、支持、响应的社区
  • 该框架是为Scala设计的,而不是碰巧与Scala兼容
  • 多个贡献者已经在这方面投入了大量精力
否定意见:

  • 如果(像我一样)您正在从Struts这样的框架迁移,那么这可能是一个挑战
  • 对用户请求的大部分响应都发生在1.1-SNAPSHOT中,而不是特定版本,这意味着您正在针对移动目标进行编码。这在实践中不是一个大问题,但我可以看到这对一些人来说是令人不安的。显然,一旦1.1发布,这个要点就不会很好地过时
正如尼克·帕特里奇在回答中指出的那样,还有其他框架。由于我不知道您想要或期望一个框架,我只能向您指出一些可以帮助您下定决心的提升资源:

  • 有一本开源的Lift书籍(其快照发布为),您可以在(在该页面上搜索master.pdf)上找到
  • 以Lift PDF开头是一个简短的介绍
  • 邮件列表数量很大(对我来说),但信息来源非常丰富:
你可能还想看看Lift的动机和影响(“Seaside的高粒度课程和安全,
Rails快速闪现,Django的“不仅仅包括CRUD”,Wicket的设计师友好模板……),以查看它们是否符合您的要求。

现在是最大的scala web框架之一

您是如何解决
$tag
问题的?通过不使用Tapestry 5.1?我刚刚用Java编写了一个类:)这是一个黑客解决方案,但显然Scala 2.8无论如何都会放弃$tag方法,这样就不再是问题了。提示:您可以在Scala中使用Java集合,在Java中使用Scala集合,使用2.7.x,您是否出于某种原因排除了Lift,或者关于电梯的答案是否有效?这不清楚,我不排除电梯。我只是说我不知道开始使用它有多成熟。我想知道Scala web开发的一般方法是什么?