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