【发布时间】:2010-01-30 14:50:15
【问题描述】:
Apache Wicket 和 Apache Click 有什么区别? Apache Click 是否维护?最新版本似乎来自 2008 年 11 月 谢谢 阿喀琉斯
【问题讨论】:
标签: java wicket click-framework
Apache Wicket 和 Apache Click 有什么区别? Apache Click 是否维护?最新版本似乎来自 2008 年 11 月 谢谢 阿喀琉斯
【问题讨论】:
标签: java wicket click-framework
Click 正在积极开发中,最近已作为 Apache 顶级项目毕业。它目前正在迁移到其新域:http://click.apache.org。迁移完成后,将发布下一个版本 2.1.0。
在比较 Click 和 Wicket 之前,请注意我是 Apache Click 的提交者,但几年前已经评估过 Wicket,因此对它的工作原理有相当好的了解。
Click 是一个无状态框架,而 Wicket 是有状态的。在 Click 中,每个请求都会重新创建页面和组件,在 Wicket 中,页面和组件存储在会话中并在后续请求中重复使用。
Wicket 用于构建复杂的应用程序(想想桌面),所有的 GUI 状态都为您存储和管理。 Click 适用于更传统的 Web 应用程序,其中几乎不需要状态来呈现页面。如果您需要存储状态,您必须通过在会话中添加/删除它来自己管理它。值得一提的是,Wicket 支持无状态页面,而 Click 支持有状态页面,但这并不是这些框架的标准。
另一个区别是 Click 控件知道如何呈现自己,因此您不必在页面模板中重复标记。如果需要,您仍然可以手动布局模板,但这不是绝对必要的。在 Wicket 中,标记需要反映页面中创建的组件。 Wicket 中的想法是 Java 开发人员实际上并不创建或维护模板,而是由设计人员处理。
亲切的问候
鲍勃
【讨论】:
Wicket 让您可以更灵活地撰写网页。您可以为整个应用程序创建由组件组成的单个页面,也可以根据需要创建多个页面。点击是基于页面的。 Wicket 支持开箱即用的 ajax。在浏览器不支持 ajax 的情况下,wicket 中的大多数 ajax 组件都会退回到正常的页面刷新。 Wicket 有几十个开箱即用的组件和几十个来自相关项目的其他组件。我在 wicket 中发现的一个很棒的功能是它的冗长。这意味着我的应用程序所做的一切都是我创建的。我用 html 和 css 编写了整个演示文稿,没有生成任何内容。从经验来看,缺乏魔法对我来说是一大优势。最后也是最不重要的是,许多大公司都在使用检票口。 Walmat mobile 和 wellsfargo mobile 使用检票口完成。
【讨论】:
wicket 的最大缺点是它的状态性。单元测试和调试状态问题可能很困难。它的状态性意味着它使用更多的内存,并且可能会影响您的硬件预算。 wicket 的状态性质的副作用意味着它需要能够不时保存该状态。为此,您的所有对象都需要可序列化。
我刚刚开始关注点击。我喜欢它的无国籍性质。网络是请求/回复,应该是无状态的(至少尽可能)。
我也喜欢 click 与 apache cayanne 的完美集成。
【讨论】: