【问题标题】:Vaadin vs jQuery UIVaadin 与 jQuery UI
【发布时间】:2012-08-02 15:34:38
【问题描述】:

我正在开始一个新的 Java 项目,在我看来,最流行的 UI 技术是 jQuery UI 与 Vaadin(或 GWT)。

是否有关于如何选择最合适的 UI 框架的指南,可以在此处指出的任何优点和优点。

例如,使用 Vaadin 就像开发一个桌面应用程序,与开发 Java Swing 应用程序相当,这与使用 jQuery 不同。

但是,如果您对此有任何其他想法,我将不胜感激。

谢谢。

【问题讨论】:

    标签: jquery vaadin


    【解决方案1】:

    我不知道 Vaadin,我知道 Java,在 GWT 中编程过一点,我对 jQuery 非常了解。所以这是我的 2 美分:

    底线是 - 我发现使用纯 HTML/jQuery 开发客户端 GUI 要容易得多。

    1. GWT 承诺支持所有浏览器,jQuery 也支持。
    2. GWT 使您能够使用熟悉的语言 (java) 而不是学习新的语言 (jQuery) - 在这里我们可以讨论,但如果您也熟悉 jQuery,那么这并不是真正的优势,如果不是,那么我认为学习 jQuery 比学习 GWT 框架容易得多。
    3. 我认为 GWT 为项目增加了很多不必要的复杂性(新的编译器、新的 SDK 集、新的错误、新的调试方式)。
    4. 有很多很好的调试 javascript/ajax 的工具,但在使用 GWT 时,您大多无法使用它们。您将不得不使用可能有点麻烦的 Eclipse 调试机制。
    5. 在 GWT 中部署更改需要比常规 HTML/javascript 项目更多的时间,这意味着更长的开发时间。
    6. 如果您在应用程序中使用另一个 FW(如 Spring、Hibernate),将它们与 GWT FW 混合可能会造成编码/维护地狱(我说的是经验)。

    就像我说的,我不知道 Vaadin,所以我不能对此发表评论,但我强烈建议你至少给 jQuery 一个机会。

    【讨论】:

    • 谢谢,我非常了解 jQuery,并且还在学习 Vaadin,我同意你所说的但 Vaadin 应用程序 - 在我看来 - 看起来比 jQuery 应用程序更流畅和更好。在这里我要问的是不值得额外的复杂性。
    • 就像我说的我不太了解它,所以我不能就此争论,但请考虑开发和维护时间,看看是否值得权衡。还要考虑到 jquery 社区很大,这意味着解决问题更容易,如果您需要新的功能,可能已经有人为此编写了插件。
    • 我不喜欢这类 FW 的主要原因是它们从你手中夺走了控制权,但这只是我 :)。此外,试着弄清楚偏离他们的模板有多容易/难(即,替换按钮图像、更改布局等)。
    • Vaadin 提供了设置组件应该具有的 CSS 类的能力 - 在 Java 代码端完成 - 并且在应用程序 CSS 文件中,您可以以适当的方式对其进行样式设置。我没有深入研究它,但对我来说这似乎是很好的整合。
    • 如果您正在考虑纯客户端方法,您将希望使用JAX-RS 服务器端。考虑使用backbone.jshtml5boilerplate 来简化您的客户端开发。
    【解决方案2】:

    jQuery UI 级别太低,不能单独使用(我不会那样做,它不会解决你的 UI 问题),你看到 twitter bootstrap 可以做什么吗?它拥有 jQuery UI 基本上拥有的所有东西和许多常用的插件/组件 - 它是构建的实际框架,并且只有 UI 框架,如果我在 Web 上开发一些东西,至少几年后我将使用它。 (响应式设计的可能性等;) - 只是指出这个观点,即使你没有将它包含在你的问题中:http://twitter.github.com/bootstrap/

    关于 vaadin 和 GWT,我作为一个已经有经验的 web 程序员不觉得需要“桌面应用程序类型的 web 编程”,它只会让我更加困惑,所以我不会使用它们,直到我制作某种“桌面”软件外观”页面到网络。 (顺便说一句。如果它们与摇摆类似,它们将是一场噩梦,但就像说的那样 - 没有使用过,因为我不需要它们。)。

    【讨论】:

    • 当然,应用程序的性质在这里应该是一个重要的决定因素。我喜欢 twitter bootstrap,看起来不错,但是我只有时间使用现成的组件来解决业务问题,而没有时间扩展框架以使其看起来更好。
    【解决方案3】:

    我喜欢 Vaadin 的地方在于它可以处理整个客户端的内容以及客户端和服务器之间的通信(保持 UI 刷新等等)。正如您已经提到的,这就像编写 Swing 应用程序一样。 Vaadin 为您提供了一堆组件,并且可以使用 GWT 小部件进行扩展。它仍然具有适应性。

    您不必关心使用 Vaadin 的 HTML 和 JavaScript,因此您可以完全专注于开发您的应用程序。

    我希望我的观点可以帮助你。

    【讨论】:

      【解决方案4】:

      如果你比 Java 更了解 JavaScript 和 jQuery(很多),我建议你使用 jQuery UI。否则,我建议您使用 vaadin。两种框架都有其优点和缺点,您是否更喜欢其中一种在很大程度上取决于个人偏好(例如,对类型化/非类型化语言的偏好)。

      首先,我认为这两个框架都有一个大社区和很多插件。到目前为止,我总能找到我工作所需的附加组件。

      vaadin 的一些优点:

      • 您可以为您的 RIA 使用一种语言 (Java)
      • 开发是类型安全的 -> 减少错误的主要来源
      • 您可以像开发桌面应用程序一样开发您的应用程序
        • 不必处理客户端代码(JavaScript、jQuery)
        • 不必处理客户端-服务器通信 (AJAX)
      • 更容易编写安全的应用程序,因为整个 webapp 状态都存储在服务器上(客户端操作是无用的)
      • 您可以直接在 IDE 中调试整个代码
      • 使用 Java Persistence API(hibernate 和 co.)以面向对象的方式访问您的数据库

      vaadin 的一些缺点:

      • 项目的初始设置(使用 webapp 重新加载脚本、调试器设置)比简单的 php/javascript 项目需要更多时间
      • 部署时间稍长(重新加载 webapp 大约 5 秒)
      • 要使用外部 JS 组件,您需要先编写 Java 包装器;但这并不难(见https://vaadin.com/blog/-/blogs/vaadin-7-loves-javascript-components
      • Vaadin 是一个在后台使用 GWT 的高级框架。因此,在 vaadin 的组件中调整特定细节并不像在基于 JavaScript 的 UI 框架中那样容易

      【讨论】:

        【解决方案5】:

        在 Vaadin 中创建 UI 似乎比在 javascript + HTML 中创建 UI 简单得多——无论框架如何。

        【讨论】:

          猜你喜欢
          • 2014-09-13
          • 2013-12-11
          • 1970-01-01
          • 2012-12-25
          • 1970-01-01
          • 2022-12-29
          • 2017-03-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多