我只是想玩 ◎框架 而在我看来非常容易使用。加上什么我喜欢关于他的框架,它是建立在 谷歌网工具包(应用程序).

你怎么想,我应该继续采用这种框架或最好坚持应用程序?

有帮助吗?

解决方案

嘿。作为一个声明,我为公司发展Vaadin工作。

Vaadin的方式,它具有一组在GWT预编译组件的使用GWT。你可以,当然,还让自己的组件,如果你这样想。但是,组件集是相当完整,往往可以自定义你自己的需要。这意味着,你不必在每次你改变你的应用程序的时间重新编译从Java代码为JavaScript。你只是结合已有的组件连接在一起。

该框架是服务器驱动,因此所有逻辑都在服务器端处理。这些组件有两个部分,客户端和服务器文件。客户端仅仅是一个虚拟的“查看”该组件。一旦你与它进行交互,它发送一个消息,这个或那个被按下/写/等服务器。服务器然后决定应该做什么。这是为了提高安全性,因为只有一个很小的API意味着发送请求可在JavaScript中你不能“黑客”的逻辑。这可能是在某些情况下,一个小的权衡与应用程序的速度,但我不认为这是一个如此糟糕。最糟糕的减速路障通常是数据库查询往返和这样的,它没有任何关系的UI框架的选择。演示所建议的迟缓可能是因为你的服务器是远还是有很高的用户在此刻命中。试试在自己的环境中,关闭应用程序的最终应用,看看它如何执行。有迹象表明,你可以部署到测试出来一些现成的应用程序。

我想选择归结为你正在尝试做的。 Vaadin是很好的Web应用程序,你可以建立一个正常的Java应用程序,轻松地为它做动态Web UI。如果你做一些更传统的网站,在这里用户只能查看该页面的 - 不是积极更与其进行交互,然后Vaadin是不是最好的一段路要走。去与像铁轨一些其他免费的框架或PHP框架等。我认为你做的更多,你是在暗示你现在使用GWT应用程序,所以Vaadin应该是不错的。

提出更多的问题,在这里,在Vaadin论坛或#vaadin @freenode的IRC频道,也许有人可以给你更多的理由为什么或为什么不使用Vaadin。

其他提示

近15年与编制一个不那么庞大的GWT应用程序,使用所有的最佳实践,我从喜欢MVP,EventBus,命令模式,等最后的谷歌I / O获悉后,我说,这从我的心脏底部:后消磨时间试图获得工作的事情了我的团队和客户想在技术上和视觉的方式,甚至UiBinder的释放后不同,Vaadin来找我喜欢在隧道尽头的亮光。

写命令模式近千名样板行动,另外一千主持人和意见,并另外一千事件处理程序等。不必处理这些类的近75%,并且仍然保持了良好的模式方法后(appfoundation添加 - 上),一个小的网络开销是可以接受的。随着Vaadin,外的开箱,你会得到良好的窗口小部件,寻呼,数据绑定,完美无瑕的布点。所有这一切是为了什么?一些更多的内存消耗在服务器端。

我想我可以说这是可以接受的,因为我不是建立一个Facebook或东西。我还是可以处理上千个中型服务器的并发用户,但维持低延时往返。

使用Vaadin,我可以建立一个不错的应用程序,几乎一个行代码,仍然应用似乎更完整的一半。 : - )

!! UPDATE 2011年2月23日:我不能强调了一个应该如何了解每个框架的限制。 Vaadin是没有什么不同。每个人都应该知道,Vaadin抽象了任何形式的HTML或JavaScript。此外,所产生的HTML是非常沉重和历史状态改变自己,你应该小心。所以,当你建立你的项目要知道这些费用的。

免责声明:我隶属于没有一个图书馆提到以后但发生的事知道我的方式在他们周围的相当不错。

像你这样的,我偶然发现了这个职位当思考哪个堆栈/框架,以使用一个新的项目。我有一些坚实的经验玩!(ok,在卡拉,但那不是与此有关),但引人注目的部件及其无缝一体化与服务器侧+摆喜欢发展有没有激起我的兴趣。那是在2010年底,而作为回答说服我给◎一个尝试,我决定回来和写出答案,我希望读到这里,esp。作为这个问题今天仍然适用。与此同时,◎去从版本6至7的几个显着的改进,是必要的,玩!从版本为1至2I(+a小队)完成了少数成功的项目与这两个框架。

我认为,比较有趣,因为这两个框架

  1. 运行在JVM和可以利用其丰富的生态系统
  2. 不可能在赔率在他们的做法网络应用程序和你,作为开发者应该关心,
  3. 在较小的程度上,它们如何与Java EE。

