最好的GWT小部件库?

所有的GWT大师的问题 – 那里是最好的GWT小部件库吗? 为什么?

根据答案列表:

  • 默认
  • Sencha GXT
  • 智能GWT
  • Vaadin
  • GWT-引导
  • GwtBootstrap3
  • 火箭GWT (不活动)
  • 榻榻米 (不活动)
  • ErraiFramework
  • GWTMaterialDesign

Инаконец- новоепоколениеоснованноенаJsInterop :

  • GWT +聚合物元素
  • GWT +聚合物
  • Angular和GWT
  • GWTMaterialDesign

不要将自己绑定到任何这些库。 使用Vanilla GWT创build您的项目的结构。 特别是使用MVP模式和事件总线。 请参阅谷歌文章,以了解如何使用GWT最好地devise您的客户端应用程序: 构buildMVP应用程序

之后,你可以使用这些库的任何部件(比如说一张桌子,一个combobox,一个dateselect器等等),并将它合并到你的项目中。 尝试只使用扩展组件,如果你没有看到使用vanilla GWT的方法。 这样你就不会把自己绑在这些库上,当你试图做一些没有出现在演示应用程序中的东西的时候总是很痛苦,包含很多错误,而且它们的支持最好也不好。

如何查找小部件应遵循以下顺序:

小心其他图书馆,我已经和他们一起工作(还有恶梦)。

取决于你的意思是“最好的”。 最好看的? 最好的API? 最适合扩展到您自己的自定义需求?

例如,我只是评估在我们的应用程序中使用的表类。 我们一直在使用GWT-Ext,但是它对我们来说有许多性能问题,而且很难按照我们需要的方式来调整表格大小。 我和GWT-Mosaic做得非常接近,但决定在GWT孵化器中构build小部件。

那么,我为什么做这个select呢? 似乎有太多的图书馆都有自己的,因为缺less一个更好的字眼,行李。 要么你不得不全身心投入到一些MVC框架中(这可能不完全与你的代码库相兼容),或者你必须采用某个人的新的布局系统,否则你必须忍受不了真的debugging代码(因为它只是JSNI包装)。

不要误解我的意思,GWT孵化器不是完美的…这些小部件有一定的stream量。 就我而言,这是最好的select。 它给了我很好的(但绝对不完美):

  • API
  • 可扩展性
  • 外观和感觉(嗯,这有点弱,但这就是CSS的用处。)

所以…答案(对我来说)是一个组合:

  • 股票GWT小部件(有很多自定义样式)
  • GWT孵化器表
  • 一些自制的小工具

(我应该补充一句:我所指的“包袱”并不一定是坏事,但是如果你只是想要一个或两个小工具,它可以提高工作完成的时间,以及如何完成工作好你的应用程序看起来。)

看到这个组件库GWT Bootstrap这是一个在Twitter Bootstrap gwt的实现。

GWT本身就是一个不错的图书馆。

我没有使用所有提到的,但可以推荐Ext GWT 。

我更喜欢香草GWT。 一些其他的API看起来很漂亮,他们的展柜真的展示了小部件,但是我总是发现性能不是最好的……当我说性能时,我的意思是更像响应时间。 我讨厌当一个应用程序感觉呆滞。

大多数提到的库都不是开源的,甚至更糟糕的:只是在JavaScript库上的包装。 GWT的强大之处在于,应用程序可以在不同的浏览器上运行(特别是因为“大”浏览器的代码生成)。 这些JavaScript底层库可能会导致很多问题。

我同意jgindin GWT孵化器和GWT马赛克是迄今为止最好的。

不是说这是“最好的”,但我最近在工作中一直在使用GWT-Ext 。 它有一些优点和缺点:

优点:

  • 相对容易设置和使用
  • 它背后的体面大小的社区
  • 大量的在线例子,所有这些都有附带的代码
  • 很好的select,涵盖了广泛的function

