BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Flex技术在企业级开发中的应用

| 作者 池建强 关注 4 他的粉丝 发布于 2010年6月22日. 估计阅读时间: 19 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

从我个人的从业经历来看,在长达十几年的软件研发过程中,无论是研发的产品或实施的项目,大部分是在为企业客户提供服务。当然,期间我还从事过两年左右的互联网应用的开发。早期的互联网应用开发和企业级应用开发的区别还是很明显的,无论是技术、架构、业务和用户体验,都有很大的不同。举个简单的例子,比如开发语言,最早在2000年左右,大家都用Perl和Asp做网站,后续陆续开始使用PHP、Ruby和Python这样的动态语言来构建丰富多彩的互联网应用,当然这其中也少不了Flex技术。而为企业客户构建的应用,则更多地倾向于静态语言,比如Java和C#等。当然随着技术的发展,这两者之间的交集越来越多,大家会越来越多的发现,很多大规模的互联网站点是基于Java或C#构建的,也有一些企业应用开始使用动态语言。这一点也很明显地展示了企业级应用与互联网的融合。

什么是企业级应用?

说了这么多,需要为企业级应用系统做一个定位。事实上这个概念在业界并不是十分清晰,没有一个明确的定义,什么是企业级,为什么叫企业级呢?有的观点是从系统规模上划分,有的是从团队规模上划分,有的是从开发周期上划分。我个人对企业级应用系统的定义比较简单,主要是用来区分互联网应用和个人软件。什么是互联网应用呢,四大门户(如新浪、网易等)、百度和淘宝、各种SNS网站、博客系统和微博系统等等;个人软件呢,就是指安装在个人PC上的客户端软件,例如编辑器、绘图软件、开发工具等。这两种类型的应用和软件受众都是普通大众,而企业级应用系统的受众是企业客户,是为企业服务的,企业级应用系统的使用者是企业内外部客户以及与企业业务关联的人员。

2009年,在技术层面可以说是一个风起云涌的年份,互联网像一条巨大而充满吸力的纽带,把各种IT服务相关的技术、应用和实现都吸引过来,形成了一个完整而庞大的互联网生态圈。那身处其中的我们认识到了什么呢?随着我们持续的通过技术、平台、产品和项目为企业客户提供服务,我们发现企业应用不再局限在Intranet内部,企业应用系统的互联网化趋势越来越明显,主要体现在以下三个方面:

  1. Intranet到Internet的转变:企业应用系统由局域网转到互联网,企业应用开始要求多浏览器支持,国际化的支持,全球业务的互联互通。同时企业应用不再满足简单的表单和表格界面,富互联网应用(RIA)的需求应运而生,企业客户越来越倡导用户体验,RIA也是我们后续要重点讨论的话题。
  2. 企业应用的内容转变:除了企业的核心业务系统,这样一些需求渐渐浮出水面:交互性门户系统、电子商务平台、企业级2.0(博客、Wiki、RSS和微博等)、企业级SNS(社区平台)和无线企业应用等。
  3. 需求的转变:除了功能需求,客户对于安全、性能、大容量和大并发等特性愈发关注,在可预见的未来,企业应用一定是构建在互联网而非局域网,可能是在云端,也可能在其他的新技术上实现

作为现阶段的IT服务提供商,必须从技术层面和业务层面去适应和支撑这样的趋势变化,否则我们会变得步履艰难。
好了,谈了这么多,主要讲了一个趋势的变化。下面我们来看一下在互联网和企业应用中都能发挥巨大作用的RIA技术。

RIA简介和选择Flex的原因

RIA技术的全称是富互联网应用(Rich Internet Application),RIA首先应该是一个网络应用程序,其次它还要具有桌面应用程序的特征和功能。可以这样理解,如果你的桌面程序能在网络上(目前主要是基于浏览器)运行,并且能保持其原来的功能和特征,那么我们就可以称它们为RIA应用(富互联网客户端应用)。

