smartGWT的缺点和优点

时间:2009-05-18 08:54:10

标签: gwt smartgwt

我几天后就开始研究smartGWT项目了,我想知道你有什么样的经历。为了避免使这成为对smartGWT或GWT或自由式讨论的抨击,我将为讨论提供一些指示:

  • 您觉得提供的小部件集成得很好吗?你特别想念任何小部件吗?
  • 在设计由框架引起的应用程序时,您遇到过任何问题吗?
  • 数据源集成是否与smartClient团队声称的一样有用?
  • 您使用哪些方法来使您的smartGWT应用程序持久化?例如Hibernate和smartGWT如何相互配合?

随意添加您认为值得指出的任何内容。

7 个答案:

答案 0 :(得分:21)

我想你已经有了答案,但我想补充一些可能影响你决定的评论:

优点:

  • SmartGWT是您可以找到的最强大的基于LGPL GWT的小工具库 。所以,如果你关心GPL的痛苦,这就是你的事情
  • 综合展示。
  • 性能非常好(只需查看Showcase)。
  • 论坛中非常活跃的社区。
  • SmartGWT扩展是另一个重要项目。例如,它支持基于GWT-RPC的通信,这不仅仅适用于SmartGWT(除非您实现自己的集成)。
  • SmartGWT人员的快速发展。只计算自SmartGWT项目出现以来的版本数量。

缺点:

  • 除了Showcase之外,我有时觉得通过在论坛中提问来找出有效的方法是唯一的方法。这导致了传播知识库。基于社区的wiki会更受欢迎。
  • 您的应用程序(着名的'sc'目录)必须使用大量静态文件,如果您的后端处于GAE状态(由于1000个文件限制),可能会导致问题。

答案 1 :(得分:14)

我们在上一个项目中使用了SmartGWT(持续时间:6个月)。以下是我个人的意见:

小部件非常棒!文档和API很详细。我们会再次使用客户端。

服务器端集成有效,但没有节省任何开发时间。相反,我们遇到了许多问题,我们必须找到解决方法。此外,由于新的API,没有其他开发人员可以在花费大量时间来维护项目以学习SmartGWT API。

一些缺点:

  • 您必须学习一个全新的API,而不是使用Hibernate和GWT-RPC或REST。

  • 数据集成是自动完成的,这是事实。但是如果你需要一些(也很少的)更改,你必须像Hibernate或JDO一样编写XML映射文件。所以好处消失了。

  • 论坛支持不好:您几乎每个已发布的问题都会得到答案。但这个答案往往没有帮助。他们会问你“为什么要这样做”。或者他们说:“使用我们的工具并用它做XYZ”三次,虽然我一次又一次告诉他们这个建议不起作用。在回答几个问题之后,最后的答案是:“你需要培训,购买我们的支持”。

  • 商业支持是昂贵的(费用大致与SmartGWT许可证一样多)。

我们可能不会再次使用SmartGWT的服务器端集成。

您可以在我的博客中阅读我的所有“经验教训”:

http://www.kai-waehner.de/blog/2010/12/11/lessons-learned-smartgwt-2-3-component-library-for-google-web-toolkit-gwt/

祝你好运, KaiWähner

答案 2 :(得分:8)

  

你觉得提供的小部件   整合得好吗?有没有   你特别想念的小部件?

你可以创建任何错过的小部件,没有一个框架可以提供你想要的一切。小部件非常容易扩展。

  

数据源集成是否与smartClient团队声称的一样有用?

数据(JSON / XML)可以由servlet服务提供,并且它们可以被理解 窗口小部件。

  

您使用哪些方法来使您的smartGWT应用程序持久化?例如效果如何   Hibernate和smartGWT互相玩耍?

在GWT的后端servlet服务中,您可以使用Java中的任何持久层将数据保存在存储中。 Hibernate可以和普通的java app一样使用。

答案 3 :(得分:6)

您觉得提供的小部件是否集成良好?你特别想念任何小部件吗?

是。小部件具有一致的API并且可以很好地协同工作。

数据源集成是否与smartClient团队声称的一样有用?

这个IMO是他们最强大的功能之一。一旦开始使用他们的数据源API,您就会意识到获得功能齐全的CRUD屏幕所需的代码很少

您使用哪些方法来使您的smartGWT应用程序持久化?例如Hibernate和smartGWT如何相互配合?

Hibernate开箱即用的SmartGWT EE版本。用LGPL版本使用Glead工程井

答案 4 :(得分:4)

我认为SmartGWT有很多很棒的小部件,但是价格却很高。 创建一个简单的基于SmartGWT的项目,并观察页面加载的文件数量。 我认为,这完全违背了像GWT这样的理想。虽然SmartGWT对于截止日期的人来说可能是一个不错的选择,但如果你想要原始性能,请远离它。 HTTP请求的数量将简单地终止您的应用程序。

答案 5 :(得分:3)

  • 在设计由框架引起的应用程序时,您遇到过任何问题吗?

是。当我结合谷歌Eclipse插件,SmartGWT,GWT 1.6.4和Wicket时,gwt编译器会发出错误的javascript。糟糕的javascript,我的意思是javascrip在webkit或firefox中不起作用。在我从Eclipse项目中完全删除它并重新启动Eclipse之前,我无法获得良好的javascript。因此,这种组合不起作用,我最终在另一个项目中单独构建了SmartGWT。另一个问题是智能客户端似乎想要在css意义上控制整个页面。因此,集成的SmartGWT模块都搞砸了,因为样式没有被正确隔离。您的里程可能会有所不同。

就个人而言,如果你只使用SmartGWT并且一切都很好,那么如果你尝试混合它,那么我的结果是灾难性的。所以,我不再使用它了。

答案 6 :(得分:2)

正如与上述提到Wicket问题的海报相对照的那样,SmartClient论坛(forums.smartclient.com)报告了SmartGWT与各种其他技术的成功整合。这张海报的问题听起来像1)导致错误JavaScript的GWT错误和2)SmartGWT和Wicket之间的CSS命名冲突,可能都不是框架的错误。所有SmartGWT的样式名称都可以通过皮肤系统重命名,以解决任何此类冲突。