缺点:

  • 对您可能无法适应的数据格式和结构进行假设
  • 库只是一个JSNI包装器,这使得它更难debugging和扩展
  • 未来对图书馆的支持和发展是不确定的
  • 一些烦人的跨浏览器问题仍然存在(特别是在布局方面)
  • 在他们的论坛searchfunction本质上是无用的。 (这正在成为我的宠物> _ <)

不要使用它们中的任何一个! 如果你打算开发一个大规模的应用程序,你应该考虑使用MVP模式。 最好的实现是MVP4G框架,它支持GWT代码分裂。 有很多很棒的例子,你可以从头开始。 最有价值的是Mvp4GModules。

添加新的: GWT-Bootstrap 🙂

目前还没有一个稳定的版本,但很快就会有。

我的经验表明,第三方库总是存在很多问题。 最好的方法是使用知名的,技术精良的技术和自己的组件。 编写和维护它们可能需要较长的时间,但TCO总是处于较低的水平。

第三方图书馆经常会意外地打破你的计划。 而且很难find和解决问题的根源。

所以我build议使用普通的GWT。

我认为SmartGWT是好的,如果你只是想使用Widgets,但是如果你想扩展或修改Widgets,就像我在Gxt Scheduler中那样,我认为Ext-GWT是一个更好的select。

对我来说,EXT-GWT(又名GXT)是目前最好的图书馆,我在6个月的项目中使用它,它有很多预定义的组件,如网格,树木,帮助很多….它也很漂亮

SmartGWT是一个很好的库,它有很多例子,但用户界面并不那么光滑。 对于用户界面Ext GWT是很好的。

gwt-mosaic的用户组看起来并不是非常活跃,除了wiki片段之外,我找不到用户手册。 gwt-mosaic向我介​​绍了两个有趣的工具。

1)gwt-mosaic包含一个Tibco的PageBus包装器,它是你的应用程序的JS部件(RPC处理器,Widgetcallback,Widget设置器)的发布/订阅工具。 这是gwt的活动巴士的替代scheme。