目前RIA的主流技术主要包括Adobe公司的Flex,微软公司的Silverlight和Java阵营的JavaFX。Flash由于Flex SDK的支撑,很早就从单纯的动画展示转入RIA领域,而且由于Flash的普及,Flex目前应该是三大技术体系中市场份额最大、应用最广泛的技术;Silverlight是微软推出的跨浏览器和跨平台的插件,能在微软的.NET上交付炫目的多媒体体验和有丰富交互功能的Web应用,已经对Flex有了很大的冲击;JavaFX是未被收购前的Sun公司在2007年推出的用来对抗Flex和Silverlight的桌面应用,但由于起步较晚,目前应用并不广泛,但其Java的原生性和开源性质对Java社区的开发人员还是有很大的吸引力。

基于以上三种技术,我们最终选了Flex做企业级的富客户端应用开发,虽然苹果公司的CEO乔布斯老师已经开始公开表示不在苹果的移动设备上支持Flash,尽管HTML5和CSS3来势汹汹,但是在企业应用开发这样一个不是非常激进的领域,考虑到Flash广泛的群众基础,最终我们还是选择了Flex。

事实上在互联网应用中,RIA技术早已散发出夺目的光辉和迷人的魅力,无论是电子商务中的产品展示,还是SNS网站上的交友游戏,亦或是游戏和教育领域里的交互性设计,已经为广大互联网用户带来了无以伦比的客户体验。那么在企业应用系统中,企业客户还在满足于呆板的树形结构、简单的表格和文字性质的描述吗?就我们的经验来说,2008年开始,企业客户就开始向我们提出这样的需求了,例如操作复杂的表单、图形化内容展示、动态报表绘图、图形化流程配置、流媒体视频播放和文档播放等,这一切都是在浏览器上进行的。对于大部分这样的需求,我们都是笨手笨脚的使用了Javascript、Extjs、Jquery和Activex等前端技术勉强实现了,对于不能实现的需求,我们只能腼腆的告诉客户,这些功能我们还实现不了,或者说浏览器不应该有这样的操作等等,当然这种话事实上也很难说服我们自己。

直到我们决定采用Flex技术来实现富客户端操作之后,我们才发现很多问题在Flex面前迎刃而解了。在Full-Stack系统中,如果Ajax技术和Flex技术配合形成前端组件体系,将大大提高开发效率、系统性能和改进客户体验。

Flex是Adobe公司开发的可以输出成基于Flash Player来运行的互联网应用程序。Flex 基于标准的语言,与各种可扩展用户界面及数据访问组件结合起来,使开发人员能够快速构建具有丰富数据演示、强大客户端逻辑和集成多媒体的应用程序。Flex目前最新版本是4,一个Flex应用程序应该有两种语言代码完成,那就是ActionScript和MXML。ActionScript是一种面向对象的脚本语言,MXML则是一种标记语言,非常类似于大家所熟悉的超文本标记语言(HTML),扩展标记语言(XML)。简单来说MXML用来描述界面,ActionScript用来处理业务逻辑。

以下是Flex的一些基本特点,也是我们采用Flex的重要原因之一:

  1. 可视化开发,通过拖拽方式开发界面
  2. 对于有XML和脚本开发经验的人员,很容易上手
  3. 可实现表现层与后台的真正分离
  4. 丰富的媒体支持和动画效果,良好的用户体验
  5. 支持多种通讯方式和数据格式
  6. 同时支持客户端和浏览器模式
  7. 跨平台,支持各种操作系统和浏览器

基于Flex构建企业级应用开发平台

与普通开发者使用Flex技术不同的是,我们采用了一种组件化的方式引入Flex,这是因为我们对这部分技术的引入并不是从零开始,为了应对企业级应用开发的需求,我们很早就构建了一个企业级应用开发平台——GAP(Global Application Platform)平台,这是一个Full-Stack的应用开发平台,除了底层框架、组织权限、工作流引擎、数据字典等等,还包括界面框架、通用Web控件,Ajax控件等,Flex的引入是对现在平台的补充和完善。

基于以上考虑,我们对Flex的应用分为三个阶段。

首先,进行Flex与GAP平台的整合,包括组件化集成、前后台通信机制的设计,在这一阶段我们主要采用了ant和xdoclet技术进行组件的打包、资源文件的合并,采用Spring BlazeDS Integration技术与GAP平台框架进行交互访问,通信方式采用了Felx提供的RemoteObject。(Spring BlazeDS Integration是Adobe与Spring共同联合开发一个开源项目,其目标是开发者可以利用Spring开发模型通过Flex、BlazeDS、Spring以及Java技术创建RIA )。