赞美

一句话,如果你觉得这个想法移植的桌面应用程序,以浏览器在被完全抽象从基础HTTP请求/应答机制的令人信服,然后◎可能是你的候选人制作网页应用程序。其摆动等方式编制方案可以是一件轻而易举的为那些最快乐的离低水平HTML和JavaScript。一个新的请求您的程序确实是开始一个新的实例和其他流动是你和你的逻辑。链接恢复到很好的老按钮用于导航和你自撰写你的布局使用许多内在的模板而没有被要求调整HTML或CSS。API一般是相当一致和无可否认的良好记录(的 书的◎ 是一个强制性的阅读。这样做彻底的尽可能多的东西是很容易获得,例如。结合你的豆子部件和验证程序,...).部件有一个很好的总体跨浏览器的兼容性,从而确保一致行为的应用程序通过一个广泛的客户。

现实的检查

我们有一个很好的时间来开发和测试,请参见我们的应用程序。事情变得更清晰和更细致的时候,我们发布了第一版,并开始收集反馈意见。我们意识到, 我们实际上是偏向于相当一些基本方式, ,即:

  1. 在201x,大多数用户有很长的历史记录的使用的网络,并且他们几个实际上几乎没有使用桌面应用程序的任何更多。这里的关键点是, 浏览器进行了标准化的UX相互作用带有超文本链接,后,前向和重新装载的按钮,普遍存在的标签和有时,窗口和基本思想,大多数行动的触发一个HTTP请求,并将等待一个响应.这是隐含的契约的网站遵守和围绕它们建造的。因此,我们不应该感到惊讶,当用户抱怨说,他们不能使用的后前进的按钮,因为他们被用来,或标签没有工作的预计的方式。我们同意。我们打破了无形的合同约束力的用户和浏览器。实际上,我们自己了 隐含地 不使用我们的浏览器与◎应用程序的方式,我们用它与任何其他网站。当然,你可以回到前述的图书和阅读有仔细的复制网络的导航体验与URL碎片你会看到,它实际上是更多的参与比预期的 因为◎应用程序都有状态.此外,视或MVP的范例仅仅是松散地强加于开发,相对于玩!那里是几乎没有其他选择。不要掉以轻心,但你的脑袋是用来明白屏幕上显示的一小部分的第二个以下一页的变化。当用户击和预计要采取的新页面浏览器的承认的通过表示的沙漏(或变化物)。与阿贾克斯,请求都放在后面的场景。今天有的地方小,几乎阿贾克斯的手术罢工已经成为常态,但不适用于主要UI更新。

  2. 有状态的应用程序使他们分享的挑战...和麻烦。负载平衡(如果你有关),用于一项更为复杂。这一概念的交易是完全不同的作◎届会跨越多的要求,因此只要相对于其他基于接近,但相对短暂的,在条款的UX。事实上,这是不寻常的用户回到一种形式,他们开始 小时前 来完成他们的任务。这可能在理论上,工作◎太多,但你必须保持届会议还活着很长,很长的时间内存封锁了所有的同时,仔细想想这会规模w。r.t.并发用户。

    有状态的页面也是困难的用户共享,让我们单独签(这是假设你处理URL片段)。

  3. 最后,我们分享的印象是一般更缓慢的逻辑正在服务器上。当然你可以始终创建一个小部件加载客户端JavaScript修剪下来的数量往返但是你将不可避免地需要作出一些UI更新服务器。JS已经相当沉重的解释以我的经验,并为一个较小的经验,在移动设备(我知道TouchKit,但仍:HTML5移动设备上的应用程序只是不削减它为我)。此外,铭记,UI线是活动的后请求发布(ie。用户行动对客户的侧,类似于拉UI更新),并将可通过各种听众。然而,更新UI从背景线更加复杂(例如。推动更新)。◎7改进这方面的情况,虽然,特别是与 相对 轻HTML产生的。显着的改进UI的反应是明显的,只需转动在HTTP压缩。

结论

因此,我们暂停,并且想知道什么我们发现如此大的吸引力在◎办法开始。最初的发展已经相对平滑的骑得快速的结果,但是再加工的某些概念,以适应网用户体验的期望给了我们一个强烈的印象逆潮流。我们得出结论,引诱的想法正在抽象(遮掩?) 从HTTP请求/应答机制证明是一把双刃剑,推出了真正的阻抗之间的不匹配网络的应用程序和桌面应用程序。

