哪个 GWT 库最适合开发数据密集型应用程序
Posted
技术标签:
【中文标题】哪个 GWT 库最适合开发数据密集型应用程序【英文标题】:Which GWT library is best for development of a data intensive application 【发布时间】:2011-01-24 10:17:20 【问题描述】:我开始开发一个 GWT 应用程序,该应用程序将拥有 500 多个不同角色的用户,主要功能以 RPC 调用为中心,以观察服务器上的数据如何变化。想象一个观察每 20 秒变化一次的股票的系统。此外,用户还将查看每天生成的变化数据的图形和图表。
我查看了 SmartGWT 及其展示页面上的示例。我还尝试使用 smartgwt 构建应用程序的原型。到目前为止,我最大的担心是调试应用程序,它有时会在库的 javascript 端出现一些错误。我还没有接触过看起来很有希望的 Ext-GWT。
那么对于这种情况,您会推荐什么库?如果您想相对快速地开发一些东西,是否值得使用它们中的任何一个?另外我想知道这些库在处理图形和大型数据集(4 个表,每个表至少 100 行)方面是否良好(性能方面)。
我还计划使用 spring-security 的访问控制列表包来构建安全性,因为必须通过 Web 界面为用户分配角色。该软件包是否非常适合这一点,在使用这些技术时我必须做出哪些权衡?我想在第一次就把它做好,而不是以后必须重构或迁移到另一个库,因此非常感谢您的建议。
【问题讨论】:
【参考方案1】:GWT 2.1 引入了一组专为高效数据呈现而设计的新小部件。他们被称为cell widgets:
数据展示小部件(单元格 小部件)是高性能的, 由 Cells 组成的轻量级小部件。 例如列表、表格、树和 浏览器。 这些小部件经过精心设计 处理和展示非常大的集合 快速收集数据。 [..] 这种设计遵循享元模式,其中数据仅在需要时访问和缓存,并传递给享元 Cell 对象。单元格小部件可以接受来自任何类型数据源的数据。数据模型处理异步更新以及推送更新。当您更改数据时,视图会自动更新。
在我看来,在使用 GWT 进行开发时,尝试主要使用标准 GWT 组件总是一个好主意。它们更容易调试,并且比第三方库中的更轻。只有当它们还不够时,我才会查看您提到的一些库:SmartGWT 和 ExtGWT。
我同意 SmartGwt 如果您需要调试它可能会很痛苦。这是因为它主要是 JavaScript 库的包装器,所以有很多 JS 代码,你最终会调试它而不是 Java 代码。 ExtGwt 也基于 JavaScript 库 (extJS),但它不仅仅是一个包装器 - ExtGwt 组件是用 Java 重写的,因此它们更容易调试。
【讨论】:
感谢 piotr 的快速回复。单元格小部件看起来很有希望。虽然您知道小部件是否支持列过滤和排序,因为这对我的应用程序至关重要。 添加了列排序功能,但目前仅在 GWT 主干中(参见this 和this)。它计划与 GWT 2.2 一起发布,因此目前您只有在手动应用更改时才能使用它。如果涉及到排序,我不确定这是否受支持,但 IMO 编码不会那么难(这当然取决于您需要的复杂排序)。以上是关于哪个 GWT 库最适合开发数据密集型应用程序的主要内容,如果未能解决你的问题,请参考以下文章