gwt – 用于Web应用程序开发的Vaadin – 很少有人怀疑

前端之家收集整理的这篇文章主要介绍了gwt – 用于Web应用程序开发的Vaadin – 很少有人怀疑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在尝试为Web应用程序选择用于客户端开发的框架.这些是我们申请的关键点.

1)富文本应用程序,用户在客户端中执行许多活动.

2)我们正在寻求使用Java技术进行开发

3)服务将以云提供.

4)需要移动支持.

5)可扩展性也是一个主要问题.

我在网上看了很多文档和信息以及这个视频http://twit.tv/show/floss-weekly/187,现在已经离开了Vaadin和普通的GWT.我在GWT的开发方面有一点经验,但在Vaadin中没有(我只在Vaadin中编写了几个示例程序).请帮助我理解一些事情.

1)如果我必须在Vaadin中编写一个新的小部件,那要完成它是多么容易或困难?

2)Vaadin小部件或概念是否存在明显问题,可能会阻碍任何应用程序?

3)如果明天我们决定切换回GWT,那么鉴于Vaadin适用于所有服务器代码逻辑,这是否可行?

4)Vaadin方法是否每次都关注部署在云上的应用程序时服务器?

5)最后但最重要的是,论坛支持和未来发展如何?

非常感谢.请注意,我已经阅读了很多关于这些讨论的文章链接,但是至少在某些时候对这些东西有真正经验的人感到很高兴.再次感谢.

解决方法

GWT

now left with Vaadin and plain GWT.

Vaadin 7和Vaadin 8,现在称为Vaadin Framework,在Google Web Toolkit (GWT)左右都是基于Java的包装器.

您为业务逻辑和UI创建编写纯Java代码.这个Java代码Java Servlet web container中在服务器端的JVM中运行.当Vaadin使用GWT自动生成必要的HTML,CSS,JavaScript,DOM,AJAX,XML&在用户的客户端Web浏览器中呈现Web应用程序的用户界面所需的JSON,WebSocket和Push代码.

因此,服务器端的纯Java,客户端的纯Web标准技术(客户端没有Java).

Web组件

Vaadin 10,现在称为Vaadin Flow,用新兴的Web Components标准技术取代了GWT的内部使用.这一新一代是对Vaadin的重大改写,尽管它的目的和许多概念如data-binding保持不变.

通过利用Web Components技术,构建Vaadin小部件应该更容易.而且,为服务器端Java代码提供Vaadin未明确设计的现有基于JavaScript的组件应该相对容易.这就是Web组件的重点:使基于Web的小部件可以在各种Web框架工具中运行.

虽然Vaadin有限公司非常兴奋并自豪地推出了Vaadin 10 Flow,但他们仍然致力于Vaadin 8 Framework. Vaadin 8正在积极开发中,其路线图计划至少在2022年之前得到持续支持.

>如果您真的想使用GWT,可以在Vaadin 8 Framework中完成.
>如果您想打赌Web Components而不是GWT,请使用Vaadin 10 Flow.

丰富的应用

Rich text application where user performs many activities in the client.

如果您的意思是“富文本”,如字体,颜色等,您应该研究RichTextArea小部件bundled with Vaadin 8以及检查Vaadin Directory获取其他附加组件.该小部件未被移交给Vaadin 10 Flow,但如上所述,Web组件的使用可能使其他现有的此类工具可用于基于Java的Vaadin应用程序.我看到了one already in beta.

如果您在具有企业级可靠性的专业外观,面向业务的桌面式Web应用程序方面意味着“丰富”,那么这就是Vaadin的目的.

Java的

We are looking to develop using Java technology

这就是Vaadin的存在理由:编写纯Java以利用庞大的Java工具和库生态系统,以及安全性,性能和可靠性的所有优势 – 同时使用Web标准技术自动渲染您的应用程序在Web浏览器中.

移动

Mobile support is required.

Vaadin小部件集合已经发展到支持触摸表面手势.

Vaadin Ltd公司之前提供了一个名为Vaadin Touch的移动支持专用包.常规Vaadin小部件中对触摸手势的内置支持使得包过时且不必要.

云与云缩放

The services will be offered in cloud.

Scalability is also one main concern.

您的基于Java的Vaadin应用程序确实存在于服务器端的JVM中.每个当前用户由会话对象表示.浏览器中出现的所有用户界面小部件都与服务器上的Java对象相对应.您可能会在服务器上的其他Java对象中保留更多数据和功能.您也可以从该服务器端调用JDBC或Web服务等.

所以这一切都占用了服务器上的内存和cpu周期.您需要了解您的编程正在执行缓存并在服务器上放置其他负担.用户之间共享的任何资源都必须是线程安全的,因为Java Servlet环境在设计上是多线程的.

可能需要强大的服务器硬件(内存,内核),具体取决于您的应用程序的详细信息.或者,如果您确实拥有一个拥有非常多用户的非常大的应用程序,您可能需要具有粘性会话负载平衡的多个服务器.

Vaadin有限公司模拟了Vaadin应用程序的使用,该应用程序支持数千个并发用户会话.您可以联系他们咨询您的具体情况.

虽然可扩展性是一个需要考虑的问题,但不要妄下结论.仔细考虑,并做一些实验.

创建定制小部件