而不是假装的网是又一层,我们强烈认为,一个应当欢迎它的工作方式 这开始有一个网址为中心的应用程序 (如实行轨道/Django/播放)。你可能听说过有人说,会超越数据的应用程序。如今,数据是指通过网址资源,使一个可以安全地说,网址比数据。毕竟,他们是什么人签,不是吗?所以基本分离的问题也应适用在这个水平。这可能是为什么网络成为这样受欢迎,在第一位。因此,我们重新审查我们的应用程序,以结构更加围绕一个中央控制器的应对行动 à la玩 由于不同的资源的路径。

现在我们维护我们的◎应用程序,但由于这些制约因素和根本的范式转变,我们不会开始新的项目。但是帽子的团队建立了一个技术上连贯的、协调一致和记录良好360°Java网框架需要非常的小知识的网络内运作。上他们甚至回他们的框架内与一家公司出售的咨询服务。我很感激的经验和它如何让我重新评估我的看法上网的应用程序。我会密切监测其发展,但我们肯定需要更多的控制和粒度。

希望有一天◎将从整个Servlet架构时,它依赖于拥有其自己HTTP服务器。更好的是,将一视设计更多的根深蒂固的框架。但这是有点不太可能在可预见的未来,因为它似乎找到了一个有利可图的利基之间的经验丰富的公司Java大猩猩谁只发誓EE。照。

TL博士:我认为,◎错过点什么webapp是更重要的是,他们应该如何表现。它是关于时间的程序员接受了网络和用户如何与它进行交互(ie。回按钮,重新加载的按钮,标签和签).越接近一个网络应用程序,坚持HTTP的要求和义(动词),更有可能是匹配的用户的期望。这就是关键。


编辑:如果你有任何蟒蛇的体验,我强烈建议尝试了瓶中也得到有香味的url为中心,其余的基于网络的应用程序。

编辑2:如果由于任何原因你觉得你必须使用一个全栈◎-喜欢框架,然后得到的流星一个尝试。这是一个基于JavaScript(两个前端和后端)的框架内运行的Node.js 异步通信中发生通过WebSocket(因此较小的延迟于请求/回应),它是反应性的默认。一些东西,我不喜欢在◎已经在流星。例如,逻辑的用户界面更新运行的客户,这使得它如此多的更加适应于在◎.伙计在JavaScript and Java社区不要相交很多,但当我第一次听见了它,并与◎让我吃惊。它目前享有相当多的动力在社会上的原因类似于那些由◎受欢迎的,即。能力,使桌面样的网络应用程序。不要给它一个尝试,如果你也来认识到,Java不属于多在图片中的未来网络应用程序,或者如果你厌倦了那些长期部署周期时打刷新它所应该采取。但是认为前两次绑整个应用程序,只有一个图书馆。

通常的说说Vaadin涉及有关客户端和服务器之间的往返通信的外集件组和忧虑。

但在我看来,这忽略Vaadin最显著(也许是革命性的)方面:它完全消除了设计和实现,通常需要AJAX应用程序的客户端服务器通信(以下简称“A”和“X”的任务在AJAX)。

使用Vaadin,就可以完全忘记DTO的(数据传输对象),基于协议的安全问题,休眠迟缓装载的异常等。

您在某种意义上只是写一个普通的旧的Java Swing桌面应用程序,只有你使用的是不同的UI工具包从摆动。

从我的经验GWT需要对很多样板代码和缓慢的建设时和complecated丰富的用户界面。通常我们处理的是拥有许多可持久的域对象相当复杂的应用模式。将所有这些数据给客户端,您就需要引入独立的客户端模型和提供的数据转换机制。我们已经用推土机为了这个目的,它需要太多的时间来映射每个申请,创建自定义转换器和测试所有这些东西。

在另一方面,如果不陷入过度设计,如果应用程序是不是很复杂,你可能需要利用客户资源的优势,而对服务器负载少。通过这种方式,你可能会显着降低与服务器的通信,并获得更多的响应太多的软件。

VADIN看起来非常开发商frinedly :)不过我有点害怕“大规模AJAX攻击”的服务器。我在ZK和我们经常遇到当UI一个简单的操作工作迟缓的性能问题的经验,因为它需要与服务器通信。

检票是另一个很好的框架,但它更适合网站。它可以有和没有AJAX的工作,可以通过搜索引擎索引。而最吸引人的东西,用干净的HTML代码交易 - 没有自定义标签,没有控制结构,关注严格分开,并且只有特定wicketid namigs为组件

这主要取决于你的需要:

  1. 如果您需要超快速和简单的应用程序 - 使用GWT和利用客户资源
  2. 如果您的应用程序是相当复杂的比Vaadin看起来是更好的选择
  3. 如果您的应用程序是公开的,你需要的能力,以指数为它比SEO检票选择。

