vaadin_在Vaadin和JSF之间选择

vaadin

随着最新版本的Primefaces 3.0的发布,JSF终于达到了前所未有的成熟度和实用性,使其与其他流行的Rich Internet Applications(RIA)选项面对面,例如Google Web Toolkit(GWT),ExtJS,Vaadin,Flex和其他。 这个开源项目也被证明是非常活跃的,并且在不断发展。

我一直在与JSF + Primefaces自从一年前,当我开始这个项目士管理 ,Web应用程序设想来管理用户群体或社区集中于知识,某个域的成员都在不断分享信息和参加社会和教育事件。 JSF是一个标准Java框架,用于使用完善的开发模式为Web应用程序构建用户界面,并基于许多先前存在的Java Web开发框架的经验构建。 它是基于组件和服务器端用户界面的呈现,将经过预处理的基于Web的内容(例如HTML,JavaScript和CSS)发送给客户端(Web浏览器)。 我对这项技术的经验可在java.net上公开获得。

同时,我有机会让创建了概念验证(PoC)以比较JSF和Vaadin,以帮助开发人员和架构师在其中之一之间进行决策。 Vaadin是RIA的Web应用程序框架,与其他Javascript库和基于浏览器插件的解决方案相比,它提供了可靠的服务器端体系结构。 业务逻辑在服务器上运行,同时基于Web浏览器完全呈现基于Google Web Toolkit(GWT)的更丰富的用户界面,从而确保流畅的用户体验。

PoC的结果出乎意料地有趣:)最终提出了两种技术,而不是淘汰其中一种。 我发现,在浏览可用的书籍,文章,博客和网站时,尽管能够实现各种Web应用程序,但每种技术都具有针对特定类型的应用程序进行了优化的特殊功能。 实际上,如果我们发现JSF对于某种类型的应用程序更好,那是因为使用Vaadin进行同样的操作将花费更多的时间和代码。 反逻辑也是正确的。 为了理解这一点,我们必须访问对Web应用程序有直接影响的两个基本概念:

  • 使用情境认为谁将会运行的应用程序,用户插入的环境 ,以及用户与交互设备用户
  • 信息体系结构再次考虑应用程序的用户 ,他或她所在的业务领域以及在该域中管理的内容

在下面的图中注意,在这两个概念中,用户始终是关注的焦点。 那是因为我们正在评估对用户与Web应用程序交互方式有直接影响的两个框架。

访问上面的概念,我们有:

环境

某些应用程序仅供内部使用,例如Intranet上可用的应用程序,其他应用程序供外部用户使用,例如公司网站。

内部应用程序的用户更为同质且数量有限,这意味着UI可能会稍微复杂一些,以允许更快的用户交互。 这就解释了Microsoft Office与Google Docs之争。 在办公室环境中,最后一个功能尚不完全可以接受,因为它的功能少于Microsoft Office。 另一方面,它更复杂且更昂贵。 但是,使用有限数量的用户使用大量功能使培训部分有一些额外的成本可以从生产力功能中获利,这是可以接受的。

公司网站针对无限环境中的异构用户。 不可能训练所有这些人,因此需要具有简短且不言自明的交互作用的更简单的用户界面。

考虑到环境,我们建议Vaadin用于有限环境中的同类用户,而JSF建议用于无限环境中的异构用户。

设备

不同的设备会分解多套UI组件,这些组件旨在从小屏幕到大屏幕都看起来不错。 幸运的是,这两个框架都有支持从常规台式机到移动设备的所有屏幕尺寸的组件。 问题在于不同的设备带来了不同的连接能力,应用程序应准备好应对短带宽和降低的传输速率。 在这种情况下, 只要设备种类不是那么广泛Vaadin似乎更适合于多种设备,因为用户界面是使用JavaScript在本地呈现的,并且它具有更丰富的Ajax支持以优化应用程序的交换。服务器上的数据。

业务领域

原则上,高质量的UI框架(例如JSF和Vaadin)可以实现任何业务领域。 问题是团队对技术的经验如何,或者掌握技术的学习曲线有多小。 业务与时机有关,提供最佳生产力的技术必将获胜。 如果您的团队以前有过Swing的经验,那么Vaadin是自然的选择。 如果以前的经验是更多面向Web的,可以处理HTML,CSS和Scripts,那么建议使用JSF。

内容

内容是在Vaadin和JSF之间进行选择的非常相关的标准。 如果应用程序需要处理任何类型的大量内容,例如较长的文字描述,视频,演示文稿,动画,图形,图表等,那么建议使用JSF而不是Vaadin,因为JSF使用Web内容呈现策略来获利从Web浏览器支持的所有内容类型中提取,而无需其他插件或标签 。 只有通过使用插件才能在Vaadin上获得对多种内容的支持,在使用前必须对其进行单独评估。

用户