其次,构建Flex图形组件框架,对Flex提供的控件进行封装、扩展,形成针对企业应用的个性化RIA控件库。在这一阶段我们主要是基于Adobe的开源项目Cairngorm进行构建的。Cairngorm是一个基于Flex技术的微内核的MVC框架,设计简洁而易于扩展,非常适合构建自己的RIA控件库。

第三,使用Flex技术解决企业应用中的实际问题。

下面我们主要从实际应用的角度来看一下Flex在企业级系统开发中能够做什么。

一、企业组织结构的图形化展示

凡是为企业开发过系统的人都知道,企业的组织结构管理和权限管理几乎是每个项目或产品不可或缺的基础组件之一。从功能角度分析,GAP平台的组织权限系统已经非常完善了,无论是多关系的组织结构、细粒度的权限控制,都可以非常好地满足客户对于组织管理和安全的需求。直到有一天一个客户提出,能不能把那棵呆板的组织机构树变成组织结构图,如果能支持图形化操作就更好了。听到项目组给我们反馈的这个需求,第一个反应就是拒绝,因为实现起来太麻烦了。

原有的组织结构树如下图所示:

客户需要的展示方式可能是:

也可能是:

同时企业客户还希望能够进行图形化操作管理,这种功能如果通过Javascript来实现无疑是困难的,而Flex技术在处理类似的功能时则具备先天的优势。首先Flex是一种可以运行在网络上的客户端技术,它提供了一套成熟的图形化控件和类库,可以很容易的实现图形和布局控制。同时,Flex可以通过多种通讯方式(HttpService、RemoteObject、WebService)与Server端的服务进行数据交互,使得图形化操作变得非常简单,例如把人员拖到另一部门,双击显示该机构的详细信息等。最终我们也是通过Flex技术实现了客户的需求。

二、表单操作

Flex同样可以构造出复杂的表单功能,操作便捷,响应迅速,适应企业不同场景的需求。例如这样一个基于Flex技术的表格,看似简单,实际上是包含了排序、过滤、表头拖拽、表头固定、合并等功能,类似的功能如果用Ajax的方式来实现代码量会很大,但是在Flex中,这些特性基本上是原生的,或经过简单开发即可实现,代码量非常小,而且性能远远超过普通列表控件和Ajax列表控件。经测试,在同一场景下,通过Flex列表控件加载1000条数据,平均响应时间是0.1秒,Ajax控件0.5秒,普通刷新页面的方式最慢,从发出请求到返回并显示数据,大概需要1秒钟。

三、流程设计器

2004年我们开始研发工作流平台,其核心功能是工作流引擎和流程设计器。为了开发出Web-Based(基于Web)的流程设计器,我们投入了极大的人力物力,最终采用ActiveX控件实现了复杂的流程设计、流程监控等功能。到目前为止基于浏览器的流程设计和监控仍然是我们的功能特色之一。但是随着技术的发展,基于Activex控件的流程设计器越来越显示出局限性,例如不支持多浏览器,不支持国际化,在各种Windows和IE版本中的自动安装经常会出现问题,最重要的是扩展起来比较复杂。

下图就是基于ActiveX技术的流程设计器。看上去很美,但的确存在着问题。事实上我们正在积极准备基于Flex技术对流程设计器进行改造,改造完成后,上面提到的问题即可迎刃而解。技术的进步带来应用的改进,所以我一直强调,技术创新才是软件企业的原动力。

四、动态图表

通过图表描述业务数据,加强数据的展现能力。每个图表都可以支持参数的动态变化,响应点击事件,实现动态效果,而这些几乎不需要额外编写代码。传统的报表工具或制图工具,例如BIRT或JFreeChart等,处理报表图片时都是通过流的方式输入静态图片,一旦生成,就是静态页面,用户无法与之交互。而使用Flex进行图表的开发,则可以轻易突破 这一障碍,Flex提供了大量内置的图表控件,用来进行图表展示,在浏览器上的表现方式为Flash,可以在生成图表之后,继续实现前后台数据的交互和展示。例如使用CandlestickChart控件来实现蜡烛图的动态展示。从一下两张图可以很清楚的看出,通过选择不同的选项,可以显示不同的趋势变化,点击图元还可以显示该图元的相关数据。这些复杂的数据操作基本上是由CandlestickChart控件完成的,开发者只需要组装数据即可。事实上要实现这个功能样例,只需要100行左右的代码。