事实是,对于严重的发展,不能忘记任何东西,让我们单独的交互..我抛弃缝和服务器的端ui概念,只是因为我希望更好地控制什么线..◎的问题对我来说是精确的是,具有国家在服务器上面。。

有“的担忧”约检票使用会话管理类似至约Vaadin和服务器侧的处理的参数组件状态和可扩展性。我已经学会了在过去10年中的Java社区通常是错的关于如何衡量一个Web框架的潜力(除其他事项外)。从JSF到Grails的,它通常需要几百GB的内存和至少一打开源jar文件具有重叠和效率低下的功能来获得生产应用程序的运行。环顾四周,你会看到大多数Web托管公司不提供,因为不稳定的路径Java技术已经采取了对Web框架的Java实用的选择。 GWT 2.1仍然使用,因为编译速度的痛苦,它只是变得严肃与MVP和数据表应该已经有从一开始。我喜欢检票但Vaadin看起来很有希望......但知道Java框架怎么走,我敢肯定,他们会在某个时候搬起石头砸自己的脚,但我怀疑这将是因为沉重的服务器端处理的。

有关建设好找UI的,我会说这将是一段路要走。再加上它是非常有据可查的。

我一直在使用它的几个星期,我的真的喜欢它至今。代码是固体,文档重新好,非常逻辑结构,最终结果是优异的。

我爱它与Hibernate组合理清所有的数据库乏味。

加 - 易于部署  (使用Tomcat你可以上传通过Web界面单一.WAR文件,再简单不过了)

这也是值得考虑的Apache Wicket的以面向构件的Java Web UI框架作为强有力的替代选择。 Vaadin听起来不错,我不想从这个讨论减损,但选择是一件好事。有与源在WicketStuff网站链接关闭的主页,甚至更多的几个例子,从曼宁的优秀图书形成了大量第三方文档。

看一看的Vaadin演示用Maven构建: http://asolntsev.blogspot.com/2009/11/vaadin-demo.html

我以为检票了前进的道路,直到我试图使它有效地工作,并开始了抑郁症(玩笑)。然后,我切换到GWT,这看起来很棒,但有很多SOOOO锅炉板代码编写和文档不是很大... - >光来自Vaadin:简单,可操作性,没有错误为止... !!!

在我们公司,主要为大型Java SW房子(除其他事项外)在美国出现了一个机会来创建基于product.It一个新的网络是一组产品,并有很多球队在三个国家制定这个。当它来到我们的团队我不得不使用Vaadin用于充分利用我们的Java开发experience.I搜索谷歌,以帮助我在我的决定是互利的选择。我也看了这个帖子;但是我选择了反对使用Vaadin虽然很多其他球队选择VADIN。下面是从邮件我在那个时候开始在产品上(要Vaadin与否)之前发送的原因。这是我个人的看法和一般框架的不信任一直是我在不同程度上。所以,只是想给别人得在这个问题上给读者。

好了,我们去了一个学习热潮学习HTML,CSS,CSS选择器,一个美妙的语言JavaScript和JS库,jQuery和YUI和全图形用户界面和性能达标创建的Web产品的时间;我个人而言,我很高兴和球队以及和用户。

谁去的Vaadin方式其他球队也创造了自己的产品在时间,我想也同样开心。(只有他们不知道的JavaScript他们缺少:)的喜悦)。

正如有人所说,所有的抽象是漏的抽象,当他们不得不从Vaadin 6迁移到Vaadin 7,他们不得不做的相当一些重复工作,并花了比任何人想有更多的时间;但当然,他们成功地研磨和完成日常它;仍然有延迟一点点,由于this.Also我想有一些问题,这是不支持Vaadin 7导致团队购买($$)相关Vaadin图表插件,并更改该InvientCharts插件....

<强> 要Vaadin或不

