Flex 开发框架汇总
2010年09月17日
现有成熟常用的Flex框架:
Cairngorm (Adobe Open Source) - MVC framework
PureMVC (Open Source) - MVC framework
Mate (Open Source) - tag-based, event-driven
Swiz (Open Source) - Metadata-based Dependency Injection
Spring ActionScript (Open Source) IOC Framework
http://www.infoq.com/news/2008/01/flex-mvc
-------------------------------------------
Cairngorm: http://opensource.adobe.com/wiki/display/cairngorm /
特点: 最成熟,最知名的Flex开发框架
micro-architecture,有一系列的design patterns集合
很大程度上借鉴了Java开发框架
专注于响应用户交互,封装服务器交互逻辑,管理客户端状态和UI状态
基于Cairngorm框架的Flex项目结构: 优点: 开发者社区的支持力度
从Java开发框架借鉴而来的成熟实践策略
适合大型的Flex项目
适合团队开发,由于具备出色的架构理论支持和任务分发机制
不足: 代码冗余
Flex内置事件模型复杂化
框架过于依赖全局单例模式
Service Locator和Delegates比较臃肿
没有针对Views的解决方案
-------------------------------------------------- --------------------- PureMVC: http://puremvc.org/ 特点: 有中文最佳实践文档
非针对Flex的框架
专注于MVC模式
Model,View,Controller也是单例
还有第四个单例叫做Fa??ade,用来实现各层的通讯和public方法访问
基于PureMVC框架创建的Flex项目
结构: 与Cairngorm类似
将项目分成几个不同的packages
通过扩展框架类来实现类的操作
通过额外的Fa??ade类来作为应用入
优点: 不足: 依赖于单例模式
不专注于Flex,对于MXML开发无特殊优势
过于强调理论,实践开发周期变长
CASTING太过复杂
Debugging调试过于困难
-------------------------------------------------- ---------- Mate: http://mate.asfusion.com/ 特点: 基于标签和事件驱动的框架
完全基于MXML实现
事件驱动专注于更容易的定义谁来响应事件
"别给我电话,我会打给你"的依赖注册实现
基于Mate创建的Flex项目结构: 必须拥有一个或多个事件
必须有一个MXML文件称为event map
event map mxml文件定义想侦听的事件和如何响应该事件
可以拥有多个event map文件
当把需要的数据提供给类或者注入类时,对象被构造。对象不需要获取数据,而是把需要的数据传给对象
优点: 松散耦合的依赖注入实现方式
组件不依赖于全局单例模式
更加容易充当独立agents完成操作
不需要开发者一直使用Flex内置事件模型
不会限制开发者使用单独响应来处理每个时间
使用更加直观和简单
文档和示例众多
Models,Views就是常规类定义,不需要继承
Events就是系统内置Event类的子类
不足: 仅仅是针对MXML
不适合于将所有工作都使用AS类来完成的开发人员
不规范团队开发应用的方式,需要团队自行定义
不能使用LiveCycle DataServices
2010年09月17日
现有成熟常用的Flex框架:
Cairngorm (Adobe Open Source) - MVC framework
PureMVC (Open Source) - MVC framework
Mate (Open Source) - tag-based, event-driven
Swiz (Open Source) - Metadata-based Dependency Injection
Spring ActionScript (Open Source) IOC Framework
http://www.infoq.com/news/2008/01/flex-mvc
-------------------------------------------
Cairngorm: http://opensource.adobe.com/wiki/display/cairngorm /
特点: 最成熟,最知名的Flex开发框架
micro-architecture,有一系列的design patterns集合
很大程度上借鉴了Java开发框架
专注于响应用户交互,封装服务器交互逻辑,管理客户端状态和UI状态
基于Cairngorm框架的Flex项目结构: 优点: 开发者社区的支持力度
从Java开发框架借鉴而来的成熟实践策略
适合大型的Flex项目
适合团队开发,由于具备出色的架构理论支持和任务分发机制
不足: 代码冗余
Flex内置事件模型复杂化
框架过于依赖全局单例模式
Service Locator和Delegates比较臃肿
没有针对Views的解决方案
-------------------------------------------------- --------------------- PureMVC: http://puremvc.org/ 特点: 有中文最佳实践文档
非针对Flex的框架
专注于MVC模式
Model,View,Controller也是单例
还有第四个单例叫做Fa??ade,用来实现各层的通讯和public方法访问
基于PureMVC框架创建的Flex项目
结构: 与Cairngorm类似
将项目分成几个不同的packages
通过扩展框架类来实现类的操作
通过额外的Fa??ade类来作为应用入
优点: 不足: 依赖于单例模式
不专注于Flex,对于MXML开发无特殊优势
过于强调理论,实践开发周期变长
CASTING太过复杂
Debugging调试过于困难
-------------------------------------------------- ---------- Mate: http://mate.asfusion.com/ 特点: 基于标签和事件驱动的框架
完全基于MXML实现
事件驱动专注于更容易的定义谁来响应事件
"别给我电话,我会打给你"的依赖注册实现
基于Mate创建的Flex项目结构: 必须拥有一个或多个事件
必须有一个MXML文件称为event map
event map mxml文件定义想侦听的事件和如何响应该事件
可以拥有多个event map文件
当把需要的数据提供给类或者注入类时,对象被构造。对象不需要获取数据,而是把需要的数据传给对象
优点: 松散耦合的依赖注入实现方式
组件不依赖于全局单例模式
更加容易充当独立agents完成操作
不需要开发者一直使用Flex内置事件模型
不会限制开发者使用单独响应来处理每个时间
使用更加直观和简单
文档和示例众多
Models,Views就是常规类定义,不需要继承
Events就是系统内置Event类的子类
不足: 仅仅是针对MXML
不适合于将所有工作都使用AS类来完成的开发人员
不规范团队开发应用的方式,需要团队自行定义
不能使用LiveCycle DataServices