五、知识管理

企业信息化10年,积累了大量的数据、文件、视频需要进行展示,通过Flex可以构建通用的播放器,利用流媒体技术、全文检索技术实现企业内部的知识管理。类似的技术和功能在互联网上已经不是什么新鲜事了,例如slideshare、youtube,国内的豆丁、优酷等,这些网站要么是基于文档的管理,要么是基于视频的处理,但它们的共同点是核心技术都采用了Flex。对于互联网领域,领域的细分无疑是非常明智的,但是在企业级应用领域,企业客户更关注的是应用的整合,我们拟基于Flex技术开发通用的前台播放器,可以同事播放视频和文档,后台采用Flash Midea Server和文件服务器,结合内容管理、全文检索和标签云技术,实现企业信息数据的全流程管理。

六、动态商品展示

基于Flex技术的动态商品展示已经在很多中大型电子商务公司应用,通过Flex可以实现很多眩目的效果来进行商品展示,同时可以动态设置商品的属性,让客户更好的了解商品细节,增加客户粘度。这样的技术在企业级应用中同样适用,主要业务领域应该是企业的电子商务平台。

七、全键盘操作

某些特殊领域的客户,比如要快速录入大量数据,就会对全键盘操作有需求,要求在浏览器做的应用要能像Excel一样全键盘操作,除了支持Tab加Enter键之外,还需要能够支持四个方向键的操作支持,就像是Excel一样,当单元格中的文字处于全选状态的时候可以通过方向键进行导航。这样的功能用普通的Javascript实现一个是复杂,而是会降低网页性能。但用Flex来实现这种特殊场景就完全没由这些问题,本质上来说Flex还是客户端技术,可以很好的提供键盘支持。

结束语

企业客户越来越认识到RIA技术对于企业应用的重要性,而Flex就是实现RIA重要的选择之一。但是,无论技术也好,创新也好,有用的才是好的,不能因为技术而使用技术,因为创新而创新。就Flex而言,从根本上说它还是一个客户端程序,所以一定会比普通的Web页面更多的占用更多的客户端资源,所以我不建议大家在构建企业应用时大量采用Flex技术,一定要用其所长。Flex在互联网领域早已大放异彩,那么它是否能成功应用于企业应用的开发呢?不必拭目以待,我想这个答案无疑是肯定的。

关于作者

池建强,12年软件从业经验,先后在洪恩软件和用友集团任职。目前在用友集团瑞友科技IT应用研究院任副院长,负责公司基础应用平台的研发和整个公司的技术管理。主要关注领域:企业应用软件平台研发、领域驱动设计,OSGi,动态语言应用、云计算、移动互联等相关技术。


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

路过拙言 by yu jinliang

非常赞同!Flex的核心价值在表现层,它有基于组件的表现层快速开发模式,结合Cairngorm,将Flex客户端请求代理到服务器端的Java RemoteObject,能够与J2EE,.NET等企业级方案完美结合。此外,如果基于GAP,采用工具集:Flex + Cairngorm + (Flex-Ajax Bridge) + DWR + (Struts) + Spring + DB的组合来开发企业管理应用软件,也是非常优雅的。

Re: 路过拙言 by jack jack

楼上的同学以及作者 池建强 ,看到此回复能不能加QQ4387163,详细聊聊,请教一下问题。

Re: 路过拙言 by 龙 张

不知Flex要通过remote object访问服务端的.NET如何实现呢?目前Adobe官方提供的组件是LCDS,还有开源的BlazeDS,但都只能连接Java而非.NET

Re: 路过拙言 by chi jacky

有问题这里讨论不是更好,可以共享给更多的人

Re: 路过拙言 by chi jacky

Flex与.Net交互一般采用Web Service的方式,通过标签<mx:WebService>即可,不必采用Remote Object的方式。</mx:webservice>

Re: 路过拙言 by 霍 泰稳

同意,建议直接在这儿参与评论,这样其他路过的同学也能分享你们的讨论 :) Jack可以在这儿提出问题,我想其他朋友会热情回答的。

Re: 路过拙言 by 刘 灿

