• Flex 开发框架汇总


    现有成熟常用的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项目结构:

    • ModleLocator
    • ServiceLocator
    • 封装的业务逻辑
    • FrontController类

    优点:

    • 开发者社区的支持力度
    • 从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

    -------------------------------------------------------------

    Swiz:http://code.google.com/p/swizframework/

    特点:

    • IoC与DI模式
    • 简化事件侦听处理
    • 异步远程调用
    • 集中强调对于Java模式的利用

    基于Swiz创建Flex的结构:

    • 首先告知Swiz框架应用组件结构
    • 核心为集中工厂模式
    • 提供依赖管理,通过定制的metatag原标签Autowire

    优点:

    • 易于使用
    • 不强迫改变项目文件结构
    • 基于 metadata 的 IoC 和 DI 方式
    • 最大程度使用 Flex 内置事件处理机制

    不足:

    • 同 Mate 类似,也不定义项目结构,需要开发团队自行定义
    • 由于使用自定义数据标签,编译过程可能需要使用别的框架从来不曾使用的参数

    ---------------------------------------------

    Spring ActionScript:http://www.pranaframework.org/

    特点:

    • as3之上的IoC容器
    • 可以特别使用在Flex上
    • 扩展Cairngorm和PureMVC
    • 提供基于MVC的架构和实现方式
    • 基于Java Spring框架
    • 特别专注于BlazeDS和remoting messaging交互逻辑

    基于Spring AS框架的Flex项目结构:

    • 数据对象定义在外部XML中
    • 运行时加载
    • 通过容器管理依赖注入
    • 设置method-invocation方法浇铸元素预处理MethodInvokingFactory对象的实例
    • 针对服务,操作和命名提供一些接口和抽象基础类

    优点:

    • 兼容 Cairngorm
    • 兼容 PureMVC
    • 特别有远程服务和消息方法定制,无需改动 services-config.xml 或者 messaging-config.xml
    • 重用性强
    • 易于测试
    • 支持文档齐全

    不足:

    • 应用程序加载时间变长
    • 无法无法更轻量的处理Logging,开发团队应该在Spring AS之外实现logging
  • 相关阅读:
    分布式集群环境下运行Wordcount程序
    VM搭建hadoop分布式集群
    安装运行Hadoop
    网络问题
    Golang依赖工具
    会话进程组终端 · 守护进程
    Golang笔记
    [转]GDB
    [转]用户态与内核态
    【转】linux环境内存分配原理 malloc info
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/afsd.html
Copyright © 2020-2023  润新知