GWT vs Apache Wicket

Kas*_*uri 11 architecture apache gwt wicket

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

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

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

Lau*_*ire 26

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

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

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

总而言之,我建议人们不得不选择:

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

  • 对不起,但我完全不同意它的立场不能很好地扩展.我们有一个非常大的应用程序,没有缩放问题,超过1200个动态页面.我们使用MVP模式并使用GWT.runAsync进行快速加载.我也使用了wicket,它似乎比GWT更像是一个拼凑在一起的框架.像getModel和getOriginalModel这样的东西很烦人,再加上无法简单地使用DOM,这真的让我对Wicket不以为然.IMHO Vaadin比Wicket更好,因为7.0可以提供两全其美,但我会坚持使用GWT. (5认同)

Don*_*oby 8

橘子几乎是苹果.

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

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

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