我也觉得 Flex 在表现层的作用无可取代.N 多开发人员说 Flex 会怎么怎么被 HTML5 取代,我觉得是完全没有道理的.毕竟 web 应用是 web 应用, b/s 软件是软件.两者应该还是有很大的区别的 .

flex和html5之争 by chi jacky

html5应该是代表了未来的技术,浏览器的包容性会越来越大,也可能有一天,浏览器不需要在下载任何插件(flash,silverlight,applet,activex等),所有的一切浏览器就都搞定了,怎么搞,那可能就是基于html和css了,版本到了几不重要,重要的是趋势。
flex/flash不会消亡,没看adboe都在积极推动html5么,而且,flex代表了现在,势头未减。
所有我的建议是:非微软体系的用flex,微软体系的用silverlight,代表未来和创新的,赶紧适应html5标准吧

Re: 路过拙言 by unreal 虚幻

.net平台支持感觉不太好。.net可以用silverlight+架构prism+wcf+实体框架+db

Re: 路过拙言 by 龙 张

谢谢回复。这个我知道,一般Flex与服务端常用的交互方式有HTTP SERVICE,WEB SERVICE还有REMOTE OBJECT,只是方才楼上的朋友说到用REMOTE OBJECT连接.NET我才感到奇怪,因为在自己以往的经验中,Flex连接.NET只有HTTP SERVICE,WEB SERVICE这两种,而前者一般也只是通过json或是xml交换数据,呵呵

Re: 路过拙言 by 龙 张

我感觉Flex对java的支持要好过.NET,起码从Remote Object的支持力度就可见一斑

Re: 路过拙言 by chi jacky

确实如此,应该根据技术特点使用技术,而不是为了用技术而用。

Re: 路过拙言 by chi jacky

Remote Object是三种方式中效率最高的,从这个角度看,可以这么说

html,flex? by xijie qjx

现在的公司前台就是用flex+blazedb。但总感觉还是html+css+少量的JavaScript就已经可以解决大部分问题了。个人感觉在企业管理和后台管理这些复杂需求用flex合适,普通前台还是很怀念html的。

Re: html,flex? by chi jacky

结束语对你说得内容有建议:
企业客户越来越认识到RIA技术对于企业应用的重要性,而Flex就是实现RIA重要的选择之一。但是,无论技术也好,创新也好,有用的才是好的,不能因为技术而使用技术,因为创新而创新。就Flex而言,从根本上说它还是一个客户端程序,所以一定会比普通的Web页面更多的占用更多的客户端资源,所以我不建议大家在构建企业应用时大量采用Flex技术,一定要用其所长。

Re: 路过拙言 by bx glove

.net和flex之间集成,可以看这个框架
www.fluorinefx.com/
新的Spring和BlazeDS整合思路,跟这个框架基本一致。

Re: 路过拙言 by bx glove

我还是要推荐一下这个项目
www.fluorinefx.com/
.net和flex集成很简单。

用flex开发还有一个好处是,一套flex客户端可以对应java、.net甚至ROR服务器端,这对于原先有很多系统的企业来说,整合会简单的多。

Flex? by King Tobato

企业应用中需要Flex么?或者说需要用Flex做所有的UI?我一直对这个很质疑,LZ文中的权限管理例子缺乏说服性,权限管理一般都是系统管理员用的,需要整得那么绚么?其实很多企业应用中客户真正需要的是操作的便捷、速度与友好性。我的意见是先保证逻辑的正确性,操作的便捷性,即使最简单的HTML+CSS+少量的AJAX也能完全满足企业应用的要求,盲目的追求技术是不对的。
如果说需要整得很炫,比如什么领导查询、宏观决策的界面,倒是有FLex一展身手的时候。

Re: 路过拙言 by chi jacky

多种选择确实不错,经过我遇到的.Net开发人员,很多采用silverlight

Re: Flex? by chi jacky

对于上文中的两个问题:
1、需要
2、不需要

其实这两个问题文章都回答了

Re: html,flex? by Di Jason

其实Flex做前台挺讨厌的,还要Flash Player支持,浪费资源,万一客户机是手持呢。场景复杂用Flex还差不多

基于RIA Flex Flash 平台开发的进销存企业信息管理系统开发经验 by tangu soft

基于RIA Flex Flash 平台开发的进销存企业信息管理系统开发经验



