我在Wicket和Vaadin之间左右为难。我正在开始一个微型ISV,需要在Web框架上做出选择。我已经把我的选择缩小到Wicket和Vaadin。我已经使用了这两个框架,我都喜欢它们。但是我需要做出选择。
如果如果我选择Vaadin:
1.我不需要太担心外观和感觉,它有很好的主题。
1.我会用Java做我所有的编程,Java非常擅长,我不必花时间去破解CSS,CSS不是很擅长。
1.和大多数的组件,我将需要一个商业应用程序是有开箱即用,包括桌面一样的布局,工具提示,键盘快捷键,表与可拖动和可折叠的列,仅举几例。
然而,如果我走瓦丁的道路:
1.我将失去以声明方式创建UI的能力。
1.如果浏览器不支持JavaScript --例如大多数非Webkit移动的浏览器--我就不会有后备功能。
- Vaadin公司正在出售一些组件,例如JPAContainer,所以我不确定该公司是否会致力于提供完整的开源框架。商业利益永远是第一位的。
- Vaadin应用程序将主要用于内部网。它们不太适合具有Web外观和感觉的Internet。
如果我走威克特的路:
1.我将不得不设计我的应用程序,我几乎不能给予他们一个桌面的外观和感觉。
有什么建议吗?任何对这两种框架都有经验的人请告诉我缺点和优点,以及你是如何做出决定的。
8条答案
按热度按时间j5fpnvbx1#
我想我在这两个框架上都投入了一些时间。我真的很喜欢这两个框架,因为它们为Web开发带来了类似Swing的编码。我不知道对我来说更容易的框架(虽然有点击,但我不喜欢速度模板)
是的,确实有区别。
我不需要太担心外观和感觉,它有很好的主题
没错,但每家大公司的应用程序风格都不一样(除非你是在做原型设计)
我会用java做我所有的编程,java非常擅长,不会花时间破解css,css不是很擅长
那么瓦丁会更好。
我将失去以声明方式创建UI的能力。
这样做的好处是什么?(顺便说一句:你可以用Groovy编写声明性代码-))
不过,好吧,我懂你的意思如果你能负担得起几个独立的设计师,那么wicket是"更好的"。
我几乎不能给他们一个桌面的外观和感觉。
为什么不呢?或者你在这里的意思是什么?Wicket支持ajax,并且有一些组件支持类似桌面的东西(ajaxlink,lazycomponent,autocompletion,progressbar,见wicket stuff + extensions)。好的,对于任何更复杂的组件,你必须用javascript编码,但是顺便说一句,你知道你甚至可以use GWT within wicket吗
一些小经历:
Vaadin在编码方面确实更快(没有css,html之类的东西),但是如果你投入生产,请记住,编程的简易性可能会导致客户端的性能下降:例如,如果你使用了"错误"的布局,如水平/垂直布局,...大量使用javascript可能会降低旧浏览器的速度。
但是Vaadin并不慢!使用适当的布局,如CssLayout或FastLayout,旧的浏览器也可以提供它。(虽然如果你会使用CssLayout你的编码风格是真的小门一样。)
Vaadin的一个问题是,它有点难以分析,因为您不容易看到客户机需要所有CPU的地方,并且嵌套的div获得了神秘的id名称。
Wicket的一个优点是它的warp persist integration
(Guice可以集成到Vaadin和Wicket中)
用Vaadin测试UI应该很容易(尽管我没有找到单元测试的东西),而且非常容易with wicket。
最后但并非最不重要的创建列表/表格是非常容易在Vaadin相比wicket。
xdyibdwo2#
我曾与Wicket广泛合作,但我没有任何与Vaadin的经验,所以这可能是(有点)偏见。
我推荐Wicket的原因很明显,但您可能对Wicket的开放性感兴趣,正如Gweebz正确指出的,Wicket使用基本的HTML标记作为基础,因此任何结构性或外观上的更改通常都是微不足道的。
就我个人而言,我真正喜欢的一件事是前端表示和数据后端之间的流程,我们已经实现了Spring & JPA/Hibernate,这意味着前端的任何更改都可以通过基于Wickets模型的体系结构用单行代码转换回数据库。
同样,我不能说Vaadin从来没有使用过它,但是如果您正在寻找一个开始使用的架构,我也建议您看看GWT。
vwkv1x7d3#
(接第一个Wicket相关回答中的评论)
Vaadin和Wicket之间的主要区别在于UI组合和客户端代码的编写方式。使用Vaadin,你通常不用任何模板或HTML来组合UI,你会得到一个光滑的、完全 AJAX 艾德UI。然而,如果你更喜欢模板化的方法,只需使用CustomLayout就可以了。
很少需要客户端编码,但如果需要,你可以使用基于Java的GWT,这比手工编写Javascript要好得多。此外,使用GWT,你可以自动获得跨浏览器兼容的解决方案,而不必自己处理这些问题。
当比较框架时,你也应该看看社区活动和文档。Vaadin的这两个都很棒。还要注意Vaadin目录,它目前包含了100多个非常有用的UI组件和其他插件。
wvyml7n54#
我对这两种工具的经验都有限,但我更喜欢Vaadin。它让我开发的Web应用程序有了更丰富的体验。不过,它给我们带来的主要好处是,围绕UI类编写单元测试是多么容易,确保组件在以预期方式交互时正常工作。Wicket也可以做到这一点,但在我的经验中,这一点要困难得多。
我还要提到的是,这两个框架都需要一些样式。Wicket一开始是普通的HTML,Vaadin一开始默认是类似MacOSX的主题,但几乎所有你写的web应用程序都需要至少一些定制。记住这一点,定制Wicket应用程序的CSS比Vaadin简单得多,原因很简单,你可以控制标记。Vaadin隐藏了标记,并生成了具有奇怪ID和结构的元素,因此很难自定义外观。在做决定时请记住这一点。
nfg76nw05#
我现在和Wicket一起工作,我和Vaadin一起工作过传球。我会简短地说我的观察:
除此之外,我们正在讨论两种不同类型的框架,两种不同的方法,它们各有优缺点,我建议您搜索和比较一下,看看什么真正适合您的需要。
编辑:哦,关于外观和感觉,例如,您总是使用Wicket Bootstrap
yfjy0ee76#
还要注意,即使Vaadin基本框架是免费的,对于一些附加功能,您可能需要购买扩展。
如果你需要集成一个好的图表解决方案,比如Highcharts,你必须付费购买vaadin图表扩展(尽管highcharts对自由/开源应用程序是免费的,但基于它构建的vaadin图表插件对自由/开源应用程序不是免费的)。
6g8kf2rb7#
谢谢你的问题,答案很简单
Vaadin对于需要开发Web应用程序的Java开发人员来说是一个很棒的工具,但如果你有中等的JavaScript知识,和一些基本的CSS技能,它是一个强大的WAR机器。
Vaadin并不慢,它甚至比React和Angular还快。如果你的应用程序慢,那是因为你设计错了,你使用的任何框架都是如此。请记住,Vaadin使用的是Web组件,所以大部分UI都是在客户端构建的,服务器端没有大量渲染
在你的情况下,你说你没有css的知识,两个选择:使用Vaadin,或雇用前端开发人员。
我是一个网页开发者超过10年,我开始作为一个php开发者和javascript开发者,我可以告诉你,一旦我进入Vaadin,我不能开发其他方式。
tnkciper8#
选择什么主要取决于业务需求(请参见问题的第2点和第4点)
然而,如果我走瓦丁的道路:
您可以尝试使用ZK framework-类似于Vaadin,使用XML声明式用户界面