三柱门 vs 瓦丁

2022-08-31 22:31:54

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

如果我选择 Vaadin:

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

但是,如果我走Vaadin的方式:

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

如果我走检票口的方式:

  1. 我将不得不设计我的应用程序,我很难给它们一个桌面的外观和感觉。

有什么建议吗?任何在任何一个框架上都有经验的人都会告诉我缺点和优点以及您如何做出决定。


答案 1

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

是的,存在差异。

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

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

我将用java完成我所有的编程,我非常擅长,不必花时间破解css,而这些css不是很擅长

那么Vaadin会“更好”。

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

这有什么好处?(顺便说一句:你可以用时髦的代码声明性代码;-))

但还好。我知道你的意思:如果你能努力一个单独的设计师比检票口“更好”。

我很难给他们一个桌面的外观和感觉。

为什么不呢?或者你在这里是什么意思?Wicket支持ajax,并且有一些组件支持漂亮的“桌面样”的东西(ajaxlink,lazycomponent,autocompletion,progressbar,see wicket stuff + extensions)。好吧,对于任何更复杂的组件,您都必须使用javascript编写代码,但是顺便说一句,您是否知道您甚至可以在检票口中使用GWT。

一些小经历:

Vaadin在编码时肯定更快(没有css,html的东西)。但是,如果您进行生产,请记住,编程的便利性可能会影响客户端的性能成本:例如,如果您使用“错误”的布局,例如水平/垂直布局,...大量使用javascript可能会减慢旧浏览器的速度。

但瓦丁并不慢!使用适当的布局,如CssLayout或FastLayout,旧浏览器也可以提供它。(尽管如果你使用CssLayout,你的编码风格实际上是三柱门式的。

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

Wicket的一大优点是它的翘曲持久集成

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

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

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


答案 2

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

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

就我个人而言,我真正喜欢三柱门工作的事情之一是前端演示和数据后端之间的流程,我们已经实现了Spring & JPA / Hibernate,这意味着前端的任何更改都可以通过基于Wickts模型的架构通过单行代码转换回数据库。

再说一遍,我不能说Vaadin从未使用过它,但是如果你正在寻找架构开始,我也建议你看看GWT。


推荐