最佳 GWT 小部件库? ?

向所有的 GWT 专家提问-哪个是最好的 GWT 小部件库? 为什么?

基于答案的列表:

- JsInterop:

91366 次浏览

SmartGWT 是一个很好的库,它有很多示例,但是用户界面没有那么光滑。对于用户界面 下一个 GWT是好的。

谷歌的默认库是最强大的库。

Ext GWT 增加了一些花里胡哨的功能,但除此之外,它与 Google 的功能类似。

GWT 本身就是一个很好的库。

我没有使用所有提到的,但可以推荐 下一个 GWT

这取决于你所说的“最佳”是什么意思。最佳外观? 最佳 API? 最适合扩展到你自己的定制需求?

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

那么,我为什么要做这个选择呢?似乎有太多的图书馆带着他们自己的,因为缺少一个更好的词,行李。要么你不得不全身心地投入到某个 MVC 框架中(它可能与你的其他代码库不完全兼容) ,要么你不得不采用某个人新奇的布局系统,或者你不得不接受这样一个事实: 你不能真正调试代码(因为它只是 JSNI 包装器)。

不要误会我的意思,GWT 孵化器并不完美... ... 那里的小部件有一定的流动性。对我来说,这是最好的选择。它给我带来了好处(但肯定不是完美的) :

  • 空气污染指数
  • 可扩展性
  • 外观和感觉(好吧,这有点弱,但这就是 CSS 的作用。)

所以... ... (对我来说)答案是:

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

(我应该补充一点: 我所指的“包袱”不是一件坏事。但是,如果您只想要一两个小部件,那么它可以提高完成工作所需的条件以及应用程序的外观质量。)

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

我会说,如果你只需要一些小部件,然后建立自己的。您可以从上面提到的库中复制粘贴一些概念。但他们都缺少一样东西。 我和他们大多数人一起玩过,然后抛弃了每一个人。

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

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

我们目前喜欢 GWT 马赛克小部件。我们已经与 ext-JS 合作过,并且在过去也推出过自己的小部件。Ext-JS 许可和批量对我们来说是个问题。我们不想做自己人。马赛克给了我们一个快乐的中间地带,我们喜欢认为这将是一个更快乐的中间地带,因为项目的成熟。

需要注意的一点是,从论坛上看,GWT-Ext似乎不会再被大量开发/维护(也许根本不会?).在他们的网站上,他们建议迁移到 SmartGWT

两个外景的优缺点比较。

我们使用 GWT Portlet构建了一个大型 HR 门户和几个较小的应用程序。该项目的重点不在于构建一组小部件,而在于创建一个简单的编程模型。

网址:

GWT Portlet 是一个用于构建 GWT (Google Web Toolkit)应用程序的免费开源 web 框架。它定义了一个非常简单、高效、强大的编程模型来构建好看的模块化 GWT 应用程序。

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

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

优点:

  • 相对容易安装和使用
  • 背后有相当规模的社区
  • 在线提供了大量的示例,所有示例都有相应的代码
  • 良好的小部件选择,涵盖了广泛的功能

缺点:

  • 对数据的格式和结构做出您可能无法适应的假设
  • 库只是一个 JSNI 包装器,这使得调试和扩展变得更加困难
  • 未来图书馆的支持与发展还不确定
  • 一些恼人的跨浏览器问题仍然存在(特别是布局)
  • 他们论坛上的搜索功能基本上是无用的

没有看到这个提到的 瓦丁(以前知道是 IT Mill Toolkit) ,但也许是因为它在技术上不完全是 GWT; 正如他们的 常见问题所说:

这与 GWT 有什么不同?

GWT 应用程序在浏览器中运行, 而 Vaadin 应用程序运行在 实际上,我们使用 GWT 作为 “渲染引擎” 这样你就可以把瓦丁和 GWT.

SmartGWT 速度很慢,缺乏示例,甚至连基本问题都很难找到答案,也就是说,在这个论坛上可以看到我所有没有回答的问题。 我要放弃聪明。

我已经使用 GWT 一年了。经过大量的研究,我决定将 GWT Mosaic 作为一个小部件库。.Mosaic 使用了一些 GWT 孵化器组件,比如 PagingScrollTable。.但是组合盒和表的功能对我们来说是不够的。.这就是为什么我们扩展了这些组件来添加所需的功能。

我认为,如果您只是想使用 Widgets,那么 SmartGWT 是可以的, 但是如果您想要扩展或修改小部件,就像我在 Gxt 调度器我认为 Ext-GWT 是一个更好的选择。

我的经验表明,第三方库总是存在许多问题。最好的方法-是使用知名的和制作精良的技术本身加上您自己的组件。编写和维护它们可能需要更长的时间,但 TCO 总是处于较低的级别。

第三方库经常会出人意料地打破你的计划,而且很难找到并修复问题的根源。

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

