50

我在 Wicket 和 Vaadin 之间纠结。我正在启动一个微型 isv,需要选择 Web 框架。我已将选择范围缩小到 Wicket 和 Vaadin。我使用了这两个框架,我都喜欢它们。但是我需要做出选择。

如果我选择 Vaadin:

  1. 我不必担心外观和感觉。它带有漂亮的主题。
  2. 我将使用非常擅长的 Java 进行所有编程,而不必花时间破解不太擅长的 CSS。
  3. 我需要的大多数业务应用程序组件都是开箱即用的,包括桌面布局、工具提示、键盘快捷键、带有可拖动和可折叠列的表格等等。

但是,如果我采用 Vaadin 方式:

  1. 我将失去以声明方式创建 UI 的能力。
  2. 如果浏览器不支持 JavaScript,我将没有后备功能 - 例如大多数非 Webkit 移动浏览器。
  3. Vaadin 公司正在销售一些组件——例如 JPAContainer,所以我不确定该公司是否会致力于提供完整的开源框架。商业利益永远是第一位的。
  4. Vaadin 应用程序将主要用于 Intranet。它们不太适合具有 Web 外观和感觉的 Internet。

如果我走 Wicket 方式:

  1. 我将不得不对我的应用程序进行样式化,而且我几乎无法为它们提供桌面外观。

有什么建议吗?任何对这两种框架都有经验的人请告诉我优缺点以及您是如何做出决定的。

4

7 回答 7

33

我想我已经为这两个框架投入了一些时间。我真的很喜欢这两者,因为它们将类似于 Swing 的编码带入了 Web 开发。而且我不知道对我来说更容易的(虽然有点击但我不喜欢速度模板的东西)

是的,存在差异。

我不必担心外观和感觉。它带有漂亮的主题

是的,但每家严肃的公司都会以不同的方式设计其应用程序(除非您正在制作原型)

我将用非常擅长的 java 进行所有编程,而不必花时间破解不太擅长的 css

那么 Vaadin 会“更好”。

我将失去以声明方式创建 UI 的能力。

这样做有什么好处?(顺便说一句:您可以在 groovy 中编写声明性代码;-))

但是没问题。我知道你的意思:如果你能努力让一个单独的设计师比wicket '更好'。

我几乎不能给他们一个桌面的外观和感觉。

为什么不?或者你在这里是什么意思?Wicket 支持 ajax,并且有一些组件支持不错的“类似桌面”的东西(ajaxlink、lazycomponent、自动完成、进度条,请参阅 wicket 的东西 + 扩展)。好的,对于任何更复杂的组件,您必须使用 javascript 编写代码但是顺便说一句,您是否知道您甚至可以在 wicket 中使用 GWT

一些小经验:

Vaadin 在编码时肯定更快(没有 css、html 的东西)。但是,如果您进行生产,请记住,编程的简易性可能会以客户端的性能为代价:例如,如果您使用“错误”的布局,例如水平/垂直布局,...大量使用 javascript 可能会减慢关闭旧浏览器。

但 Vaadin 并不慢!使用适当的布局,例如 CssLayout 或 FastLayout,旧浏览器也可以提供它。(虽然如果你使用 CssLayout 你的编码风格真的很像检票口。)

Vaadin 的一个问题是它有点难以分析,因为您看不到客户端需要所有 CPU 的位置,并且嵌套的 div 获得了神秘的 id 名称。

Wicket 的一大优点是它的warp persist 集成

(Guice 可以集成在 Vaadin 和 Wicket 中)

使用 Vaadin 测试 UI 应该很容易(尽管我没有找到单元测试的东西)并且使用 wicket非常容易。

最后但并非最不重要的一点是,与 wicket 相比,在 Vaadin 中创建列表/表格非常容易。

于 2010-09-07T17:11:06.377 回答
12

我与 Wicket 进行了广泛的合作,但我对 Vaadin 没有任何经验,所以这可能(有点)有偏见。

出于显而易见的原因,我推荐 Wicket,但您可能感兴趣的是 Wicket 的开放性。正如 Gweebz 正确指出的那样,Wicket 使用基本的 HTML 标记作为其基础,因此任何结构或外观上的更改通常都很容易实现。

就我个人而言,我真正喜欢检票口工作的一件事是前端表示和数据后端之间的流程,我们已经实现了 Spring 和 JPA/Hibernate,这意味着前端的任何更改都可以转换回数据库得益于 Wickets 基于模型的架构,只需一行代码。