基于RIA Flex Flash 平台开发的进销存企业信息管理系统开发经验
(欢迎转载,转载请注明作者,尊重版权)

关键字: RIA Flex 应用成功案例 实际项目

基于Flex的进销存系统演示地址

www.tangusoft.com/Demo/

flex 技术咨询
tangusoft.com/consultant.html


作者www.tangusoft.com
一. 中小企业进销存系统和运行平台以及技术架构

1. 中小企业进销存系统特点:
a. 目标客户
零售批发中小企业,企业规模人数500人以下,销售额1500万元以下。
b. 数据操作频繁
每天频繁操作销售和采购以及仓库出入库,经常需要查看企业基本信息,包括商品信息,客户供应商信息,应收应付。并且需要快捷的操作系统。
c.存储数据量有限
商品信息大概5000条,客户供应商大概1000,
每天单据信息大概50条,每年单据信息大概20000条
d.并发操作用户数量固定
销售员,采购员,经理,财务,大概20人左右。
e. 用户使用地点不同
需要直接方便浏览器访问系统
f. 客户浏览器处理功能强大
目前客户电脑普遍内存1G, 处理器 双核2.0 以上
g.中小企业普遍软件预算不高
同时也尽量避免盗版软件引起的法律诉讼和纠纷。

2. 运行平台和系统架构
根据中小企业进销存系统的众多特点,同时考虑技术成熟度和新技术风险,我们决定采取以下运行平台和系统架构
运行平台 Linux Apache Tomcat Mysql
系统架构
表现层Flex 3
数据处理和控制层Blazds + Spring + Ibatis

Flex/Flash 具有以下优点
客户端 界面友好,数据表现能力强大,处理能力强大,有一定的缓存数量的能力,减少服务器请求次数,节省不必要的网络传输。
BlazDS 能够处理并发用户的请求,并且能够压缩数据。
Spring 声明性的代码配置,减少系统维护工作量
Ibatis 减少实际编码,考虑以后支持多种商业数据库

运行平台免费,企业零预算。

二,框架和代码生成器
1. 选择成熟的Flex 框架

cairngorm 和 pure MVC 是目前成熟的open source 框架。
基于Adobe 支持和维护cairngorm,所以采用cairngorm
同时cairngorm 对view 表现层 和 control 控制层 的隔离和耦合没有成熟的解决方案,开发过程我们曾经使用ViewControllerHelper ,用addListener监听器监听event 事件的执行,实际过程发现代码维护成本太高,遂中途放弃。
最后我们同时引进universal mind cairngorm作为补充辅助框架。
2. Ibatis 代码生成器
选择Abator
三,解决方案
1. 客户端尽可能使用单例模式
减少不必要的客户端内存开销
2. 适度利用客户端缓存
对于商品以及客户供应商, Flex 缓存这些数据,各模块共享数据。
3. 尽可能的采用lazy load 惰性载入数据
很多Flex 系统采用初始化时候一次性载入系统所需要数据,结果导致延长用户登录时间,用户体验非常的差。
4. 不要过度依赖客户端处理能力
特别是大数据排序或者处理请求大数据能力的时候,flex 很容易导致浏览器停顿和不响应。请把大数据排序放在Java或者数据库端,适度的分页分段向服务器请求数据。
5. 最大有效的利用Flex 3新的类库。
减少开发工作量。
例如利用arraycollection 内置的filerfunction 进行查找数据。
6. 定制开发一些特有的控件
带合计栏的datagrid
能模糊查询的combobox
7.报表开发
使用成熟的jasper report 框架。
8. 用户权限的开发
动态创建用户所能操作的模块,而不是简单控制模块的可见和不可见属性
9. 减少生成swf 大小
使用runtime shared library 编译swf
10. 开发模块组件化
判断标准是没有出现冗余重复模块代,application mxml 文件代码简洁
11. 模块之间的数据和方法调用

A模块引用B模块的数据d和方法f,避免简单的调用B.d 和 B.f
需要采用数据和方法的传递,以免多层次的模块数据和方法调用导致代码的复杂。
12 使用resource bundle
标签和文本以及提示从resource 文件读取。

四,基于Flex的进销存系统演示地址

www.tangusoft.com/Demo/

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

22 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT