1. 使用Bootstrap/CoffeeScript以及一些服务器端框架,如Play Framework、Rails或Django 2. Vaadin
我关心的标准与客户端JavaScript和/或HTML5验证以及使用Bootstrap编写的CSS和HTML代码可能出现的复杂性有关。在实际的RIA应用中,使用CoffeeScript是否比Vaadin更值得?我看到有很多人选择了Bootstrap,我相信他们有他们的理由。
请帮我做出决定,一些相关文档也可能会有所帮助。
Vaadin是一款非常优秀的工具,用于构建纯Java开发的交互式桌面风格的Web应用程序,并通过常规Web浏览器进行交付。
Vaadin 6、7和8应用程序完全在服务器端运行。 Vaadin自动安装到用户浏览器窗口中的JavaScript库只需:
因此,从Vaadin应用程序开发人员的角度来看,没有“客户端逻辑验证”或“html5验证”。 Vaadin框架可以在其内部实现中执行此操作,但这与我作为Vaadin应用程序开发人员无关。这就是Vaadin的核心优势:我不关心Vaadin如何将我的表单放在用户屏幕上。作为Vaadin应用程序开发人员,我不编写任何JavaScript、HTML、DOM、CSS或AJAX。只有纯Java。
这种风格类似于Swing:实例化一个布局(一个表单),添加标签,添加按钮,添加字段,添加其他小部件。根据需要添加验证器。对于复杂的表单,请嵌套附加布局。所有这些内容都在服务器端内存中执行,全部使用纯Java语言编写。最后告诉布局显示本身。Vaadin 像魔术一样让浏览器显示一个该表单的类似物。
如果您想开发桌面业务应用程序,并通过Web浏览器部署它们,Vaadin 是一个很好的工具。
权衡包括:
您的Web应用程序存在于服务器上,而不是客户端。所有业务逻辑、用户输入的数据、所有用户表单的内部表示(例如表格行项)都存在于服务器上。将其乘以用户数量。这意味着Vaadin应用程序可能需要大量的内存和CPU使用率。
这可能会限制扩展性。但是,有了64位Java、多个G的内存以及多个核心,即使是像Mac mini这样最低配置的机器,扩展也仅成为最大/最繁忙的应用程序的问题。
即使在那些更大/繁忙的应用程序中,Vaadin也有处理扩展的方法。所有应用程序都在Servlet会话中运行。某些web基础设施允许这种会话状态在服务器之间移动,甚至持久化到存储中以供其他服务器选择。
或者您的应用程序可能可以很好地扩展。已经进行了具有11000个同时客户端的仿真测试。请参阅:
如果您的团队更熟悉传统的Web应用程序架构,则Vaadin可能不适合您。在Vaadin中,您完全使用纯Java编写应用程序,Vaadin会自动生成相应的HTML、CSS和JavaScript。
您可以稍微调整一下CSS。即使不去碰CSS,Vaadin的“主题”(Valo、Reindeer)在颜色、大小和字体方面也给您很大的控制权,如果您想覆盖默认值的话。但要知道,Vaadin掌控生成HTML和CSS的过程,您只是一个允许进行一小部分“后座驾驶”的乘客。
如果您的目标不是开发桌面式应用程序,如果您想完全掌控HTML/CSS,则Vaadin可能不适合您。
2017年2月22日,Vaadin 8发布。最大的改进是采用现代Java特性重新编写了数据模型和数据绑定API,如具有类型参数的泛型和lambda表达式。此外,内存和CPU利用更加高效。
虽然架构与Vaadin 6基本相同,但Vaadin 7比以往任何时候都更好。详见:新特性。