对我来说 EXT-GWT (又名 GXT)是目前可用的最好的库,我在6个月的项目中使用它,它对许多预定义的组件有很大帮助,比如网格、树... ..。 也很漂亮

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

之后,您可以使用这些库中的任何小部件(比如表、组合框、数据采集器等)并将其合并到您的项目中。如果您没有找到使用普通 GWT 的方法,那么尝试仅使用扩展组件。这样你就不会把自己和这些库绑定在一起,因为当你尝试做一些演示应用程序中没有出现的东西时,这些库总是很麻烦,它们包含很多 bug,而且它们的支持往好了说也很差。

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

谨慎使用其他库,我曾经使用过它们(现在仍然会做噩梦)。

Gwt-mosaic 的用户组似乎不太活跃,除了 wiki 片段之外,我找不到其他用户手册。Gwt-mosaic 向我介绍了两个有趣的工具。

1) gwt-mosaic 包含 Tibco 的 PageBus 的包装器,这是一个针对应用程序的 JS 部分(RPC 处理程序、小部件回调程序、小部件设置程序)的发布/订阅工具。这是 GWT 事件总线的替代方案。

2) gwt-mosaic 鼓励使用 Beans 绑定( http://code.google.com/p/gwt-Beans-Binding/)将数据绑定到 widget 并验证 widget。

Smartwt 对于完整的功能集和支持来说并不便宜。对于 appengine 来说,jar 太大了,除非删除不使用的主题文件。他们也在服务器端投资工程。

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

小部件孵化器看起来已经过时了。我相信豪华网格将随着新的小部件一起发布。

缺乏外观、绑定和验证标准妨碍了小部件库的互操作性。

不要使用任何他们!如果您计划开发一个大规模的应用程序,那么您应该考虑使用 MVP 模式。最好的实现是 MVP4G框架,它支持 GWT 代码拆分。这里有很多很好的例子,你可以从这里开始。最有价值的是 Mvp4GModule。

看看 SpiffyUI: Www.spiffyui.org

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

两件重要的事情——以及大多数库所缺少的——是单元测试和调试。这正是 GWT 的亮点所在。如果你使用一个基于普通 js 的库,你就失去了单元测试和调试项目的能力。作为一个 GWT 开发人员,您应该考虑这些要点,并使用一个不依赖或最少依赖 js 的库。

肯定不是 SmartGWT。它们的框架是臃肿的,具有非常不成熟的特性。他们有一百万个小部件,但是让他们为您的项目工作并不容易。数据源在很大程度上使管理数据的过程变得复杂,例如,为了获取数据源中的数据,必须经常使用 feth 并进行检查。虽然您可以缓存结果,但是询问它们并不总是那么容易。

RPC 是另一个薄弱和复杂的领域。在文档和论坛中有相互矛盾的信息。虽然文档会说,您应该很少使用自定义操作作为 ds 的一部分,他们的论坛会告诉您,这是完全没问题的。学会有效地使用这些工具是一个艰难的过程。

他们会夸大产品。例如,图表/分析软件包包含图表... 但是这些图表不会显示负值或者让您以任何有意义的方式操作轴标签。他们在论坛上公开回应关于这个问题的询问,态度是“那又怎样”。“我们不打算把它添加到3.0 x 上,尽管这是我们的卖点之一,它在我们的路线图上。”当他们卖给我包裹的时候,他们从来没有提到过我不能显示负值。真的吗?什么样的图表不需要显示负值?我能想到的只有一个-一个描述不满意的同构客户的数量。

远离这些家伙,去任何竞争对手的网站,例如 ExtJS,JQuery,甚至 quxdoo。有一些项目正在取得进展,实际上提供了一个很好的解决方案。

如果你曾经评估过这个产品,要非常小心。它看起来很不错,但是在项目使用它两周后,您就会开始明白我的意思了。小工具是半生不熟的,数据来源是极其复杂的,仅仅因为你支付了论坛支持,并不意味着你实际上会得到任何东西,除了讽刺,居高临下的回答,首先会让你觉得你错过了一些东西。你没有,他们一般都很傲慢。

祝你好运,如果你重视你的开发时间和可维护性,请远离这个产品。还有最后一件事。看看他们网站上的 MVC 例子。它实际上与 MVC 没有任何关系,除了标签上写着“ MVC”。他们会试图说服你,这样的框架是为缺乏经验的开发人员准备的,这样的概念在真正的编程中没有立足之地... ... 有点像那些 try catch 块。

我们已经做了两年多的 gwt 项目,我们坚持使用默认的小部件。我们制作了自己的开源库来自动填充默认的或自己的小部件扩展。请检查一下,它叫 GWT-Jet。它经过了很好的测试,因为我们在大型生产环境中使用它,我们希望它能够安全地生长。

看看这个组件库 引导程序这是一个 Bootstrap 的 gwt 实现。

添加新的一个: GWT-Bootstrap 引导程序:)

目前还没有稳定的释放,但很快就会有了。