现在有了GWT 2,与wicket相比有哪些优势呢?

时间:2009-07-29 13:48:23

标签: gwt wicket web-frameworks

除了Wicket简单性的论点(即Wicket是一个更简单的系统IMHO)和GWT在客户端的响应(GWT的客户端状态和JavaScript - 可能是复杂的客户端代码)和GWT更大的扩展潜力,什么是使用GWT而不是Wicket的论点?

就我个人而言,我做了很多Wicket开发,但很久以前只是快速浏览了GWT。

9 个答案:

答案 0 :(得分:17)

基本上,优点是GWT是构建基于javascript的客户端的工具,因此,如果你想要一个基于javascript的客户端,它最适合。

Wicket以服务器为中心,虽然它可以很容易地将javascript嵌入到无状态页面中,但服务器端状态处理是更自然的方法。

必须注意的是架构非常不同。

使用GWT,您的架构变成客户端 - 服务器,浏览器上的胖客户端,调用服务器的“程序”(服务),发送和接收数据

使用Wicket(以及其他以服务器端为中心的组件框架,如JSF和Tapestry),该架构是一个更“传统”的3层架构,发送和接收的内容是页面片段的页面,而非纯数据。

虽然你当然可以将两者结合起来以适应其他架构,但它根本不是很自然。

人们倾向于关注“哪个更容易使用”(这完全是主观的,取决于你的背景),或者“更美丽,有更多组件”,但不应低估建筑差异,这会影响您必须采取的方法来处理安全性和可伸缩性等方面。

答案 1 :(得分:10)

在过去的几个月里,我参与了一个基于GWT的项目。多年来,我一直是Wicket开发团队的一员,期待着改变,并期待GWT(我一直被吹捧为另一个优秀的Java框架)。

老实说,在与GWT合作时我很失望。我觉得 - 事实上我的整个团队 - 生产力受到了很大的打击。从理论上讲,GWT很棒。但是当你考虑到框架的怪癖和局限性时,平庸的错误报告(特别是在序列化错误时),编译时间长(3到10分钟之间,我们的项目甚至还不是那么大),事实上,当所有的事情都说完了,你仍然需要测试所有浏览器并找到调整和解决方法,事实上它产生了巨大的初始下载(几乎是MB,我们正在逐渐减少,但有很多努力)等等,我觉得Wicket更容易和更快速地工作。

我不讨厌与GWT合作。它仍然比大多数Java框架好很多。只是因为我对它的期望更多;我甚至预计它可能比Wicket更好。但最终,它只是不是imho。希望GWT 2.0能够改进很多东西,希望Eclipse插件的一些怪癖也能很快得到理解。

答案 2 :(得分:3)

将GWT与wicket(或同样)进行比较是不公平的,因为它们实际上来自两个不同的阵营。前者是用于构建JavaScript前端应用程序的框架,而后者是经典的Java Web应用程序框架。

因此,以下几点不如GWT与wicket一样多,而是在我们决定将GWT用于高级JavaScript / AJAX Web应用程序时编译的通用列表:

  • 通过允许来隐藏JavaScript和跨浏览器支持的缺点 在Java中开发并自动编译为特定于浏览器的JavaScript风格 (由于“漏洞抽象法则”,这不是完全,但这是为什么GWT首先被创建的一个主要原因 - 见Reveling in Constraints);
  • Java是许多Java开发人员在使用高级JavaScript / AJAX UI时的首选;
  • 完全支持Java开发环境和工具:Eclipse中的Eclipse插件,调试器,重构,托管模式;
  • 模拟对象和托管模式都支持JUnit测试;
  • 清理与Java后端的集成(GWT-RPC);
  • 相对丰富的UI小部件集,具有统一的外观和感觉;
  • 第三方小部件,框架,模式和示例的可用性(仍然有限且有很长的愿望清单);
  • Google支持推动了更广泛的接受度/受欢迎程度以及框架的快速发展;
  • 成熟的框架,包含1.6+和即将发布的2.0版本:(事件总线,事件处理程序,具有MVP模式的GUI架构,编译器优化等)。

答案 3 :(得分:3)

Wicket优于GWT的一个优点是,Wicket可以处理您希望为未启用Javascript的客户提供后备的情况。 GWT是Javascript的全能,Wicket允许你优雅地降级。

答案 4 :(得分:2)

在我看来,GWT的最大好处是允许您使用一种编程语言 - Java,并带来它带来的所有优点。

与CSS一起构成一个强大的对。


换句话说,你可以 忘记Javascript和HTML。

这是否优势主要取决于您的技能和要求。我们在内部进行了同样的辩论,最后一个团队选择了Wicket和另一个GWT。

答案 5 :(得分:0)

对于典型的商业网络应用,我可以想到为什么GWT比Wicket更好的选择:

  1. GWT来自Google。这可能是不公平的,但拥有一个大而且受人尊敬的软件公司背后的工具是巨大的优势(更安全的赌注,更多的书籍和在线资源,更多的第三方支持,更好的IDE支持, ...)。
  2. 像Wicket这样以服务器为中心的Web框架已经过时了。现代Web浏览器非常强大并且越来越强大,因此现代Web框架应该可以帮助您利用它。
  3. 直接在HTML和Javascript中编码永远不会像在Java中编码一样高效(至少从我的经验来看)。此外,还有更好的Java代码工具(调试器,静态分析,单元测试和代码覆盖等)。

答案 6 :(得分:0)

GWT背后的天才是你只使用java。他们在RPC方面做得很好,使得程序员几乎是透明的。很多时候,您觉得您的编码更像是桌面应用程序,而不是具有真正定义的客户端和服务器端的应用程序。

答案 7 :(得分:0)

我发现wicket相对于GWT的其他优点很少。

  1. GWT不适用于已禁用javascript的浏览器。 (虽然这很少见)。如果javascript不可用,Wicket总是会回到正常的http请求。
  2. GWT应用程序是一个页面应用程序,这使得书签和使用浏览器选项卡很难实现。使用wicket,您可以选择创建一个页面应用程序或多个页面应用程序。如果您愿意,可以将页面设为可收藏。
  3. 在GWT中,创建自己的组件并不总是那么容易。在wicket,因为你正在使用原始的html,css甚至javascript制作自定义组件是非常灵活的。您甚至可以非常轻松地包装现有的jquery或dojo组件。
  4. 由于GWT涉及将java编译为javascript,因此只能使用GWT编译器模拟的java类。这可能是有限的。 Wicket是一个服务器端框架,您可以使用所需的所有Java。
  5. 使用GWT wicket,使用CSS和网页设计人员要容易得多。

答案 8 :(得分:0)

我是GWT的新手,但经过一些研究后,我发现GWT对于我的新Web应用项目是“适合的”,因为它的客户关注点让我感觉像是在编写桌面应用程序。今天,我们已经准备好在客户端运行应用程序的高性能客户端。我的应用程序可以完全用Java完成,OOP java类有机会为我们的团队构建我们自己的即用型框架。