随着Vaadin似乎底层的JavaScript,HTML和CSS被动态地从一个的Java Swing类型应用程序生成。从一个偏见,也许傻纯粹点,这样的“我会为你生成代码”标语不给一个很好的设计味道。除非你需要一个抽象的,为什么又一个框架捆绑。 正如任何代码生成框架,它应该最适合的抽象Vaadin脑子里想的,但不是很灵活; 我觉得如果我们做网络技术最好是在外面的技术已经引起了工具和语言的事 - 即HTML,CSS和JavaScript / JavaScript库,而不是依赖于抽象的另一个层面 - 在Vaadin框架。这可能会觉得天真的专家GWT或Vaadin开发者,我猜谷歌标准者产生比你的手编码的人最优化的JavaScript,帮助多个团队等(但主要是发展中国家相当较大的Web应用程序时),更好的开发者之间更好地管理代码生产力,更容易调试等。 但是写Vaadin在Java组件,然后自动转换为JS是我觉得不对的,很多我们的开发永远也学不会一个非常重要的编程语言 - JavaScript的Web开发(并在服务器端快速获得牵引力 - Node.js的)。当框架依靠让你的JavaScript权,那么你将永远不会在该语言出类拔萃。我想对于基于产品的公司来说,以亲自了解网络的语言反而是很重要的。正如有人评论说Java已经成为像昨年的COBOL,这是势在必行的能力建立学习其他重要的语言如JavaScript。 但是已经在JS工作过小的时候,我有,我已经注意到,如果我们有一些学科(模块模式)代码,测试所有的逻辑 - JavaScript的单元 - JSTestDriver,并运行JSHint,这是一个相当强大的语言一起工作和生产力一旦据悉比Java变得更好。  另外最重要的组成部分例子 - 的OpenLayers都写在JS,如果你需要延长这些或WORK的最佳你需要知道的JavaScript,或者在这方面强大的库,例如D3.js 因此,在短期虽然有很多的优势,在使用Vaadin和框架,从长远来看,也许使用JavaScript是很重要的?

我使用Vaadin为好。虽然应用程序并不大,我真的很喜欢这段经历是,API是一致的,一般有据可查,并给予我用新的工具开发,我能炮制出东西了非常苛刻客户端是相同的,或在某些情况下,比所述工具更好时限我之前使用。

很少的问题。唯一的一个现在是客户端坚持使用IE 7(不问)和一些发烧友眼睛糖果的不以附加部件(图表)的工作完全100%的

顺便说一句我不为Vaadin工作,要么: - )

我曾尝试检票和Vaadin双方如果你真的在一个月内尝试两种一段时间后,你就会知道,Vaadin是去和不检票,周期的方式。 - Dheerajģ

我们已经看过了检票我工作的地方,但我们发现,而不是9000页的文件,我们可以有超过3万。我们有将近1000的屏幕与我们的核心金融服务应用程序,虽然检票看起来不错这是非常困难的转换在Struts 1.3代码检票口。我们的设计师做了一个POC项目,只有3屏加几百类(很多是重复使用)。这也是很难protoype一个屏幕,检票,因为你的HTML必须在Java代码,反之亦然匹配。

Vaadin看起来很有希望,但是这将是一个强买强卖的团队。

P.S。无论框架是多么的伟大,没有人会了解它,如果它没有在行业中使用。检票已经有一段时间,但很少有企业使用它。我谈话大多数开发人员所关心的学习一个新的框架,在简历上没有用的。

关键是Vaadin使用Swing般的设计,它可以帮助我在Java中开始使用摇摆。

我已经使用Vaadin开发在我工作的公司一个giftadvisor(未Vaadin)。

Vaadin允许你建立真正的部件化Swinglike Web应用程序。

如果您担心客户端 - 服务器往返每次点击我有这样一段话:我创建了一个鼠标悬停按钮,它改变了按钮的上是,鼠标悬停的样子。对于这个框架已经去到服务器和背部。和它的工作速度不够快海事组织。请参见 http://www.cadeau.nl/sophie 来看看我的意思。

我喜欢Vaadin,酒店的套房我的需求,使web开发变得轻而易举。

的问候,罗布。

我开始用Vaadin仅两天前,并能够建立在持久性的OSGi完整的模块化,数据绑定,OSGi服务小CRUD应用程序。一个非常好的事情是,我的完整的用户界面是只有118行代码,并支持完整的CRUD操作的简单Java bean的结构。

这也是不错的是Vaadin完全在OSGi的。这已经是一个包,我发现从尼尔·巴特莱特一个小桥,使vaadin极易在OSGi中使用。

请参阅任务列表Vaadin实施例

我不在服务器端介意使用状态。它实现其目的。随着云计算现在给天的存储和带宽越来越便宜。但是,是的,我可以看到一个好的设计的角度来看你的观点,特别是如果你想的RESTify您的应用程序。但我相信,有比关于Vaadin等的缺点更多的优点。一个重要的事情,你不必须调整你的网络应用程序的大量特定的浏览器允许调用它以IE的JavaScript / CSS复杂性 - 特别是如果你对我一样后端导向。您所有的web应用成为跨浏览器兼容,而不必担心什么。记住开发时间比存储空间和带宽的高价。这就是我的看法。 =)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top