If I have to write a new widget in Vaadin how easy or difficult it is to accomplish?

在Vaadin 8中,您确实可以创建自己的小部件.但这样做需要学习使用GWT.可行,当然可以从Vaadin Directory中的数百个已发布的附加组件中看到.但仍然是一些认真的工作. Vaadin有限公司就此提供培训.

在Vaadin 10 Flow中,使用Web Components应该可以更轻松地创建自己的小部件.免费提供this starter project免费送货服务.请参阅教程,Creating A Simple Component Using the Element API.在Vaadin 10 Flow中创建小部件的关键概念:

>每个Vaadin 10组件始终映射到服务器端DOM表示中的一个根元素.
> Element API可以从服务器端轻松修改DOM.

还有其他问题吗?

Is there any obvIoUs issues with Vaadin widgets or concepts which might be a blocker for any application?

不确定你的意思.我建议阅读优秀的Vaadin教程和手册.它引导您使用Vaadin中的各种功能.

使用桌面应用程序的其他快速应用程序开发环境后,Vaadin始终对我有意义,符合我的思维方式和做事.

出血边缘

对于Vaadin Flow,要知道Web Components仍然是新的,并且有点前沿. Web Components实际上是一组技术.并非所有这些都得到所有浏览器制造商的支持.因此,仍然需要一些填充物.

Vaadin Flow还利用了最终到达CSS的现代页面布局功能:FlexBox和Grid Layout.

只有最新版本的浏览器才能获得对所有这些功能的良好支持.有关具体细节,请参见CanIUse.com.

Vaadin的一部分目的是为各种浏览器的各种版本之间的差距,以使我们的开发人员使用Vaadin绝缘.因此,您可能不会在某些浏览器中遇到问题,但您可能会再次遇到问题.

此外,Vaadin Flow并不完全具备Vaadin 8的所有功能.有些正在开发中,有些正在规划中.

Upshot:如果您渴望尽快发货并且不能坚持要求用户更新到最新的浏览器,请使用Vaadin 8而不是Flow.

将Vaadin留给GWT

If tomorrow we decide to just switch back to GWT,is that feasible given that Vaadin works with all server code logic?

如果您想使用GWT,并且想要用Java编写服务器端逻辑,那么Vaadin 8 Framework是您的理想工具.我不知道你怎么想离开Vaadin.

但是如果你离开了Vaadin,你将不再拥有将浏览器中的GWT与服务器上的Java代码连接起来的粘合剂.这种粘合剂是Vaadin为您提供的.当然,您可以编写Java后端业务逻辑,直接不了解Vaadin.实际上,Vaadin有限公司为此目的提供了基于Maven的多模块原型.后端模块保存您的业务逻辑和数据库访问(等)代码,与包含面向Vaadin的代码的ui模块分开.

网络流量

Does the Vaadin method of going to server everytime a concern for applications that are deployed on cloud?

您需要进行一些实验和分析,以查看特定应用程序所需的内存和内核.如上所述,Vaadin可能要求服务器资源.

但从技术上讲,云部署没有技巧或技术限制.只是简单的Java代码运行,在JVM.任何可以运行Java Servlet web container,如Tomcat,Jetty,Glassfish/Payara,WildFly / JBoss等,可以运行你的Vaadin应用程序.

如果你担心网络流量,是的,有流量.当用户使用窗口小部件(如单击按钮或在字段中输入数据)时,将通知您的服务器端Java应用程序,以便您的应用程序可以使用业务逻辑进行响应.这意味着经常进行网络遍历.

您可以选择在不需要时立即通知服务器端.这样做,您就可以控制部分流量.例如,您可以选择是否希望服务器端在字段中输入文本时通知(和响应)every single keystroke,或者在键击之间输入occasionally such as a pause,或者仅在该字段中的user has completed entry之后.请参阅[配置值更改事件的粒度](手册中的https://vaadin.com/docs/v8/framework/components/components-textfield.html部分).

当我开始使用Vaadin时,我确实担心互联网性能有问题.但我可以说,根据我自己的经验,我真的很惊讶,惊讶,发现这对我来说不是问题.例如,在美国,在威斯康星州的一个colo中只有Mac mini,运行非常快速的互联网连接,运行Vaadin 7或8应用程序几乎可以立即对访问西雅图,佛罗里达和加拿大家庭DSL和有线电视连接的客户做出反应.从香港访问时,只有最轻微的延迟,通常在数据录入应用程序中无法察觉.

当然,您的里程可能会有所不同.我上面的例子是一台专用电脑.相比之下,云提供商因cpu可用性和网络延迟或延迟的波动而臭名昭着.

支持

Last but most important,how is forum support and future dev?

Vaadin Ltd似乎是一家非常健康的开源公司.他们销售附加产品,支持,咨询和培训.该公司一直在发展,雇用更多员工,并建立海外办事处(美国,德国),而他们的总部仍在Finland(赫尔辛基图尔库).

各种Vaadin产品正处于非常繁重的发展阶段,许多增量发布,预发布,很快将于Long-Term-Support versions到达.定期发布其发展计划的路线图.他们还在their blog提供有关其业务和技术问题的定期更新.

Vaadin Ltd公司拥有一个非常活跃的forums site.他们的员工和其他用户也积极使用Stack Overflow.

猜你在找的HTML相关文章