我想要实现的是一个很小的Web应用程序 . 去年我一直在使用Erlang来实现服务器端软件,但我以前从未编写过Web应用程序 . 这将是一次很棒的经历 .
除了Lift之外,还有Scala的Web框架吗?
不要误会我的意思,Lift看起来很棒 . 我只是想知道有多少框架,以便我可以在它们之间进行选择 . 选择总是一件好事,但我发现的唯一一件事是Lift .
我喜欢Lift ;-)
Play是我对Scala友好的Web框架的第二选择 .
Wicket是我的第三选择 .
Sweet和Slinky似乎都是大约一年没有造成的 . Sweet Maven repo sweetsoftwaredesign.com已经死了,所以甚至没有办法下载依赖项 .
我写了一篇关于这个的blog post .
总而言之,一些选项是:
Lift
Sweet
Slinky
我终于发现没有一个适合我,并开发了我自己的小“框架” . (它还不是开源的) .
我想将自己的努力添加到此列表中 . 您可以在此处找到更多信息:
brzy framework
它处于早期开发阶段,我仍在积极地开展这项工作 . 它包括以下功能:
注重简单性和可扩展性 .
集成构建工具 .
模块化设计;一些初始模块包括对scalate,email,jms,jpa,squeryl,cassandra,cron服务等的支持 .
简单的RESTful控制器和操作 .
任何和所有反馈都非常感谢 .
更新:2011-09-078,我刚刚发布了0.9.1版本的重大更新 . 有关http://brzy.org的更多信息,其中包括截屏视频 .
Note: Spiffy is outdated.
<插头>
Spiffy :
是用Scala编写的
使用梦幻般的Akka图书馆和演员进行扩展
使用servlet API 3.0进行异步请求处理
是模块化的(替换组件是直接的)
使用DSL来减少您不想要的代码
支持Scalate和Freemarker进行模板化
Spiffy是一个使用Scala,Akka(Scala actor实现)和Java Servlet 3.0 API的Web框架 . 它利用异步接口,旨在为Web应用程序提供大规模并行和可伸缩的环境 . Spiffy的各种组件都基于这样一种想法,即它们需要是独立的简约模块,能够非常快速地完成少量工作,并将请求移交给管道中的下一个组件 . 完成最后一个组件处理请求后,它通过“完成”请求并将其发送回客户端来向servlet容器发出信号 .
https://github.com/mardambey/spiffy
</插头>
试试Play Framework,它也支持Scala .
有一个新的Web框架,名为Scala Web Pages . 从网站:
Scala Pages Web框架可能会吸引来自Java背景并希望在Scala中编写Web应用程序的Web程序员 . 重点是OOP而不是函数式编程 .
遵守模型 - 视图 - 控制器范例
基于文本的模板引擎
简单语法: $variable 和 <?scp-instruction?>
$variable
<?scp-instruction?>
编码/内容检测,能够处理国际文本编码
片段而不是自定义标签
URL重写
我对Scala非常感兴趣,但我还没有使用它,所以有了这个警告,我所知道的框架在HRJ's answer(Lift,Sweet,Slinky)中没有提到:
Scalatra,先前步骤(在GitHub上)
Play 2(在GitHub上)
Pinky
我倾向于使用Jersey使用JAX-RS(您可以在Scala,Java或Groovy中编写好的资源bean)来编写RESTul Web应用程序 . 然后我使用Scalate使用各种模板语言之一(JADE,Scaml,Ssp(Scala Server Pages),Mustache等)渲染视图 .
你也可以试试Context . 它被设计成一个Java框架,但我已经成功地将它与Scala一起使用也毫无困难 . 它是一个基于组件的框架,具有与Lift或Tapestry类似的属性 .
几个星期前我偶然发现了你的问题,但此后也了解了Circumflex . 这是一个很好的,最小的框架,因此易于学习,并且它还具有相当好的文档 .
除了它的最小化,它还声称可以与其他库一起使用,并允许您在需要时使用自己的实现 .
Prikrutil,我想我们在同一条船上 . 我也是从Erlang来到Scala . 我非常喜欢Nitrogen所以我决定创建一个受其启发的Scala Web框架 .
看看Xitrum . Its doc相当广泛 . 来自README:
Xitrum是一个基于Netty和Hazelcast的异步和集群Scala Web框架和Web服务器:
它填补了Scalatra和 . 之间的空白提升:比Scalatra更强大,比Lift更容易使用 . 您可以轻松创建RESTful API和回发 . Xitrum是控制器优先的,就像Scalatra一样,而不是像Lift这样的视图优先 .
注释用于URL路由,本着JAX-RS的精神 . 您不必在一个地方声明所有路线 .
Typesafe,本着Scala的精神 .
异步,本着Netty的精神 .
会话可以存储在Cookie或群集Hazelcast中 .
jQuery Validation集成在浏览器端和服务器端验证中 . i18n使用GNU gettext,这意味着与大多数其他解决方案不同,支持单数和复数形式 .
使用ETag的条件GET .
Hazelcast还给出了:
进程内和群集缓存,您不需要单独的缓存服务器 .
进程内和集群Comet,您可以将Comet扩展到多个Web服务器 .
按照tutorial快速启动 .
必须指出的是,Wicket和Scala也有相当大的兴趣 . Wicket非常适合Scala . 如果您想利用非常成熟的Wicket项目及其生态系统(扩展)以及Scala的简洁语法和 生产环境 力优势,这个可能适合您!
也可以看看:
Some prosa
Presentation
Some experience with Wicket and Scala
Announcments with reference to the project for the glue code to bind Scala closures to models
我发现Unfiltered非常有趣https://github.com/unfiltered/unfiltered .
它在IttayD的列表中提到过 .
这是关于它的演示文稿http://unfiltered.lessis.me/#0和视频http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for
这里还有一篇文章更多信息http://code.technically.us/post/998251172/holding-the-parameter
Play很可爱 .
它现在已经准备好了 . 它包含:一个很酷的模板框架,安全的源文件自动重新加载,可组合的动作系统,akka awesomeness等 .
它的一部分Typesafe Stack .
将它用于两个项目后,我可以说它工作得很顺利,下次你想要学习新的Web框架时应该考虑一下 .
一个非常有趣的商业部署的Web框架是Scalatra,受到Ruby _378540的启发InfoQ article关于它 .
还有Pinky,曾经是bitbucket,但已转移到github .
顺便说一句,github是一个搜索Scala项目的好地方,因为那里有很多东西 .
以下是框架的转储 . 这并不意味着我实际使用它们:
Coeus . Scala的传统MVC Web框架 .
Unfiltered . 用于在Scala中处理HTTP请求的工具包 .
Uniscala Granite .
Gardel
Mondo
Amore . Ruby Web框架Sinatra的Scala端口
Scales XML . 灵活的XML处理方法和与XML交互的简化方法 .
Belt . 用于基于Scalaz-HTTP构建的Web应用程序的类似Rack的界面
Frank . Web应用程序DSL构建于Scalaz / Belt之上
MixedBits . Scala编程语言的框架,用于帮助构建网站
Circumflex . 使用Scala编程语言统一几个用于应用程序开发的自包含开源项目 .
Scala Webmachine . Basho的Web机器在Scala中的端口,这是一个基于REST的系统,用于构建Web应用程序
Bowler . 一个RESTful,多渠道准备好的Scala Web框架
18 回答
我喜欢Lift ;-)
Play是我对Scala友好的Web框架的第二选择 .
Wicket是我的第三选择 .
Sweet和Slinky似乎都是大约一年没有造成的 . Sweet Maven repo sweetsoftwaredesign.com已经死了,所以甚至没有办法下载依赖项 .
我写了一篇关于这个的blog post .
总而言之,一些选项是:
Lift
Sweet
Slinky
我终于发现没有一个适合我,并开发了我自己的小“框架” . (它还不是开源的) .
我想将自己的努力添加到此列表中 . 您可以在此处找到更多信息:
brzy framework
它处于早期开发阶段,我仍在积极地开展这项工作 . 它包括以下功能:
注重简单性和可扩展性 .
集成构建工具 .
模块化设计;一些初始模块包括对scalate,email,jms,jpa,squeryl,cassandra,cron服务等的支持 .
简单的RESTful控制器和操作 .
任何和所有反馈都非常感谢 .
更新:2011-09-078,我刚刚发布了0.9.1版本的重大更新 . 有关http://brzy.org的更多信息,其中包括截屏视频 .
Note: Spiffy is outdated.
<插头>
Spiffy :
是用Scala编写的
使用梦幻般的Akka图书馆和演员进行扩展
使用servlet API 3.0进行异步请求处理
是模块化的(替换组件是直接的)
使用DSL来减少您不想要的代码
支持Scalate和Freemarker进行模板化
Spiffy是一个使用Scala,Akka(Scala actor实现)和Java Servlet 3.0 API的Web框架 . 它利用异步接口,旨在为Web应用程序提供大规模并行和可伸缩的环境 . Spiffy的各种组件都基于这样一种想法,即它们需要是独立的简约模块,能够非常快速地完成少量工作,并将请求移交给管道中的下一个组件 . 完成最后一个组件处理请求后,它通过“完成”请求并将其发送回客户端来向servlet容器发出信号 .
https://github.com/mardambey/spiffy
</插头>
试试Play Framework,它也支持Scala .
有一个新的Web框架,名为Scala Web Pages . 从网站:
目标受众
Scala Pages Web框架可能会吸引来自Java背景并希望在Scala中编写Web应用程序的Web程序员 . 重点是OOP而不是函数式编程 .
特点和特点
遵守模型 - 视图 - 控制器范例
基于文本的模板引擎
简单语法:
$variable
和<?scp-instruction?>
编码/内容检测,能够处理国际文本编码
片段而不是自定义标签
URL重写
我对Scala非常感兴趣,但我还没有使用它,所以有了这个警告,我所知道的框架在HRJ's answer(Lift,Sweet,Slinky)中没有提到:
Scalatra,先前步骤(在GitHub上)
Play 2(在GitHub上)
Pinky
我倾向于使用Jersey使用JAX-RS(您可以在Scala,Java或Groovy中编写好的资源bean)来编写RESTul Web应用程序 . 然后我使用Scalate使用各种模板语言之一(JADE,Scaml,Ssp(Scala Server Pages),Mustache等)渲染视图 .
你也可以试试Context . 它被设计成一个Java框架,但我已经成功地将它与Scala一起使用也毫无困难 . 它是一个基于组件的框架,具有与Lift或Tapestry类似的属性 .
几个星期前我偶然发现了你的问题,但此后也了解了Circumflex . 这是一个很好的,最小的框架,因此易于学习,并且它还具有相当好的文档 .
除了它的最小化,它还声称可以与其他库一起使用,并允许您在需要时使用自己的实现 .
Prikrutil,我想我们在同一条船上 . 我也是从Erlang来到Scala . 我非常喜欢Nitrogen所以我决定创建一个受其启发的Scala Web框架 .
看看Xitrum . Its doc相当广泛 . 来自README:
Xitrum是一个基于Netty和Hazelcast的异步和集群Scala Web框架和Web服务器:
它填补了Scalatra和 . 之间的空白提升:比Scalatra更强大,比Lift更容易使用 . 您可以轻松创建RESTful API和回发 . Xitrum是控制器优先的,就像Scalatra一样,而不是像Lift这样的视图优先 .
注释用于URL路由,本着JAX-RS的精神 . 您不必在一个地方声明所有路线 .
Typesafe,本着Scala的精神 .
异步,本着Netty的精神 .
会话可以存储在Cookie或群集Hazelcast中 .
jQuery Validation集成在浏览器端和服务器端验证中 . i18n使用GNU gettext,这意味着与大多数其他解决方案不同,支持单数和复数形式 .
使用ETag的条件GET .
Hazelcast还给出了:
进程内和群集缓存,您不需要单独的缓存服务器 .
进程内和集群Comet,您可以将Comet扩展到多个Web服务器 .
按照tutorial快速启动 .
必须指出的是,Wicket和Scala也有相当大的兴趣 . Wicket非常适合Scala . 如果您想利用非常成熟的Wicket项目及其生态系统(扩展)以及Scala的简洁语法和 生产环境 力优势,这个可能适合您!
也可以看看:
Some prosa
Presentation
Some experience with Wicket and Scala
Announcments with reference to the project for the glue code to bind Scala closures to models
我发现Unfiltered非常有趣https://github.com/unfiltered/unfiltered .
它在IttayD的列表中提到过 .
这是关于它的演示文稿http://unfiltered.lessis.me/#0和视频http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for
这里还有一篇文章更多信息http://code.technically.us/post/998251172/holding-the-parameter
Play很可爱 .
它现在已经准备好了 . 它包含:一个很酷的模板框架,安全的源文件自动重新加载,可组合的动作系统,akka awesomeness等 .
它的一部分Typesafe Stack .
将它用于两个项目后,我可以说它工作得很顺利,下次你想要学习新的Web框架时应该考虑一下 .
一个非常有趣的商业部署的Web框架是Scalatra,受到Ruby _378540的启发InfoQ article关于它 .
还有Pinky,曾经是bitbucket,但已转移到github .
顺便说一句,github是一个搜索Scala项目的好地方,因为那里有很多东西 .
以下是框架的转储 . 这并不意味着我实际使用它们:
Coeus . Scala的传统MVC Web框架 .
Unfiltered . 用于在Scala中处理HTTP请求的工具包 .
Uniscala Granite .
Gardel
Mondo
Amore . Ruby Web框架Sinatra的Scala端口
Scales XML . 灵活的XML处理方法和与XML交互的简化方法 .
Belt . 用于基于Scalaz-HTTP构建的Web应用程序的类似Rack的界面
Frank . Web应用程序DSL构建于Scalaz / Belt之上
MixedBits . Scala编程语言的框架,用于帮助构建网站
Circumflex . 使用Scala编程语言统一几个用于应用程序开发的自包含开源项目 .
Scala Webmachine . Basho的Web机器在Scala中的端口,这是一个基于REST的系统,用于构建Web应用程序
Bowler . 一个RESTful,多渠道准备好的Scala Web框架