最后但并非最不重要的是,我们有了用户,这是选择UI框架时最重要的标准。 我们将强调两个方面:

  1. 用户数量 :最大的是目标人群,最大的是对应用程序兼容性的关注。 它必须处理几种版本和类型的浏览器,操作系统,具有不同内存容量和监视器分辨率的计算机。 所有这些都没有故障或安全问题。 对于较大的人群,最合适的技术是跨平台环境中最兼容的技术(JSF就是这种情况),因为它使用了HTML,JavaScript和CSS的平衡组合,而Vaadin仅依赖JavaScript和CSS。 但是,较短的人群使用Vaadin会获得更好的收益,因为跨浏览器的兼容性一直是并且将仍然是Vaadin的开发团队在幕后要做的非常艰巨的工作。
  2. 用户的任务 :如果应用程序是由用户集中操作的,那么它有望实现更多的用户任务。 另一方面,如果该应用程序很少使用或间隔使用很短,则用户任务的集中度较低。 根据PoC的说法, Vaadin是一种技术,由于其快速的视觉响应,它在提供具有更丰富的用户交互性的用户任务方面提供了最佳支持。 JSF在涉及用户交互方面的优化程度较低

总之,不要丢掉这些框架之一,而是在公司的架构选择中同时考虑这两个框架,但是请访问上述标准,以确保您使用正确的技术来实现预期的解决方案。 应用这些标准的一种简单方法是根据项目的特征为每个标准分配权重。 设定哪种技术适合每个标准; 并总结每种技术的权重。 权重最高的项目选择了要使用的技术。

参考: Hildeberto博客上的JCG合作伙伴 Hildeberto Mendonca在Vaadin和JSF之间进行选择 。


翻译自: https://www.javacodegeeks.com/2012/02/choosing-between-vaadin-and-jsf.html

vaadin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows server 2008 oracle 10g,一次不太愉快的Windows Server 2008 R2 SP1上安装ORACLE 10G经历...