同样,对于 Vaadin 从未使用过它,我不能说太多,但如果您正在寻找架构开始,我也建议您看看 GWT。

于 2010-08-25T07:14:38.750 回答
10

(接第一个 Wicket 相关答案中的评论)

Vaadin 和 Wicket 之间的主要区别在于 UI 组合和客户端代码的编写方式。使用 Vaadin,您通常可以在没有任何模板或 HTML 的情况下编写您的 UI,并且您会得到一个开箱即用的时尚、完全 Ajax 化的 UI。但是,如果您更喜欢模板方法,只需使用 CustomLayout 即可。

客户端编码很少需要,但是当你使用基于 Java 的 GWT 时,它比手动编写 Javascript 要好得多。此外,使用 GWT,您可以自动获得跨浏览器兼容的解决方案,而不必自己处理这些问题。

在比较框架时,您还应该查看社区活动和文档。有了 Vaadin,这两点都非常出色。另请注意目前包含 100 多个非常有用的 UI 组件和其他插件的 Vaadin 目录。

于 2010-09-01T22:17:35.113 回答
8

我对每种方法的经验有限,但我更喜欢 Vaadin。它让我对正在开发的 Web 应用程序有了更丰富的体验。卖给我们的主要好处是围绕我们的 UI 类编写单元测试是多么容易,确保组件在以预期方式交互时正确运行。Wicket 也可以做到这一点,但根据我的经验,这更加困难。

我还将提到任何一个框架都需要一些样式。Wicket 以普通的旧 HTML 开始,而 Vaadin 默认以类似 MacOSX 的主题开始,但几乎您编写的任何 Web 应用程序都需要至少进行一些自定义。考虑到这一点,自定义 Wicket 应用程序的 CSS 比 Vaadin 容易得多,原因很简单,您可以控制标记。Vaadin 对您隐藏标记并生成具有奇怪 ID 和结构的元素,因此更难自定义外观。在做出决定时请记住这一点。

于 2010-08-24T17:57:00.247 回答
5

我目前正在与 Wicket 合作,我曾与 Vaadin 合作过。我的观察会很短:

  • Vaadin 有权获得自由,但 IMO 并不像那样美丽。如果你需要支持、帮助和文档来解决你遇到的那些痛苦和棘手的问题,那么你就完蛋了,因为与 Apache Wicket 相比,你没有那么好的文档/社区。Vaadin 有人可以帮助您,但您必须为此付费。
  • 要在 wicket 中编程,您需要成为一名强大的程序员。Vaadin 还需要良好的 Java 知识,但如果您愿意,您可以轻松地编写一些意大利面条式代码(只是说,不做..);
  • Apache Wicket 真正将 Web 技术(Javascript、HTML 等)与框架技术 (Java) 分开。Vaadin 也尝试这样做,但 IMO 在这方面并不那么优雅和透明。

除此之外,我们正在讨论两种不同类型的框架,两种不同的方法,它们各有利弊,我建议您搜索和比较,看看什么真正适合您的需求。

编辑:哦,关于外观和感觉,例如你总是有Wicket Bootstrap

于 2016-02-01T09:59:38.417 回答
4

另请注意,即使 Vaadin 基础框架是免费的,但对于某些附加功能,您可能需要购买扩展。

前 - 如果您需要集成一个好的图表解决方案,例如 Highcharts,您必须付费并购买 vaadin 图表扩展(即使 highcharts 可免费用于 FOSS 应用程序,但基于此构建的 vaadin 图表插件并非免费提供FOSS 应用程序)。

于 2013-12-30T12:11:58.930 回答
1

谢谢你的问题。答案很简短

对于需要开发 Web 应用程序的 Java 开发人员来说,Vaadin 是一个很棒的工具,但如果你有适度的 javascript 知识和一些基本的 css 技能,它是一个强大的 WAR Machine。

Vaadin 并不慢,它甚至比 React 和 Angular 还要快。如果你的应用程序很慢,那是因为你设计的错误,这对你使用的任何框架都是如此。请记住这一点,Vaadin 使用 Web 组件,因此大部分 UI 都构建在客户端上,没有在服务器上进行繁重的渲染

在您的情况下,您说您没有 css 知识,有两种选择:使用 Vaadin,或聘请前端开发人员。

我是一名 10 多年的 Web 开发人员,我从 php 开发人员和 javascript 开发人员开始。我可以告诉你,一旦我进入 Vaadin,我就无法开发另一种方式。

于 2021-11-11T14:38:15.150 回答