GWT vs Apache Wicket

时间:2011-01-04 22:27:43

标签: apache gwt architecture wicket

GWT和Wicket都是有状态的,基于java面向对象。 GWT完全基于客户端,具有javascript优化,CSS优化等功能,而且我是Apache Wicket的新手。

我对Wicket的了解越多,对GWT的感觉就越相似。

所以我想问题是 - GWT和Wicket之间有什么区别?或者我将苹果与橙子进行比较?

6 个答案:

答案 0 :(得分:26)

我已经在一个大型项目中使用GWT(1.x和2.x)和Wicket(1.4,1.5)已有好几年了,这两个框架都有其优点和缺点。它们都很酷很好,如果它们用于它们的设计。但你可以轻松地将混合在一起中充分利用它们。

  • Wicket 非常适合CRUD网站,页面设计(HTML)和Java代码之间有很好的分离。只要你不需要强大的客户端功能,它就能很好地完成它的工作,因为它有点代码冗长:但这是强类型要付出的代价:没有“魔法” “; 重构组件化就像魅力一样。对于大型项目,它可以很容易地解耦并且设计得非常好,以便与大型团队合作:人们可以专注于提供一组很好的核心组件,其他在表示层上,等等...唯一的缺点是客户端的复杂行为,你仍然需要掌握Javascript ,并且很容易变得相当复杂,以便自己混合Wicket和Javascript 。 / p>

  • GWT 非常适合您在客户端(类似GMail的应用程序)上需要丰富行为功能。 GWT的主要问题是它在纸上看起来太好了(“java中的所有东西”范例),但它没有实现它的承诺。它不能很好地扩展:GWT适用于提供一小组功能的小模块,而不适用于大型应用程序。代码/编译/调试周期相当长,当模块大小变得太大时,它就成了负担。此外,它不支持在同一模块上同时工作的大型团队。

总结一下,我建议人们不得不选择:

  • 当需要真正时,谨慎使用GWT,保持模块大小,并且永远不要试图用它构建一个完整的大应用程序;
  • 在其他地方使用检票口(Wicket真的很摇滚!)。
  • 要将两者结合在一起,请使用Wicket的强大组件功能以“wicket方式”模块化GWT代码( GWT模块成为一种特殊的Wicket组件),再次,保持GWT小

答案 1 :(得分:8)

橘子几乎是苹果。

这个wiki entry总结了一些相似点和不同点,以及将它们结合使用的策略的开始,我认为这是一个有趣的想法。

Wicket主要是一种服务器端技术,具有一些内置的Ajax支持和钩子,用于连接更多Ajax。它不像Java那样将Java翻译成JavaScript。它维护状态服务器端,GWT在客户端上维护状态。

两者都是基于组件的,对我来说有一些Swing开发的感觉(虽然Wicket似乎不喜欢Swing到至少一个其他受访者)。

答案 2 :(得分:2)

答案 3 :(得分:1)

自从这个线程处于活跃状态已经过去了6年,GWT大多停滞不前。 Wicket似乎更积极地开发和支持。 任何人对Wicket或其他选项有更新的意见?

答案 4 :(得分:0)

Wicket是基于服务器的框架。它与JSF比GWT更相似。 GWT在概念上类似于Swing,我是前挥手开发者,很容易从swing迁移到gwt。但我不能为Wicket或JSF说同样的话......

答案 5 :(得分:-1)

Wicket是服务器框架。它允许创建你需要的html。可以在项目中分离角色。 (网页设计 - > html / css-> java)。

如果您考虑为项目使用GWT,可能不需要网页设计师 GWT生成javascript。大多数逻辑可以在浏览器端执行。 GWT更适合可扩展的应用程序。