Jbpmside要使用Flex开发流程设计器以及管理器,刚好公司的一个内部项目也应用到Flex,大概花了一个礼拜来熟悉和了解Flex。其中发现Flex开发和AJAX开发的很多相通之处,这里把自己对Flex的一些学习心得总结一下。分为三部分,分别是对Riawave框架的介绍、参照Riawave,对自己先前采用的AJAX开发框架的介绍、以及对AJAX前景的一些自己看法。
一、Flex框架Riawave的定制应用
Flex有很多开发框架,最有名的是Cairngorm。但是Cairngorm太复杂了,职责的细粒度分离带来的是过多的类和代码,不太适合中小项目。这里我们采用了Riawave,准确的说Riawave并不是一个框架,它只是一个通讯录管理的简单代码示例,它包含了很多的最佳实践。这里想说一点,就是很多时候采用某种技术起决定因素的往往不是技术本身是否先进,而是看该技术的使用者是否众多。
Riawave将应用程序拆分成三部分,分别是Views、ModelLocator、DAO。
Views指的是应用里的页面组件,例如表格、表单、菜单等。它的职责:1、组成整个应用的界面;2、对组件内部的原生事件进行处理,这些事件指发生在该组件里的鼠标事件和键盘事件;3、当需要其他组件进行协作时,发布定制事件;4、对其所关联的数据进行操作;5、监听其他组件发布的与之相关的定制事件,并做出展现形式上的改变。
ModelLocator是整个应用的核心。它的职责:1、集中存储应用的所有数据;2、给页面组件提供统一的定制事件监听器接口,即所有的页面组件要对其他组件的定制事件监听则必须通过ModelLocator来进行订阅;3、唯一的定制事件发布接口,即任何页面组件要发布自己的定制事件都必须通过ModelLocator发布;4、集中维护所有定制事件的类型。ModelLocator是单态的,通过ModelLocator,应用程序所有的定制事件都被统一管理。
DAO负责操作应用的数据。它的职责:1、改变应用的数据,提供应用数据修改的统一接口,即用户操作页面组件改变数据时,实际上是由页面组件转发给DAO处理;2、远程访问服务端,Flex通常作为应用程序的前端展现出现,和AJAX一样,数据的操作要和服务器端进行交互;3、服务器端返回正确的操作结果后,改变ModelLocator里的数据,发布定制事件,触发相应页面组件改变。
可以看到,整个Flex应用完全是由事件驱动的。其他需要了解的部分:1、Flex的Data Binding机制,这个机制实际也是由事件发布/订阅机制实现的,它可以省去自己编写重复的定制事件发布/订阅代码,实现组件展现数据与ModelLocator的数据同步;2、VO,本地的数据建模、用途:发布定制事件时,通过VO携带组件数据,VO被包含在事件里;传递数据到DAO。
二、自己采用的自制AJAX框架介绍
与Flex一样,AJAX也是事件驱动的。在自己以前的AJAX开发中,也自制过与Riawave类似的开发框架,应用的效果也不错。在这个框架中,采用了Mootools。
使用过一些js库,包括prototype、Mootools、Jquery和Ext。说说自己的看法:prototype更像是底层库,封装了DOM查找和操作、XMLHttpRequest异步访问以及简单的js类继承体系,方便小巧;Mootools的特点是非常面向对象,另外对事件进行了统一的管理,这两个特点决定了Mootools非常适合用以编写自己的AJAX组件;Jquery在项目中使用过一部分,丰富的插件让人印象非常深刻;Ext则是一个完整的解决方案,代码非常有参考价值,提供了众多的组件,但是只是适合企业应用,另外,效果有些让人审美疲劳。
应用程序分为三部分,分别是View、ModelLocator、DataHandler。
View同样是应用里的页面组件,例如表格、表单、菜单。它的职责:1、组成整个应用的界面;2、对组件内部的原生事件进行处理,这些事件指发生在该组件里的鼠标事件和键盘事件;3、当需要其他组件进行协作时,发布定制事件;4、调用DataHandler对其所关联的数据进行操作;5、如果存在子组件,监听子组件发布的定制事件,调用其他子组件协作,或者继续向上发布定制事件。
ModelLocator负责维护整个应用的数据。ModelLocator是单态的。
DataHandler负责操作应用的数据。它的职责:1、改变应用的数据,提供应用数据修改的统一接口2、远程访问服务端;3、服务器端返回正确的操作结果后,改变ModelLocator里的数据,回调调用View里的方法,View会改变DOM元素、发布定制事件,触发其他页面组件重新渲染;4、应用程序的入口,由一个服务器访问开始,使用返回数据构造View Container。
与Flex相比,事件的订阅/发布机制发生了变化,改为由View组件向父View组件依次冒泡传递,直到找到可完全处理该事件的组件为止。
在AJAX开发里,由于没有统一的View组件,所以组件之间的关系通常是一种容器-子组件的关系,是一种层级关系。第二层的子组件可能充当第三层组件的容器。
容器的职责:1.保存对所有子组件的引用;2.订阅子组件的定制事件;3.调用其所管理的子组件协作;4.渲染时调用子组件依次渲染;5.销毁时,依次调用子组件的销毁方法;6.当对子组件发布的定制事件无法完全处理时,继续向自己的上一层的容器发布事件。
三、对AJAX的看法
很多人将AJAX与Flex相比,认为AJAX只是一种过渡的技术。我不这么认为,我认为Flex适合企业应用,而网站还是会广泛应用AJAX。另外,个人认为AJAX需要进一步提高的地方:1、统一标准的组件库,现在的组件库没有标准,嵌入到网页里应用没有问题,但是当需要这些组件进行协作时会比较困难,需要大量的编码;2、更快的JS解析引擎,这个没什么好说的;3、更强大的运行环境。
分享到:
相关推荐
总的来说,学习并掌握基于Flex框架的应用开发,将使开发者具备构建高度交互性和响应性的Web应用的能力。不论是从用户界面设计到后端数据交互,Flex都提供了一套完整的解决方案,帮助开发者实现高效且灵活的开发流程...
在本文中,我们将深入探讨Flex的核心概念、主要特点、开发环境以及如何使用Flex进行Android应用开发。 Flex是一种开放源代码的框架,它使用MXML和ActionScript两种语言来构建用户界面。MXML是一种声明式语言,类似...
Flex框架是一种基于Adobe Flash Player和Adobe AIR运行时的开源应用程序框架,主要应用于创建富互联网应用程序(Rich Internet Applications,简称RIA)。在Java-FLEX的结合中,Flex提供了前端用户界面的构建能力,...
这个Flex+Java登录实例完整框架,为开发者提供了一个基础模板,便于快速开发类似的富互联网应用,同时也展示了前后端分离的开发模式。通过学习和理解这个实例,开发者可以深入掌握Flex和Java的整合应用,以及如何...
6. **数据绑定**: Flex支持数据绑定机制,允许视图组件(如文本框)直接与模型数据关联,当数据改变时,视图会自动更新,反之亦然,简化了数据驱动的应用开发。 7. **Services和AMF**: Flex框架支持与服务器的数据...
在开发 Flex 应用程序时,Spring Actionscript IOC 框架和 Cairngorm MVC 模式结合使用,可以显著提升代码的可维护性和可扩展性。Spring Actionscript 是一个针对 Actionscript3 设计的轻量级框架,其灵感来源于 ...
flex框架之Cairngorm框架,包括Cairngorm框架
ArcGIS Server FOR FLEX API开发 框架结构 Flex Builder Project设置 Widget开发部署 Sample Flex Viewer核心编程 Flex Viewer 和Widget 部署 应用案例
本文将探讨MVC(Model-View-Controller)设计模式在Flex框架中的应用,并通过具体案例阐述如何快速开发基于MVC模式的Flex应用程序。 #### 二、Flex框架概述 Flex是Adobe推出的一种面向企业级富互联网应用的表示层...
这个框架允许开发者利用Spring的强大功能来构建后端服务,同时使用Flex作为前端展示层,提供富互联网应用程序(RIA)的用户体验。在本篇文章中,我们将深入探讨如何设置和运行一个SpringFlex项目。 首先,了解...
《Flex企业应用开发实战》共分为4大部分,涵盖企业级应用开发的... 本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解
Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex
**标题解析:** “一款轻量级的FLEX MVC开发框架”指的是该资源提供...总的来说,“puerMVC”框架提供了一种简化Flex应用开发的方式,通过MVC模式来组织代码,同时结合示例,使得开发者能够更快地掌握并应用这个框架。
第十章可能是综合案例分析,展示如何将前面学习的知识应用于实际的企业级项目中,如CRM系统、数据分析应用等,让读者对FLEX开发有更全面的理解。 通过阅读这本书并实践其中的源码,开发者不仅能够掌握FLEX的基本...
《Flex企业应用开发实践》这本书由兰天、曲鹏东、孙高飞、姜建卫四位资深专家共同撰写,他们都是在IT行业有着近10年丰富经验的专业人士,尤其在JavaEE企业级应用开发领域有着深厚的造诣。本书不仅详细介绍了Flex与...
Flex框架提供了丰富的组件库、强大的数据处理能力以及高效的图形渲染机制,使得开发者能够轻松创建出交互性强、用户体验优良的Web应用,尤其是WebGame。 在WebGame开发中,Flex框架扮演着至关重要的角色。以下是...
6. **Flex应用开发流程**:通常包括创建MXML组件、编写ActionScript代码、定义数据绑定、实现业务逻辑、测试和调试。开发者可以使用Adobe Flex Builder或IntelliJ IDEA等集成开发环境(IDE)进行开发。 7. **Flex与...
FeaF,中文名是【飞帆】,是flex enterprise application frame的意思。 ______________________________________________ ...此资源包,分三个项目,feaf为底层框架,frame为基本应用框架,另一个是屏保用。
本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时。
这种整合不仅充分利用了Flex在构建富客户端方面的优势,同时也发挥了SSH框架在Java EE领域的强大能力,为开发者提供了高效、灵活的应用程序开发解决方案。在实际应用中,可以根据项目需求灵活选择是否使用Struts,...