Flex技术在企业级系统中的应用
时间:2018-10-05
Flex是一款基于标准编程模型的高效RIA开发产品集,能够在客户端完成数据处理,提供更友好、迅速的用户交互体验,并能与企业级应用体系结构良好整合,增强表现层应用,进一步提升界面的友好程度,减少用户与系统的交互频度,从而提升用户体验。本文将带您深入Flex的世界,结合Flex技术在我司企业信息化软件项目中的应用,展现其绚丽与精湛。
1引言:在企业级应用软件项目开发中,开发人员关心最多是系统框架、业务功能的实现,很少去关注易用性方面的问题,而在系统运行期或者维护期,用户体验是非常重要的,对于一个功能很强大,但是存在诸多易用性问题的系统,也会让用户很不满。RIA(Rich Internet Appication,富客户端互联网应用)技术,有效解决了这方面的问题,它对表现层进行了大幅度的增强,进一步提升了界面的友好程度,并且减少了用户与系统的远程交互频率。
RIA技术有很多种,有Fex、Siveright、javaFX等,相对其他RIA技术相比,Fex有很多优势。说起Fex,大家也许有些陌生,但是如果说到Fash,大家应该再熟悉不过了,当前网页fash游戏、fash动画风靡,它多元化的信息展示、丰富的图形让不少人为之痴狂。随着网络世界多元化的发展,fash不再仅限于设计,它慢慢的渗透到开发当中。Fex的出现让开发人员尤为兴奋,和fash相比它更倾向于程序开发,不需要熟悉过多设计方面的知识,用相对简单的代码就可以完成绚丽高效的应用。
2 Fex概述
2.1Fex简介
Fex是一种基于标准编程模型的高效的RIA开发产品集,最初由MacroMedia公司在2004年发布,后被Adobe公司冠以商标。
Fex 是一个提供开发设计和运行支持的架构,它可以使开发人员创建利用Adobe Fash Payer为依托的富客户端互联网应用程序,以满足用户更为直观和极具交互性的在线体验。
2.2 Fex工作机制。一个完整的Fex程序由MXML代码和ActionScript代码组成。MXML基于XML标准,用于配置和设计Fex程序的界面及编写表现层数据模型;ActionScript基于ECMAScript,原来用于设计Fash动画,其语言规范类似于JavaScript。这两种基于W3C标准的开发语言就构成了Fex程序,这两种语言的关系类似HTML和JavaScript。当你编写一个Fex 应用程序时,使用MXML 去设计布置用户界面,使用ActionScript 去处理与用户的交互。你可以使用不同的方法将ActionScript 和MXML 混合在一起。设计完毕,对Fex进行编译,Fex 应用程序被编译成一个SWF 文件,然后在Fash Payer 下运行。当一个源代码被编译时,它就被转换成ActionScript 类,并与图形和其它资源合并到SWF 文件里。在运行时,SWF文件与所需的外部库、服务和数据源进行交互。如图1所示
2.3 Fex开发工具
每一门开发技术都会有相应的优秀开发工具的支持,Fex也不例外。Fash Buider算是Fex的正统开发工具。
Fash buider曾经被命名为Fex Buider,2009年5月16日,Adobe 公司宣布“下一版本的Fex Buider将被命名为 Fash Buider”。官方的解释是,“这样可以使Fash家族工具的命名具有更好的一致性,并藉此将Fash Buider定位为开发工具”。另外,还有两款Microsoft Visua Studio 2010的插件,EnsembeTofino(免费)和amethyst(商业),安装插件后,我们便可以在VS2010中进行Fex开发、调试、测试,这两款软件都有智能提示功能,其中amethyst作为商业软件,提供了更多强大的功能,可以进行所见即所得的开发,而EnsembeTofino只能进行纯编码开发,只有编译执行后才能看到设计效果。
3 Fex与企业级应用的集成
3.1如何将Fex融入现有开发
目前,我所信息化建设正在紧张进行中,越来越多的人看到了信息化带来的便利,因此信息化需求也越来越多,当前主要是对功能方面的需求,但是一旦系统运行后,用户的需求就会上升一个层次,产生一些个性的需求,主要为易用性和可视化方面的要求,比如增加图形展示以直观的方式显示数据,用拖拽的方式完成操作等等。另一方面,一旦我们的软件在所内使用取得重大成功,势必会向外界推广,作为产品,我们必须经过包装,增加软件的亮点,增强在同类软件中的竞争力。
基于我所信息化建设开发现状,对现有RIA技术和JavaScript等传统前端开发技术进行了一些比较,Fex存在以下优点:1.资源丰富。这包含了网络、文章、书籍、社群、Opensource、程序范例、指针性大厂采用(背书)、顾问辅导(咨询)、原厂技术支持、不断提供回馈、改进……。2.学习难度较小,易上手,有强大的IDE开发工具。3.在企业级系统应用方面已有成功案例。
很多人关注Fex能否和现有开发技术融合并完美的展现数据,这一点大家不必担心,Fex提供了多种方式和服务端通信(例如WebService方式),不管服务端技术用的是java还是C#,还是VB、VC,只要能够提供指定格式的数据,Fex都可以转换成Fex专有类型,进行数据服务。
3.2 Fex图表组件在企业级系统中的应用。Fex 图表框架是一个功能强大的数据控件系列,它提供了丰富的数据支持,可以为多种数据类型创建深入的和可交互的图表,它定义了一些最常用的图表,例如柱状图、饼图和列状图,并且可以使用Fex很大程度上改变这些图表的外观。以下我们将以Fex图表功能和FastReport图表功能在信息化软件项目中的实际应用进行比较。在合同管理系统的图表统计模块,采用了Fex技术,效果图如图2所示
该模块使用Fex主要实现了数据的动态查询,自定义鼠标悬浮数据显示,数据变动平滑动画等等。
而在物资管理系统的物资采购份额分析功能中,则采用了FastReport报表工具,效果图如3所示
在技术选型期,我们曾经尝试了js图表控件、商业第三方软件等等,通过试用、比较,我们发现这些控件、软件虽然能够实现大部分需求,但是要么开发难度大,要么可定制扩展能力差,比如FastReport,虽然它的开发难度几乎为零,全部为参数化、所见即所得的操作方式,开发效率很高,但是灵活度很低,互动性比较差,而采用Fex,它的优势就凸显出来了,开发难度小――一小行代码就能实现数据变化平滑动画,定制扩展能力强――灵活丰富的接口。
3.3 Fex图形设计在企业级系统中的应用.Fex在图形设计上应该说是它的强项,Fex可以自定义用户界面,自定义主题,自定义图形,其丰富的UI控件,更是给开发人员带来了极大的便利。以下将以工作流程设计器和甘特图为例来发现Fex的技术优势。
以下为工作流程设计器Orchestra Designer,如图4所示
图4 工作流程设计器
该项目由北京航空航天大学计算机新技术研究所开发完成,用户一方面可以通过图形化操作界面来减少建模过程中的错误以及歧义,从而提高建模效率;另一方面,通过定义友好的图形化界面,可以让业务人员定义业务逻辑更加轻松,而技术人员则可以更加专注于完成具体应用逻辑,从而让业务人员和技术人员结合的更加紧密。和传统建模工具相比,最大的优点就是可以运行于网络之上,使用方便且跨平台,无需安装;和JavaScript等其他技术开发的基于B/S架构的工作流程设计器相比,最大的优势就是Fex 良好的界面表现力,低廉的开发成本,灵活的架构支持,良好的可扩展性和可维护性。然后我们看一看下一个例子―甘特图,如图5所示
图5 甘特图
这是国外某公司的projectManager中的甘特图。目前我所项目管理系统中采购的为JavaScript编写的甘特图,和基于Fex的甘特图相比,其运行流畅度就要大打折扣了,其灵活度也不是很高。
3.4 Fex数据服务在企业级系统中的应用
Fex为实现发送和从应用系统中接收数据功能,提供了RPC(RemoteProcedure Ca,远程过程调用)服务、数据管理服务(Data Management service)和消息服务(Message Service)。这些服务可以为应用系统提供数据同步、实时数据更新、数据复制、数据分页和偶然连接程序服务器,与使用面向消息的中间件的企业级后台集成,提供数据推送功能,自动将数据推送到客户端而不需要应用服务器轮询。
3.5开发要点
1.RIA是系统应用的一种趋势,但也不是说RIA就适用于所有网站或内容,这也要依赖于使用者的目的与环境。
2.FLEX适用于不以文本阅读为主要目的,图形化占有主导地位的模块,如工作流图形设计模块、系统图表模块等。
3.在 Fex中,开发人员可以开发出符合各种需求类型的应用程序,它们是:用户数据收集;配置;在客户端处理用户的输入,包括过滤和数据校验;直接反馈用户;多步骤处理;支持大数据集;实时数据推进;偶尔的客户端连接。
4 Fex技术在企业级应用中的展望
到目前为止,Fex开发技术在我所信息化软件项目研发中的应用还仅限于一些交互式的web页面、统计分析图表或者是一些主要应用的补充,虽然这些应用的层次还较低,但我们不难发现Fex应用还蕴藏着巨大的潜力,我们正在一步一步的尝试,尤其Fex的很多特性功能还没有投入实践,以后会加大这方面的研究,相信Fex技术一定能够在企业级应用的前端软件研发中发挥更重要的角色,使我们的客户端表现产生颠覆性的变革。
5结束语
每一种语言都是一门艺术,只要我们善于发现、探索,总会发现它独特之处,而Fex就像一幅“蒙娜丽莎”,有着它独特的韵味;像埋藏已久的宝藏,慢慢浮出水面,闪闪发光;又像一瓶葡萄酒,久了才会发现它的芬芳。希望通过本文,您对Fex有了一定的认识与了解,如果有兴趣,可以共同学习、交流,一起发现Fex的美丽。
参考文献
[1]辜蔚君.关于人力资源数字化转型中数据管理工作的思考[J].厦门科技, 2023(1):43-47.
