框架比较:Lift、Play 和 Wicket

Posted

技术标签:

【中文标题】框架比较:Lift、Play 和 Wicket【英文标题】:Frameworks comparation: Lift, Play and Wicket 【发布时间】:2011-04-26 15:04:17 【问题描述】:

Lift、Play 和 Wicket 框架的优缺点是什么?每个特性最好或仅支持哪些特性?

谢谢

【问题讨论】:

你想要一个支持 scala 的框架吗? @niels 是的,除了问题中引用的那些特性之外,另一个特性是能够很好地分离系统的各个层。我喜欢的框架是 Wicket。如有必要,我将制作一个自定义括号以将其与 Scala 一起使用。 【参考方案1】:

有很多线程比较这些 Scala 的 Web 框架。见

Which is better framework Java/GWT or Scala/Lift?

这里的升降机/检票口:Which is better framework Java/GWT or Scala/Lift?

For my next project, a web-app, should use scala+wicket or scala+lift?

How do the Scala based frameworks stack up for a complete Scala newbie - Lift, Play, Circumflex, etc

【讨论】:

您不必点击这些链接。实际上,凯文斯的回答说明了一切。 这些链接很有帮助,尤其是第一个。谢谢 不,请点击链接!我的总结非常广泛——在细则中还有很多东西要学。 当然赞成这个答案。【参考方案2】:

播放

基于 Java 的轻量级框架,额外提供 Scala 支持。

非常适合快速原型设计、快速反馈循环类型的工作。嵌入编译器,因此您只需在原地编辑源代码,页面就会立即更新。学习曲线很浅。

检票口

有状态的基于 Java 的框架,额外提供 Scala 支持。

进入 Scala 的学习曲线较浅,特别是如果您已经有检票口经验。 良好的关注点分离,基于 POJO 的模型。可以说是目前可用的最好的 Java Web 框架之一。

提升

有状态的原生 Scala 框架。 深度 Scala 集成,因此无需生成 bean setter/getter 方法或担心 Java/Scala 集合之间的互操作。完全包含函数式编程概念,例如不变性和闭包。

也是三者中最陡峭的学习曲线。因此,一个常见的建议是在开始使用 Lift 之前学习 Scala 语言,尤其是如果您有 Java 背景。

其他

还有其他基于 Scala 的框架(例如 Scalatra 和 Pinky)可用于 Web 开发,但不如 Lift 那样出名。看看这些也没什么坏处!

欲了解更多信息,请参阅此问题:What Scala web-frameworks are available?

【讨论】:

清晰如水晶,一如既往地来自你@Kevin 嘿,谢谢!但你知道这可能会让我进行某种自我之旅,对吧? 感谢@Kevin 的回复,非常有用且完整。 @eelco:你能看出我没用过哪一个吗?我已经更新了答案 我猜 Play 的描述是针对 Play 1.x 的,因为 Play 2(在写完这个答案之后很好地出现了)真的全心全意地拥抱 Scala(同时仍然支持 Java)。 【参考方案3】:

另见:

https://vaadin.com/ - 基于 Java 的有状态框架,用于类似桌面的应用程序(基于 GWT,但在服务器端,没有 javascript,没有 html)。

http://click.apache.org/ - 用于轻量级 Web 应用程序的基于 Java 的无状态框架。

两者都有出色的文档并且易于学习。

【讨论】:

【参考方案4】:

说到 Lift 的优势,应该提到 Seven ThingsLift 真正擅长的地方。简而言之:

延迟加载 并行页面渲染 彗星和阿贾克斯 连线 -- 声明页面元素之间的相互依赖关系 设计师友好的模板 向导 -- 具有完整后退按钮支持的多页输入屏幕 安全性

请访问链接页面了解更多详情 - 这些功能确实让 Lift 在竞争对手中独树一帜。

【讨论】:

以上是关于框架比较:Lift、Play 和 Wicket的主要内容,如果未能解决你的问题,请参考以下文章

CF479E Riding in a Lift (dp)

Scala下Play框架学习笔记(Actions,Controllers and Results)

是否有任何“现代”框架支持在编译时检查数据绑定?

JSF 2.0 与 Wicket 与 SpringMVC 3.x 的特殊要求

使用 awk 比较两个文件并打印不匹配的记录

Wicket实战概述