无论是 GWT 还是 Wicket,都是基于 Java 面向对象的有状态框架。GWT 完全基于客户端,具有 JavaScript 优化、CSS 优化等功能,而我对 Apache Wicket 还比较陌生。
我读得越多,就越感觉 Wicket 和 GWT 相似。
所以问题来了——GWT 和 Wicket 之间有什么区别?还是说我在比较苹果和橙子?
无论是 GWT 还是 Wicket,都是基于 Java 面向对象的有状态框架。GWT 完全基于客户端,具有 JavaScript 优化、CSS 优化等功能,而我对 Apache Wicket 还比较陌生。
我读得越多,就越感觉 Wicket 和 GWT 相似。
所以问题来了——GWT 和 Wicket 之间有什么区别?还是说我在比较苹果和橙子?
我在一个大型项目上使用了多年GWT(1.x和2.x)和Wicket(1.4、1.5),这两个框架都有优点和缺点。只要它们被用于设计的目的,它们都很棒。但你可以轻松地将它们混合在一起,以充分利用它们的优点。
Wicket 对于 CRUD 网站非常好用和强大,HTML 页面设计和 Java 代码之间有很好的分离。只要不需要强大的客户端功能,它就能很好地完成它的工作,只是代码有些冗长:但这是为了强类型而付出的代价:没有"魔法",重构和组件化运作良好。对于大型项目,它可以轻松地解耦,并且经过良好设计可以与大团队一起工作:人们可以专注于提供一组漂亮的核心组件,其他人则专注于展示层等。唯一的缺点是,在客户端复杂行为方面,仍然需要精通 Javascript,而且自己 混合 Wicket 和 Javascript 可能会变得相当复杂。
GWT 在客户端需要强大的丰富行为能力时很好用(类似GMail应用程序)。 GWT 的主要问题在于它在纸面上看起来太好了("一切都在Java中"的范例),但它并没有实现它的承诺。它 缩放性不佳:GWT 适用于提供小功能集的小模块,而不适用于大型应用程序。代码/编译/调试周期相当漫长,当模块大小增加到一定程度时,它将成为负担。此外,它不支持大型团队同时在同一个模块上工作。
总之,我会建议人们做出选择:
getOriginalModel()
是什么? - Laurent Grégoire这就像是苹果和橙子之间的比较。
这个维基页面总结了一些相似性和差异,以及一种同时使用它们的策略,我认为这是一个有趣的想法。
Wicket主要是一种服务器端技术,具有一些内置的Ajax支持和用于连接更多Ajax的钩子。它不像GWT那样将Java翻译成JavaScript。它在服务器端维护状态,而GWT在客户端维护状态。
两者都是基于组件的,对我来说有一些类似于Swing开发的感觉(尽管至少有一个其他回答者认为Wicket不像Swing)。
这个帖子已经有6年了,GWT大多停滞不前。 Wicket似乎更加活跃地开发和支持。 有人对Wicket或其他选项有新的看法吗?
Wicket是一种基于服务器的框架。它与JSF比GWT更为相似。GWT在概念上类似于Swing,我曾经是Swing开发人员,从Swing迁移到GWT非常容易。但对于Wicket或JSF来说,我不能说同样的话。
Wicket是一个服务器框架。它允许创建所需的HTML。在项目中可以分离角色(Web设计->HTML / CSS->Java)。
如果您考虑使用GWT进行项目开发,则可能不需要Web设计师。
GWT生成JavaScript。大多数逻辑可以在浏览器端执行。GWT更适合可扩展的应用程序。