华为服务器型号RH5885 V3,安装windows server 2008 r2, oracle 10g1、安装包要使用10204_vista_w2k8_x64_production_db.zip,不用102010_win64_x64_database.zip;2、DBCA创建数据库之前,关闭BIOS中Hyper-Threading [ALL] - [Disab…

通过OmniFaces缓存组件以编程方式缓存PrimeFaces图表

在这篇文章中&#xff0c;您将看到如何结合PrimeFaces和OmniFaces获得可缓存的图表。 为了使事情变得简单&#xff0c;我们将使用PrimeFaces 折线图。 对于这种图表&#xff0c;我们可以在页面中使用<p&#xff1a;chart />标记和一个简单的托管bean。 因此&#xff0c;在…

ReactNative——打包发布

1、生成一个签名密钥 ‘ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 ’ 生成一个my-release-key.keystore的密钥库文件 2、找到路径/android/app/src/main,并在该目录下新建assets文件夹 3、在工程…

oracle版本说明,Oracle版本说明

Oracle 的版本号很多&#xff0c;先看11g的一个版本号说明&#xff1a; 注意&#xff1a; 在Oracle 9.2 版本之后&#xff0c; oracle 的maintenance release number 是在Oracle的版本号很多&#xff0c;先看11g的一个版本号说明&#xff1a;注意&#xff1a;在Oracle 9.2版本之…

Opserver配置Redis、SqlServer监控

简介 Opserver是Stack Overflow的开源监控解决方案&#xff0c;由Stack Exchange发布&#xff0c;基于.NET框架构建。开源地址&#xff1a;https://github.com/opserver/Opserver 使用 github下载源代码编译后&#xff0c;发布至IIS&#xff0c;需要先修改Opserver/Config目录下…

Linux挂载多个文件夹读不出,FTP不显示Linux挂载文件夹怎么办?-处理FTP不显示Linux挂载文件夹的方案 - 河东软件园...

最近有位用户向小编反映&#xff0c;声称自己在Linux中使用vsftpd启FTP服务&#xff0c;并在FTP用户下挂载一个Windows的共享盘&#xff0c;但是登陆FTP后却无法显示该挂载的共享盘。出现这种问题真是令人十分头疼呢&#xff0c;想要快速解决这个问题又找不到合适的方法。该怎么…

以太坊智能合约Hello World示例程序

简介 以太坊(Ethereum)是一提供个智能合约(smart contract)功能的公共区块链(BlockChain)平台. 本文介绍了一个简单的以太坊智能合约的开发过程. 开发环境 在以太坊上开发应用&#xff0c;首先需要安装其客户端&#xff0c;本文使用基于Go语言的Geth, 其官网为https://github.c…

Java到LDAP教程(包括如何安装LDAP服务器/客户端)

本教程将向您展示如何编写Java代码以与LDAP交互。 但是在执行此操作之前&#xff0c;我们需要在计算机上设置LDAP服务器和客户端。 如果此时您不确定到底是什么LDAP&#xff0c;建议您参考这篇文章&#xff0c;其中提供了一个很好的定义示例。 &#xff08;简而言之&#xff0…

在linux下赋予000权限,【linux】对于文件权限的理解

本篇博文旨在介绍linux下的权限问题&#xff1b;介绍了Linux下&#xff0c;查看权限、修改权限等方法&#xff1b;并通过分别在超级用户(root)和普通用户下进行测试&#xff0c;探索不同等级的用户进入目录需要的权限&#xff0c;以及进入后&#xff0c;显示和创建文件需要的权…

手把手教你制作简易计算器

实现过程&#xff1a; HTMLCssJS 具体通过标签实现计算器整个的框架 通过Css样式实现计算器页面布局及框架优化 通过JavaScript算法实现计算器计算过程 次实验过程&#xff1a; 背景图片背景音乐&#xff08;看个人意愿加&#xff01;&#xff09; 安排&#xff1a; <!--HT…

安装tron_具有Tron效果的JavaFX 2 Form

安装tron这是一个具有TRON效果的简单JavaFX登录表单。 在此示例中&#xff0c;我使用CSS设置TextField和Button的样式。 这是CSS和Effect代码的片段&#xff1a; .text-field{-fx-background-color: transparent;-fx-border-color: #00CCFF;-fx-text-fill: white; }.password-f…

在Spring 4.2中更简单地处理异步事务绑定事件

介绍 如您可能已经知道的&#xff08;例如&#xff0c;从我以前的博客文章中 &#xff09;&#xff0c;不再需要创建一个单独的类&#xff0c;该类使用onApplicationEvent方法实现ApplicationListener以便能够对应用程序事件做出响应&#xff08;包括来自Spring Framework本身和…

linux chattr 无权限,从零开始学习Linux(二十八):文件权限之chattr权限

1、chattr命令命令格式&#xff1a; chattr [-] [选项] 文件名或者目录名&#xff1b;参数说明&#xff1a;&#xff1a;增加权限&#xff1b;-&#xff1a;删除权限&#xff1b; 等于某权限&#xff1b;选项说明&#xff1a;i&#xff1a;如果对文件设置i属性&#xff0c;则不…

初等数论及其应用——中国剩余定理

在线性代数中&#xff0c;我们用高斯消元解决多元的线性方程组&#xff0c;而在数论中&#xff0c;面对一元变量的线性模方程组&#xff0c;我们利用中国剩余定理去求解x。 转载于:https://www.cnblogs.com/rhythmic/p/5928483.html

linux c 11 运行库,11.1.3 运行库与I/O

11.1.3 运行库与I/O在了解了glibc和MSVC的入口函数的基本思路之后&#xff0c;让我们来深入了解各个初始化部分的具体实现。但在具体了解初始化之前&#xff0c;我们要先了解一个重要的概念&#xff1a;I/O。IO(或I/O)的全称是Input/Output&#xff0c;即输入和输出。对于计算…

linux windows 丢失,Win10预览版9879硬盘丢失的Linux解决方案

IT之家讯 12月3日消息&#xff0c;最近IT之家论坛网友九仙仙总结了Win10预览版9879硬盘问题的解决方法&#xff0c;并在论坛中发布出来。经测试&#xff0c;此为快速有效的解决方法&#xff0c;故公之于众供朋友们参考。以下为作者原文。开头说明两点&#xff1a;1、这是我个人…

Android开发——Android系统启动以及APK安装、启动过程

0. 前言 从Android手机打开开关&#xff0c;到我们可以使用其中的app时&#xff0c;这个启动过程到底是怎么样的&#xff1f;1. 系统上电当给Android系统上电&#xff0c;在电源接通的瞬间&#xff0c;CPU内的寄存器和各引脚均会被置为初始状态&#xff0c;CPU复位之后&#…

linux生成文件清单,Linux 获取文件名称生成列表 txt - create_filelist

Linux 获取文件名称生成列表 txt - create_filelist1. find/home/strong/MOTChallenge/MOT16/MOT16/train/MOT16-04/img1/ 文件夹下所有 *.jpg (000001.jpg - 001050.jpg) 的路径 图片名信息写入 txt 文件。1.1 llstrongforeverstrong:~/MOTChallenge/MOT16/MOT16/train/MOT16…

jvm线程分析命令_JVM:如何分析线程转储

jvm线程分析命令本文将教您如何分析JVM线程转储&#xff0c;并查明问题的根本原因。 以我的观点&#xff0c;线程转储分析是掌握Java EE生产支持的任何个人最重要的技能。 您可以从线程转储快照中获取的信息量通常远远超出您的想象。 我的目标是与您分享我在过去10年中积累的有…

[na]华为acl(traffic-filter)和dhcp管理

这个是财务网络的一个问题, 要求财务的某台机器能访问其他部门区的打印机. 其他部门是不能访问到财务网络的. 华为alc配置实例:-traffic-filter # 在VLAN100上配置基于ACL的报文过滤&#xff0c;允许源IP地址为192.168.0.2/32的报文通过&#xff0c;丢弃其他报文。 <HUAWEI&…