2)gwt-mosaic鼓励使用Beans Binding(http://code.google.com/p/gwt-beans-binding/)将数据绑定到小部件并validation小部件。;

smartgwt对于完整的function设置和支持并不便宜。 除非您删除不使用的主题文件,否则这个jar对于appengine来说太大了。 他们也在服务器端进行工程devise。

我听说ext-gwt很慢,JS文件很大。

gwt小部件孵化器看起来不赞成。 我相信豪华电网将与新的gwt发布。

缺乏外观,绑定和validation标准阻碍了小部件库的互操作性。

绝对不是SmartGWT。 他们的框架臃肿,有一个非常半熟的性质。 他们有一百万的小部件,但是试图让他们为你的项目工作并不容易。 数据源以一种非常大的方式使数据pipe理过程变得复杂,例如,为了获得数据源中的数据,您必须经常使用fecth并进行检查。 虽然可以caching结果,但询问它们并不容易。

RPC是另一个软弱无力的领域。 在文档和论坛中有矛盾的信息。 虽然文档会说,你应该很less使用自定义操作作为ds的一部分,他们论坛会告诉你,它是完全正确的。 学习如何有效地使用这些工具是最好的日子。

他们将超卖产品。 例如,charting / analytics软件包包含graphics…但是这些graphics不会显示负值,或者让您以任何有意义的方式操纵轴标签。 他们在论坛上公开回应这个问题,并以“是啊,怎么样”的态度回答。 “我们不打算把这个增加到3.0x,即使这是我们的卖点之一,这是我们的路线图。” 当他们把包卖给我的时候,他们从来没有提到我不能performance出负面的价值。 真? 什么图表不需要能够显示负值? 我只能想到一个描述不愉快的同构客户数量的人。

远离这些人,然后前往任何竞争对手的网站,例如ExtJS,JQuery,甚至quxdoo。 有几个项目真的有了起色,并且提供了一个很好的解决scheme。

如果你曾经评估过这个产品,请小心谨慎。 它看起来不错,但是使用它的项目大约两个星期,你会开始看到我的意思。 小部件已经出炉了,数据源非常复杂,仅仅因为你支付了论坛的支持,并不意味着你实际上除了讽刺之外还能得到其他任何东西,居高临下的答案一开始会让你觉得你错过了一些东西。 你不是他们一般很傲慢

祝您好运,如果您重视您的开发时间和可维护性,请远离本产品。 哦,还有最后一件事。 看看他们的网站上的MVC例子。 除了标签读取“MVC”之外,它与MVC没有任何关系。 他们会试图说服你,这样的框架是没有经验的开发人员,这样的概念在真正的编程中没有地位…有点像试试catch块。

Google的默认库是function最强大的库。

外部GWT增加了花里胡哨的,但除此之外,它是类似于谷歌的。

我们正在喜欢GWT的马赛克小部件。 我们使用了ext-JS,过去我们已经推出了自己的小部件。 ext-JS授权和散装对我们来说是一个问题。 滚动我们自己不是我们想要做的。 马赛克给了我们一个快乐的中间地带,随着项目的成熟,我们认为这将是一个更加快乐的中间地带。

我会说,如果你只需要一些小部件,然后build立自己的。 你可以复制粘贴上述库中的一些概念。 但他们都缺乏一个或另一个东西。 我和他们中的大多数玩过,每一个都抛弃了。

有一点需要注意的是,从论坛GWT-Ext看起来它将不再被开发/维护太多(也许根本不?)。 在他们的网站上,他们build议迁移到SmartGWT 。

没有看到这个提到的, Vaadin (以前称为IT Mill Toolkit),但也许这是因为它不是技术上完全GWT; 正如他们的FAQ所说:

这与GWT有什么不同?

GWT应用程序在浏览器中运行,而Vaadin应用程序在服务器上运行。 我们确实使用GWT作为浏览器端的“渲染引擎”,所以可以将Vaadin和GWT结合起来。

smartGWT速度慢,缺乏实例,即使是基本问题也很难find答案,即在本论坛上查看所有未回答的问题。 我正在倾销smartgwt。

这两个EXT的优缺点比较。

我们已经使用GWT Portlet构build了一个大型HR门户和几个较小的应用程序。 该项目的重点不是build立一个小部件集合,而是创build一个简单的编程模型。

从网站:

GWT Portlets是用于构buildGWT(Google Web Toolkit)应用程序的免费开源Web框架。 它定义了一个非常简单且高效且function强大的编程模型,用于构build漂亮的模块化GWT应用程序。

编程模型有点类似于为门户服务器编写JSR168 portlet(Liferay,JBoss Portal等)。 “门户”是使用GWT Portlets框架作为库构build的应用程序。 应用程序function被开发为松散耦合的Portlets,每个都带有一个可选的服务器端DataProvider。

我正在使用GWT一年。 经过大量的研究,我已经决定GWT马赛克作为一个部件库..马赛克使用一些GWT的孵化器组件,如PagingScrollTable ..但combobox和桌子的function是不够的,这就是为什么,我们有扩展这些组件以添加所需的function。

看看SpiffyUI: http://www.spiffyui.org

它不仅是一个小部件库,而且还是一个复杂的UI / UX GWT框架。

两件重要的事情 – 大部分库错过 – 是unit testing和debugging。 这是GWT闪耀的地方。 如果你使用一个基于vanilla js的库,你可以放弃unit testing和debugging项目的能力。 作为一个GWT开发者,你应该考虑这些点,并使用一个没有或最小js依赖的库。

我们已经做了超过2年的gwt项目,我们坚持默认的小部件。 我们使自己的开源库自动填充默认的或者我们自己的插件扩展。 请检查它,它被称为gwt-jet 。 由于我们在大型生产环境中使用,所以经过了很好的testing,我们希望它能够安全地通过时间。