几天后我将开始一个 smartGWT 项目的工作,我想知道你有什么样的经历。为了避免使这成为对 smartGWT 或 GWT 的抨击或自由式讨论,我将为讨论提供一些指导:
- 您觉得提供的小部件集成良好吗?有没有你特别想念的小部件?
- 您在设计应用程序时是否遇到过由框架引起的问题?
- 数据源集成是否像 smartClient 团队声称的那样有用?
- 您使用什么方法使您的 smartGWT 应用程序持久化?例如,Hibernate 和 smartGWT 相互配合如何?
随意添加您认为值得指出的任何内容。
我想你已经有了答案,但我想补充一些可能会影响你决定的评论:
优点:
缺点:
我们在上一个项目中使用了 SmartGWT(持续时间:6 个月)。以下是我个人的看法:
小部件真的很棒!文档和 API 很冗长。我们将再次使用客户端。
服务器端集成有效,但没有节省任何开发时间。相反,我们遇到了很多问题,我们必须找到解决方法。此外,由于新的 API,没有其他开发人员可以在投入大量时间学习 SmartGWT API 的情况下维护项目。
一些缺点:
您必须学习全新的 API,而不是使用 Hibernate 和 GWT-RPC 或 REST。
数据集成是自动完成的,这是真的。但是,如果您需要一些(也很少)更改,则必须像使用 Hibernate 或 JDO 一样编写 XML 映射文件。所以福利没了。
论坛的支持很糟糕:几乎每个发布的问题都会得到答案。但这个答案往往无济于事。他们会问你诸如“你为什么要这样做”之类的问题。或者他们说:“使用我们的工具并用它做 XYZ”三遍,尽管我一次又一次地告诉他们这个建议不起作用。在回答了几个问题后,最终答案是:“您需要培训,购买我们的支持”。
商业支持非常昂贵(成本大约与 SmartGWT 许可证一样多)。
我们可能不会再使用 SmartGWT 的服务器端集成。
你可以在我的博客上阅读我所有的“经验教训”与优点和缺点:
最好的问候, Kai Wähner
您觉得提供的小部件集成良好吗?有没有你特别想念的小部件?
您可以创建任何错过的小部件,没有一个框架可以提供您想要的一切。小部件非常可扩展。
数据源集成是否像 smartClient 团队声称的那样有用?
数据 (JSON/XML) 可以由 servlet 服务提供,并且它们可以被小部件理解。
您使用什么方法使您的 smartGWT 应用程序持久化?例如,Hibernate 和 smartGWT 相互配合如何?
在 GWT 的后端 servlet 服务中,您可以使用 Java 中的任何持久层将数据持久保存在存储中。Hibernate 可以和普通的 java 应用程序一样使用。
您觉得提供的小部件集成良好吗?有没有你特别想念的小部件?
是的。这些小部件具有一致的 API,并且可以很好地协同工作。
数据源集成是否像 smartClient 团队声称的那样有用?
这个 IMO 是他们最强大的功能之一。一旦你开始使用他们的 Datasource API,你就会意识到获得一个功能齐全的 CRUD 屏幕只需要很少的代码
您使用什么方法使您的 smartGWT 应用程序持久化?例如,Hibernate 和 smartGWT 相互配合如何?
Hibernate 在 SmartGWT EE 版本中开箱即用。使用 Glead 的 LGPL 版本效果很好
我认为 SmartGWT 有很多很棒的小部件,但是价格却很高。创建一个简单的基于 SmartGWT 的项目并观察页面加载了多少文件。我认为,这完全违背了 GWT 之类的理想。虽然 SmartGWT 对于在截止日期前的人们来说可能是一个不错的选择,但如果您想要原始性能,请远离它。HTTP 请求的数量只会杀死您的应用程序。
是的。当我结合 Google Eclipse 插件、SmartGWT、GWT 1.6.4 和 Wicket 时,gwt 编译器会发出错误的 javascript。我所说的糟糕的 javascript 是指在 webkit 或 firefox 中不起作用的 javascrip。在我将它从 Eclipse 项目中完全删除并重新启动 Eclipse 之前,我无法获得好的 javascript。所以,这种组合是行不通的,我最终在另一个项目中单独构建了 SmartGWT 部分。另一个问题是 Smart 客户端似乎想要在 CSS 意义上控制整个页面。因此,集成的 SmartGWT 模块全部搞砸了,因为样式没有正确隔离。你的旅费可能会改变。
就个人而言,如果您只使用 SmartGWT 并且对于所有事情,那么一切都很可能会很好,但是如果您尝试混合使用它,那么我的结果是灾难性的。所以,我不再使用它了。
正如上面提到 Wicket 问题的发帖人的对立面,SmartClient 论坛 (forums.smartclient.com) 有成功将 SmartGWT 与各种其他技术集成的报告。这张海报的问题听起来像 1) 导致错误 JavaScript 的 GWT 错误和 2) SmartGWT 和 Wicket 之间的 CSS 命名冲突,可能不是框架的错。SmartGWT 的所有样式名称都可以通过换肤系统重命名,以解决任何此类冲突。