对所有GWT专家的问题-那里是最好的GWT小部件库?又为什么呢
根据答案列出:
- 默认
- Sencha GXT
- 智能GWT
- 瓦丹
- GWT引导程序
- GwtBootstrap3
- 火箭GWT(无效)
- 榻榻米(无效)
- Errai框架
- GWT材质设计
JsInterop的排名:
对所有GWT专家的问题-那里是最好的GWT小部件库?又为什么呢
根据答案列出:
JsInterop的排名:
Answers:
不要将自己绑定到这些库中的任何一个。使用Vanilla GWT创建项目的结构。特别是,请使用MVP模式和事件总线。请参阅Google文章,以了解如何最佳地使用GWT设计客户端应用程序:构建MVP应用程序
之后,您可以使用这些库中的任何窗口小部件(例如表,组合框,日期选择器等)并将其合并到您的项目中。仅当看不到使用香草GWT的方法时,才尝试使用扩展组件。这样,您就不会将自己束缚在这些库上,而当您尝试执行演示应用程序中未出现的,包含许多错误且对它们的支持最多时,这总是很痛苦的。
如何查找小部件应遵循以下顺序:
与其他图书馆一起时,我与他们合作过(并且仍然做噩梦)。
取决于您所说的“最佳”。最好看的?最好的API?最适合扩展自己的自定义需求?
例如,我只是评估要在我们的应用程序中使用的表类。我们一直在使用GWT-Ext,但是它给我们带来了许多性能问题,并且很难以我们需要的方式调整表的大小。我非常接近GWT-Mosaic,但决定改用GWT孵化器中的小部件。
那么,为什么要做出这个选择呢?似乎有太多的图书馆都附带了它们自己的图书馆,因为缺少更好的说法,那就是行李。您要么全力投入某些MVC框架(可能与其余代码库不完全兼容),要么必须采用某人的新的有序布局系统,或者必须忍受一个事实:真正调试代码(因为它只是JSNI包装器)。
别误会我的意思,GWT孵化器并不完美……小部件的流通量很大。就我而言,这是最佳选择。它给了我很好(但绝对不是完美的):
所以...(对我来说)答案是以下各项的组合:
(我应该补充:我指的“行李” 不一定是一件坏事。但是,如果您只想要一个或两个小部件,则可以提高完成工作以及如何完成工作所需的标准。良好的应用程序外观。)
仅GWT就是一个很好的库。
我没有使用所有提及的内容,但是可以推荐Ext GWT。
提到的大多数库都不是开源的,甚至更糟:仅仅是JavaScript库顶部的包装器。GWT的强大功能在于该应用程序可在不同的浏览器上运行(因为专门为“大型”浏览器生成了代码)。这些JavaScript基础库可能会导致很多问题。
我同意jgindin GWT孵化器和GWT Mosaic是迄今为止最好的。
添加一个新的:GWT-Bootstrap :)
目前没有稳定的版本,但很快就会发布。
我的经验表明,第三方库始终存在许多问题。最好的方法-使用本身知名的和精湛的技术以及您自己的组件。编写和维护它们可能需要更长的时间,但是TCO始终处于较低水平。
第三方图书馆经常会意外地破坏您的计划。而且很难找到并解决问题的根源。
因此,我建议使用普通的GWT。
我认为SmartGWT很好,如果您只想按原样使用这些小部件,但是如果您想像我在Gxt Scheduler中那样扩展或修改这些小部件,我认为Ext-GWT是一个更好的选择。
对我而言,EXT-GWT(又名GXT)是当前可用的最佳库,我在6个月的项目中使用了它,它对许多预定义的组件(例如网格,树...)也有很大帮助。
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来说并不便宜。除非您删除不使用的主题文件,否则该罐子对于appengine来说太大了。他们也在服务器端投资工程。
我听说ext-gwt速度慢并且JS文件很大。
gwt小部件孵化器看起来已弃用。我相信豪华网格将随新的gwt一起发布。
外观,绑定和验证标准的缺乏阻碍了小部件库的互操作性。
绝对不是SmartGWT。他们的框架是肿的,具有半生不熟的性质。它们有上百万个小部件,但是要使它们适用于您的项目并不容易。数据源使管理数据的过程变得非常复杂,例如,为了获取数据源中的数据,您必须经常使用fecth并进行检查。虽然可以缓存结果,但查询它们并不总是那么容易。
RPC是另一个薄弱且令人困惑的领域。文档和论坛中存在矛盾的信息。尽管文档会说您几乎不应该将自定义操作作为ds的一部分使用,但他们的论坛会告诉您,这很好。学习有效使用这些工具是最好的日子。
他们将超额销售产品。例如,图表/分析程序包包含图形...但是这些图形不会显示负值,也不会让您以任何有意义的方式操作轴标签。他们以“是的,是什么”的态度在论坛上公开回答有关此问题的问题。“尽管这是我们的卖点之一,但我们并不打算将其增加到3.0倍,这是我们的路线图。” 当他们卖给我包装时,他们从没提到我不能显示负值。真?哪些图不需要显示负值?我只能想到一个-描述不满意的同构客户的数量。
远离这些家伙,然后转到任何竞争对手的网站,例如ExtJS,JQuery,甚至是quxdoo。那里有一些真正取得进展并提供良好解决方案的项目。
如果您曾经评估过该产品,请格外小心。看起来不错,但是使用它进行项目的大约两个星期,您就会开始明白我的意思。小部件半生半熟,数据源极其复杂,仅因为您为论坛支持付费,并不意味着您实际上会得到除snide之外的任何东西,屈尊的答案起初会让您觉得自己错过了一些东西。您不是他们通常很傲慢。
祝您好运,如果您重视开发时间和可维护性,请远离本产品。哦,还有最后一件事。在他们的网站上查看MVC示例。实际上,它与MVC无关,只是标签显示为“ MVC”。他们将试图说服您这种框架是针对没有经验的开发人员的,并且这种概念在实际编程中没有地位。
Google的默认库是功能最强大的库。
Ext GWT添加了花哨的功能,但除此之外,它类似于Google的功能。
我们目前喜欢GWT Mosaic小部件。我们已经使用了ext-JS,并且过去已经推出了自己的小部件。ext-JS许可和批量交易对我们来说是个问题。自己滚动不是我们想要做的。Mosaic为我们提供了一个快乐的中间立场,我们希望随着项目的成熟,这将是一个更加快乐的中间立场。
smartGWT运行缓慢且缺少示例,即使是基本问题也很难找到答案,即在此论坛上查看我所有未回答的问题。我正在倾销smartgwt。
我们使用GWT Portlet构建了一个大型的HR门户和一些较小的应用程序。该项目的重点不是在构建小部件的集合上,而是在创建一个简单的编程模型。
从网站:
GWT Portlet是一个免费的开源Web框架,用于构建GWT(Google Web工具包)应用程序。它定义了一个非常简单且高效的功能强大的编程模型,以构建美观的模块化GWT应用程序。
编程模型有点类似于为门户服务器(Liferay,JBoss Portal等)编写JSR168 portlet。“门户”是使用GWT Portlets框架作为库构建的应用程序。应用程序功能被开发为与每个可选的服务器端DataProvider松散耦合的Portlet。
我正在使用GWT一年。经过大量研究,我决定将GWT Mosaic用作小部件库。.Mosaic使用了一些GWT孵化器组件,例如PagingScrollTable。扩展了这些组件以添加所需的功能。
退房SpiffyUI:www.spiffyui.org
它不仅是一个小部件库,而且是复杂的UI / UX GWT框架。
单元测试和调试是两件重要的事情,也是大多数库所缺少的东西。这就是GWT大放异彩的地方。如果您使用基于Vanilla js的库,则可以放弃对项目进行单元测试和调试的功能。作为GWT开发人员,您应该考虑这些要点,并使用没有js依赖关系或最小js依赖关系的库。
我们从事gwt项目已有两年多了,我们坚持使用默认的小部件。我们制作了自己的开源库来自动填充默认库或我们自己的小部件扩展。请检查它,它叫做gwt-jet。自从我们在大型生产环境中使用它以来,它已经过很好的测试,我们希望它能随着时间的推移安全地增长。