【问题标题】:Questions on GWT and other "Web Application Frameworks"关于 GWT 和其他“Web 应用程序框架”的问题
【发布时间】:2012-04-27 18:20:39
【问题描述】:

我必须开发一个带有数据库连接的 Web 应用程序。于是我查了一下维基百科的"Web application comparison"

在这里,我主要寻找基于 Java 的框架。第一个让我感兴趣的是“GWT”。但是有些地方我不清楚。

  1. 该页面不包含有关 GWT 是否使用 MVC 模式的任何信息。是吗?

  2. 此外,它没有说明推或拉功能。那么GWT用的是什么?

  3. 在 “DB 迁移框架” 上写着,“通过 java”。这是否意味着我可以使用任何可以通过 Java 连接的数据库?

  4. 选择 GWT 来实现一个用于公司网络的带有数据库连接的基于 Web 的应用程序是否是一个合理的决定?或者有什么论据可以让我考虑任何其他框架?

  5. 我最初是一名 .Net (C#) 开发人员,我还听说过 .NET “StockTrader” 示例应用程序。与 GWT 相比,利弊是什么?还是那两个不同的东西?

如您所见,我对这件事完全陌生,如果这个问题没有得到解决,我将非常感激,因为它是关于形成一种观点。我对其他框架的任何意见或建议持开放态度。

您好, BC++

【问题讨论】:

  • 4.非常主观,选择实际上取决于您的应用程序需要做什么以及如何做。对于位于数据库顶部的沼泽标准 CRUD 应用程序,我推荐 Grails。如果您需要与完整的企业应用程序集成,那么在接缝顶部的极端 GWT 的另一端是很好的。但是,请注意,GWT 调试起来确实很痛苦。
  • 如果您没有任何强烈的 RIA 导向需求,那么您没有理由不能使用您的知识并使用 Asp.net(无论是否为 MVC)来实现。在 .net 中连接数据库有什么问题?

标签: java gwt comparison


【解决方案1】:

我想补充其他答案,因为 GWT 主要是一个客户端库。您可以通过 GWT-RPC 或 REST 与服务器通信。就 MVC 而言,许多 GWT 库中都有这些。

提到的一个是 Smart GWT,但是,我自己不会推荐这个。这样做的原因是 Smart GWT 是 Javascript 对象的瘦包装器,因此 GWT 编译器不会做很多优化工作,这通常意味着你的代码下载比用 java 编写的库要大并编译下来。

如果您正在寻找基于 GWT 的库,我建议您查看 Ext GWT。 Ext GWT 有一个丰富的小部件库,其中支持 MVC,并且是纯 java 的。我已经使用过它,虽然我遇到了问题,但我发现它比 SmartGWT 更容易处理。如果您正在寻找接近纯 GWT 的体验,我可以建议将 Spring Roo 作为起点。

在 UI 开发方面,您有几个选择,您可以在 GWT 中使用纯 JAVA 开发,使用 GWT 的 UI Binder 功能,或者创建 HTML 并添加 GWT 组件。从性能或可维护性来看,我不确定上述任何一项是否真的是“最佳”方式。

在数据库支持方面,GWT 客户端不支持远程 RDBMS,因为这通常在服务器端完成,您可以使用服务器端代码可以支持的任何数据库。您可以使用 GWT 的 HTML5 存储 API 的实验性实现,当然前提是您计划在 HTML 5 浏览器中运行。

我认为整个事情都取决于你想要做什么。我不一定会使用 GWT 来使用它,但它肯定有助于解决某些问题,因为您可以使用强类型语言进行开发并处理此类数据类型。

【讨论】:

  • 我在开发了六个 GWT 项目后的个人意见:如果您在 Internet 上并且需要较短的下载时间(但它在 Intranet 上的作用就像魅力一样),请远离 SmartGWT(或类似的);将 UI Binder 与纯 HTML/CSS/CSS 布局管理器混合使用会使事情变得更容易。
【解决方案2】:

首先,澄清一下:GWT 主要是一个 UI 库——也就是说,你用 Java 编写你的界面,它把它翻译成 JavaScript,你可以在浏览器中运行它。也就是说:

  1. 您使用的模式独立于库。如果您使用 GWT eclipse 的项目创建器,它会将您的项目拆分为三个包(客户端、服务器和共享)...您可以从那里获取。

  2. GWT 通常使用池化模型,客户端向服务器请求数据。 You can however try some pushing.

  3. 服务器端代码只是 Java,不涉及 GWT。您可以在服务器上执行任何“java”操作,然后将其发送到您的客户端代码。

  4. 如果您在公司 Intranet 上使用它,您可能需要考虑像 SmartGWT 这样的完整框架,而不是纯 GWT 实现。考虑到您遵循预期的模型,它们为您提供更多工具和更快的开发。

作为旁注,值得一提的是,您可能希望像往常一样使用纯 HTML/CSS 开发界面,然后只使用 GWT 添加动态小部件或 Ajax 调用。在 GWT 中构建您的整个界面(从头开始)通常是一个坏主意,从性能角度来看...您可能会遇到很多问题来按照您真正想要的方式定位。

【讨论】:

    【解决方案3】:

    GWT 主要专注于 Web 应用程序的 UI 层,使创建和调试 HTML/Javascript 层变得容易,因为您使用 Java 对其进行编码并使用所有现有的 Java 工具。

    GWT 本身并不是一个解决方案。您将需要添加其他框架来构建完整的应用程序。例如,您可以考虑将它与 Guice 和 JPA/Hibernate 一起使用。你也可以使用 Spring。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 2015-08-18
      相关资源
      最近更新 更多