最好的GWT小部件库?

时间:2009-05-15 07:49:29

标签: java gwt

所有GWT大师的问题 - 哪个是最好的GWT小部件库?为什么?

根据答案列出:

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

27 个答案:

答案 0 :(得分:52)

不要将自己绑定到任何这些库。使用Vanilla GWT创建项目结构。特别是,使用MVP模式和事件总线。请参阅Google文章,了解如何使用GWT优化设计客户端应用程序:Building MVP apps

之后,您可以使用这些库的任何小部件(例如表格,组合框,日期选择器等)并将其合并到您的项目中。如果您没有看到使用vanilla GWT的方法,请尝试仅使用扩展组件。这样你就不会把自己束缚在这些库中,当你尝试做一些没有出现在演示应用程序中的东西时,这些库总是很麻烦,包含很多错误并且它们的支持最多也很差。

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

小心其他图书馆,我和他们一起工作过(但仍然做恶梦)。

答案 1 :(得分:43)

取决于“最佳”的含义。最好看的?最好的API?最适合扩展到您自己的定制需求?

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

那么,为什么我做出这个选择呢?似乎有太多的图书馆都有自己的,因为缺少一个更好的词,行李。要么你必须将整个hog潜入一些MVC框架(可能与你的代码库的其余部分不完全兼容),要么你必须采用某人新的布局系统,否则你必须忍受这样的事实:你不能真的调试代码(因为它只是JSNI包装器)。

不要误会我的意思,GWT孵化器并不完美......那些小部件有一些不足之处。在我看来,这是最好的选择。它给了我很好的(但绝对不完美):

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

所以...答案(对我来说)是以下几者的组合:

  • Stock GWT小部件( lot 自定义样式)
  • GWT孵化器表
  • 一些自制的小工具

(我应该补充一点:我所指的“行李”不是必然是一件坏事。但是,如果你只想要一两个小部件,它可以提高标准完成工作以及应用程序看起来有多好。

答案 2 :(得分:13)

请参阅此组件库GWT Bootstrap这是Twitter Bootstrap的gwt中的一个实现。

答案 3 :(得分:10)

单独使用GWT是一个非常好的库。

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

答案 4 :(得分:9)

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

答案 5 :(得分:8)

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

我同意jgindin GWT Incubator和GWT Mosaic是迄今为止最好的。

答案 6 :(得分:7)

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

<强>优点:

  • 相对容易设置和使用
  • 背后的体面社区
  • 网上有很多例子,所有这些都附有代码
  • 包含广泛功能的小部件选择良好

<强>缺点:

  • 对您可能无法容纳的数据格式和结构做出假设
  • Library只是一个JSNI包装器,这使得调试和扩展更加困难
  • 未来对图书馆的支持和发展尚不确定
  • 一些恼人的跨浏览器问题仍然存在(尤其是布局)
  • 论坛上的搜索功能基本上没用。 (这正在成为我的一个很大的烦恼&gt; _&lt;)

答案 7 :(得分:6)

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

答案 8 :(得分:5)

添加新的:GWT-Bootstrap:)

目前没有稳定版本,但很快就会发布。

答案 9 :(得分:4)

我的经验表明,第三方库总是存在很多问题。最好的方法 - 使用众所周知的良好技术本身以及您自己的组件。编写和维护它们可能需要更长的时间,但TCO始终处于较低的水平。

第三方图书馆经常会意外破坏您的计划。并且很难找到并解决问题的根源。

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

答案 10 :(得分:3)

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

答案 11 :(得分:3)

我认为如果您只是想使用Widgets,那么SmartGWT会很好, 但是如果你想像我一样扩展或修改小部件 Gxt Scheduler我认为Ext-GWT是更好的选择。

答案 12 :(得分:2)

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

RPC是另一个弱势和复杂的领域。文档和论坛中存在矛盾的信息。虽然文档会说你很少使用自定义操作作为ds的一部分,但他们的论坛会告诉你它完全没问题。学习如何有效地使用这些工具是最好的日子。

他们会过度使用该产品。例如,图表/分析包中包含图表......但这些图表不会显示负值,也不会以任何有意义的方式操纵轴标签。他们在论坛上公开回应有关此事的疑问,并表达了“耶和华”的态度。 “我们不打算将其添加到3.0倍,即使这是我们的卖点之一,它也在我们的路线图上。”当他们把包裹卖给我时,他们从未提到我无法显示负值。真?什么图表不需要能够显示负值?我只能想到一个 - 描绘不满的同构客户的数量。

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

如果您对此产品进行评估,请务必谨慎。它看起来不错,但是使用它的项目大约两周后,你会开始看到我的意思。小部件是半生不熟的,数据源非常复杂,只是因为你支付论坛支持,并不意味着你实际上除了嘲讽之外还会得到任何其他东西,居高临下的答案一开始会让你觉得你错过了什么。你不是他们通常非常傲慢。

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

答案 13 :(得分:2)

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

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

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

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

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

gwt widget孵化器看起来已被弃用。我相信豪华电网将与新gwt一起发布。

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

答案 14 :(得分:2)

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

答案 15 :(得分:1)

smartGWT很慢,缺乏示例,即使是基本问题也很难找到答案,即在这个论坛上看到我所有未回答的问题。 我正在倾销smartgwt。

答案 16 :(得分:1)

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

  

这与GWT有何不同?

     

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

答案 17 :(得分:1)

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

答案 18 :(得分:1)

我们目前喜欢GWT Mosaic个小部件。我们使用了ext-JS,过去我们已经推出了自己的小部件。 ext-JS许可和批量对我们来说是一个问题。滚动我们自己不是我们想要做的。马赛克为我们提供了一个快乐的中间立场,随着项目的成熟,我们认为这将是一个更加幸福的中间地带。

答案 19 :(得分:1)

我想说如果你只需要几个小部件,那就建立自己的小部件。您可以从所提到的库中复制粘贴一些概念。但他们都缺少一个或另一个。 我和他们中的大多数人玩过并且放弃了每一个人。

答案 20 :(得分:1)

Google的默认库是功能最强大的库。

Ext GWT增加了铃声和口哨声,但除此之外它与谷歌相似。

答案 21 :(得分:0)

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

答案 22 :(得分:0)

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

来自网站:

GWT Portlets是一个免费的开源Web框架,用于构建GWT(Google Web Toolkit)应用程序。它定义了一个非常简单的&amp;高效而强大的编程模型,用于构建外观精美的模块化GWT应用程序。

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

答案 23 :(得分:0)

two EXTs在这里与利弊的比较。

答案 24 :(得分:0)

查看SpiffyUI:www.spiffyui.org

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

答案 25 :(得分:0)

两个重要的事情 - 以及大多数图书馆错过的 - 是单元测试和调试。这是GWT闪耀的地方。如果您使用基于vanilla js的库,则可以放弃对单元进行单元测试和调试的功能。作为GWT开发人员,您应该考虑这些点,并使用没有或最小js依赖的库。

答案 26 :(得分:0)

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