Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2011-09-13) 基于scala的web框架搜集

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

一、liftweb

网址:http://www.liftweb.net

这是scala官方推荐的web框架,不仅包含mvc,也包含orm。在基于scala的各框架中,应该算是比较成熟的一个。不过据说不容易入门,因为它有自己的一套处理方式,叫view-first。我大略看了一下它的demo,感觉的确有点不太好看明白。但有些人特别喜欢这种模式,说代码编写很简洁。习惯了mvc的通常难以适应。

二、circumflex

网址:http://www.circumflex.ru

这是我现在正在研究的一个东西,包含了mvc、orm及其它的一些工具,支持freemarker和scalate。其orm的api设计得很好,用起来就像是在写sql,却可以让编译器对其进行验证,减少出错。mvc很简洁明了,看一遍就差不多明白怎么回事了。

三、scalatra

网址:https://github.com/scalatra/scalatra

这个只是mvc层,也是很简单明了的风格,跟circumflex-mvc很像,支持scalate。没有提供orm,但可以和circumflex-orm或者squeryl结合使用。

四、playframework

网址:http://www.playframework.org

playframework是一个java的web框架,但现在的play2则完全基于scala。使用sbt代替了原来的python来执行命令,修改代码后,不需要重启(与以前一样),在中档电脑上需要大约3到4秒的时间。开发了新的基于scala的view层,大大提高了性能。还有新的orm层,叫anorm,有点类似于mybatis,但利用了scala的特性,让结果集与model类之间的匹配更加容易。我非常看好它的发展,欢迎加入play热情交流群:168013302

五、xitrum

网址:https://github.com/ngocdaothanh/xitrum

xitrum内部使用netty作为服务器,可与jrebel结合,实现大多数修改无须重启。其view层直接使用scala的xml特性,可及时发现代码错误,但也限制了我们使用html编辑器对代码进行着色及提示。使用中感觉不太好的地方是,当代码出现错误时,只会在sbt控制台中显示,刷新页面时不会有提示(还显示之前的页面)。我们必须每次修改代码后,盯着sbt,才知道有没有出问题,很不方便。

六、arden推荐:brzy

网址:https://github.com/m410/brzy-webapp

未使用过,不评论。

comments powered by Disqus