Flex的简要概念介绍:
RIA 是什么?
RIA是富网络应用(Rich Internet Application)的缩写,也即丰富互联网应用程序。它只是一种技术形式而不是具体的技术
目前比较流行的 RIA技术有? § Adobe 的 Flex § 微软的 Silverlight § Sun的 JavaFX
Flex 和 Flex SDK 是什么?
Flex 是一个开源、免费的框架,用于构建在 Adobe® Flash® Player 或 Adobe AIR® runtimes 环境内运行的跨浏览器、桌面和操作系统的富网络应用。
Flex SDK(Flex Software Development Kit)除了包括 Flex 框架以外还包括 compilers(编译器)和 debugger(调试器)等开发工具。(这也意味着没有 Flash Builder 等 IDE 同样可以开发 Flex 应用,但效率会很低。)
Flex 应用运行环境 :Adobe® Flash®Player 和 Adobe AIR® Runtimes两者都是运行环境,前者基于浏览器,后者基于桌面。
Flex 与 Flash: 在我们的印象里 Flash 只是设计师用来制作动画的工具,但实际上 Flash 也可以构建富网络应用的,但比较复杂。程序员并不习惯使用画图工具,时间轴和可视化面板等来开发富网络应用,Flex 的出现解决了这一问题。有了 Flex,程序员可以使用 Action Script 和 MXML 编程语言快速开发富网络应用。
Flex对开发者更具吸引力,而 Flash 更多的是吸引设计人员。
Flex 原理 当你编译一个 Flash 程序时,Flash 开发环境把所有的可视化元素,时间轴指令和 ActionScript 中的业务逻辑编译为 SWF 文件。 同样地,Flex 程序中的 MXML 和 ActionScript 代码首先全部被转换为 ActionScript 然后编译为 SWF 文件。当你把 SWF 文件部署到服务器上时,使用者可以从服务器获取到这个程序。
Flex 应用的构建形式
尽管用 Flex 开发 RIA 有多种形式,但现在主流的架构是:Flex 作为 Client(客户端),Java、PHP、Asp、Ruby 等技术作为 Server(服务器端)。
Flex 访问服务器端数据的 3 种方式
既然 Flex 可以和 Java 等 Sever 端技术整合,那么它们之间怎样实现通信的呢?
Flex 通过 HTTPService,WebService 和 RemoteObject 这 3 个组件实现与 Server 端的通信。
中间件是什么?为什么需要中间件?
上节中我们谈到 Flex 通过 HTTPService,WebService 和 RemoteObject 三个组件与 Server 端技术通信,并且如果用 RemoteObject 那么应用和 Server 端对象之间通过 AMF 二进制形式传递数据。因此就需要额外的软件实现 AMF 协议,这样的软件就是我们所说的中间件。根据不同的 Server 端技术你需要选择不同的中间件。
Java 中间件有§ WebORB for Java(社区版免费,企业版收费) § AdobeLiveCycle Data Services ES2(收费)
§ AdobeBlazeDS(开源,免费)
BlazeDS 应用广泛
BlazeDS 是发布于 LGPL v3 许可下的开源,免费项目。在采用 Java 作为 Server 端技术的 Flex 构架中得到越来越多的应用。在之后的教程中也采用它作为中间件。
Flash Builder4 是什么? Flash Builder4 是一个 Eclipse 插件,版本 4 之前称为 Flex Builder。用于帮助开发者使用 Flex 框架快速开发跨平台的富网络应用。正如下图描述的那样, Flash Builder4 已经集成了 Flex SDK,你不需要再额外下载安装它。
Spring BlazeDS Integration 是什么? 是 SpringSource 的开源项目,用于整合 Spring 与 BlazeDS。
Spring BlazeDS Integration 特征
1.§ MessageBroker(BlazeDS 的核心组件)被配置为 Spring 管理的 Bean
2.§ Flex 客户端发出的 HTTP 消息通过 Spring 的 DispatcherServlet 路由给 MessageBroker
3.§ Remote objects 以 Spring 的方式配置在 Spring 配置文件内
Spring Framework 的事务管理类型
综合性的事务支持是 Spring Framework 倍受欢迎的原因之一。Spring Framework 有两种事务管理方式:声明式事务管理和编程式事务管理。前者因为“对代码影响最小“和“非侵入性”而较为流行。
SpringFramework 的声明式事务通过 AOP 思想实现。
PureMVC 是什么?
PureMVC是一个定位于设计高性能 RIA 客户端的基于模式的框架。目前已经被移植到多种语言(AS2、AS3、C#、ColdFusion、Haxe、JavaScript、Java、Objective C、PHP、Python、Ruby)和平台,包括服务器端环境。
记住一点:PureMVC 的通信并不采用 Flash 的 EventDispatcher/Event,而是使用观察者模式以一种松耦合的方式来实现的。