Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GoogleWebToolkit(GWT)作为一个成熟的JavaWeb框架有意义吗?_Java_Gwt_Wicket_Web Frameworks - Fatal编程技术网

使用GoogleWebToolkit(GWT)作为一个成熟的JavaWeb框架有意义吗?

使用GoogleWebToolkit(GWT)作为一个成熟的JavaWeb框架有意义吗?,java,gwt,wicket,web-frameworks,Java,Gwt,Wicket,Web Frameworks,我对GWT作为我整个表示层的基础的可能性感兴趣 我很想知道是否有人尝试过这个方法,成功或失败,并能说服或阻止我尝试这个方法 GWT是相对较新的。随着代码库的增长,编译过程往往会变得有点慢。当我们使用它时,我们发现在更复杂的小部件的布局和呈现方面存在许多问题,并且仿真器的行为与实际服务器完全不同。另外,我们在从右到左的语言中遇到了i18n的问题 总而言之,GWT存在(通常?)年轻技术的问题。然而,它确实让某些事情变得非常简单,比如你命名的Ajaxing 我大约一年前在GWT工作。当时,这似乎是一个

我对GWT作为我整个表示层的基础的可能性感兴趣


我很想知道是否有人尝试过这个方法,成功或失败,并能说服或阻止我尝试这个方法

GWT是相对较新的。随着代码库的增长,编译过程往往会变得有点慢。当我们使用它时,我们发现在更复杂的小部件的布局和呈现方面存在许多问题,并且仿真器的行为与实际服务器完全不同。另外,我们在从右到左的语言中遇到了i18n的问题


总而言之,GWT存在(通常?)年轻技术的问题。然而,它确实让某些事情变得非常简单,比如你命名的Ajaxing

我大约一年前在GWT工作。当时,这似乎是一个好主意,但有一些警告:

  • 我在API的某些部分遇到了“gotcha”问题,这可能与这样一个事实有关:您在编写代码时就像在java中一样,而实际上您是在为一个类似java的单独编译环境编写代码,因此您做出了一些错误的假设(在本例中,将嵌套值传递到前端)。我想还有另外一个问题,那就是重写我的ant脚本以使用32位jvm进行gwt编译
  • 我花了一点时间试图调整外观——我们从未部署过一个已完成的项目,所以我不确定要达到专业水平需要做多少工作,但从逻辑上看,这似乎可以与调整swing界面相媲美。在视觉上,可能比html更笨拙
  • 因为ajax在最终产品中对您隐藏得很深,所以我担心如果性能不佳,我会怎么做
话虽如此,它似乎绝对值得玩玩,我的经历是很久很久以前的互联网时代,特别是考虑到它现在可能更成熟了。还值得指出的是,这是一种与大多数MVC框架开发GUI代码非常不同(且令人耳目一新)的方法,如果没有其他原因,那么值得一看


我的感觉是,如果你正在建设一个高负荷的专业网站,并且有非常严格的图形要求,那么GWT可能不是一个好的选择,否则就可以了。

我们已经为一个非常大的项目完成了这项工作,只要你知道它的局限性、优点和缺点,它就非常有效。有趣的是,演示是我们最轻松的事情,因为我们只是使用CSS对它进行蒙皮,就像其他HTML页面一样。该项目投入使用,运行完美,因此我没有任何抱怨

我从中发现的陷阱可以在这里找到:


您提到GWT将处理表示层。您是否也在用Java做业务层?如果是这样的话,我想向您指出,它正是这样做的:它是一个使用GWT呈现GUI组件的工具包,允许您完全用Java来完成应用程序。我认为它试图创造的术语是“服务器驱动的RIA”

我有PHP背景,但很快就喜欢上了这个工具包。但我最好不要再说什么,让你自己做决定


Disclamer:我确实在IT工厂工作,尽管这与我的观点无关。

关于这一点的一些好信息,请看这段视频:

我们开发了一个大型人力资源门户应用程序,整个演示层都在GWT中完成。后端是Spring。这一切都很好,用户界面也得到了用户的好评。非常重要的是,我们可以轻松地添加新功能和维护应用程序。我认为使用Javascript库做一些可比较和可维护的事情要困难得多

您确实需要某种客户端框架,否则您将最终编写一个(就像我们做的那样!):我们的应用程序是基于(免费和开源)构建的


我们使用HTML片段为不同部署的应用程序蒙皮,每个“页面”的布局存储在一个XML文件中。

GWT本身是一个UI增强库,而不是一个框架。如果你将它与谷歌应用程序引擎一起使用,那么你就有了一个基本的框架。(这是一个不同的故事,当我看到它时,我决定不把它包括在我们的架构中)

这是一个伟大的图书馆,我们用它做了一些了不起的事情。然而,由于它是一个库,所以它只有在您的体系结构允许的情况下才能发挥作用

就ANT而言,64位编译器没有问题

类路径

至于生成的代码,如果您想查看它,它就在您的战争中。(它也是开源的,因此您可以在那里查看。)

GWT在编译过程中所做的工作: 它为不同的浏览器集创建多个JS库副本(编译可能需要几分钟),您可以根据需要添加/删除这些副本。这减少了需要下载的JS包并提高了速度,因为它不需要那些讨厌的if(EI)This else if(FF)that。 但是,当您进行本地调试(至少在eclipse中)时,您不必等待,允许将其留给构建服务器(或者当您需要手动构建和部署(尼安德特人)时)

GWT的缺点。由于它是一个javascript客户端(几乎是纯粹的),您不能将它用于不支持它或不支持其中一个版本的事情。
因此,对于iPad和iPhone之类的产品,如果不使用额外的库来弥补这些差距(如mgwt),您可能会遇到一些问题。

听到这个消息,我很惊讶。你对Java技术的经验有多丰富?是的,我指的是一般的Java。我不确定您的问题是否是由于不熟悉Java的工作方式造成的。但听起来这项技术可能是造成这种情况的罪魁祸首。感谢您发出这面红旗。我肯定会谨慎地使用GWT