我目前正在使用和享受使用Flex MVC框架PureMVC.我听说过一些关于Cairngorm的好东西,它得到了Adobe的支持,并且具有市场第一的动力.还有一个名为Mate的新玩家,它有很多嗡嗡声.
有没有人尝试过这些框架中的两个或三个并形成了意见?
谢谢!
伙计是我的选择.首要原因是它完全不引人注目.我的应用程序代码没有依赖于框架,它是高度分离,可重用和可测试的.
Mate最好的功能之一是声明性配置,基本上你将应用程序连接到所谓的事件映射中使用标记 - 基本上是应用程序生成的事件列表,以及发生时要采取的操作.事件图可以很好地概述您的应用程序的功能.Mate使用Flex自己的事件机制,它并不像大多数其他框架那样发明自己的事件机制.您可以从视图层次结构中的任何位置调度事件,并使其自动冒泡到框架,而不必像Cairngorms CairngormEventDispatcher或PureMVC的通知系统那样拥有直接线.
Mate还使用一种依赖注入形式(利用绑定),这样就可以将模型连接到您的视图,而无需了解另一个.这可能是框架最强大的功能.
在我看来,其他任何Flex应用程序框架都没有出现在Mate附近.但是,这些是竞争者,为什么我认为它们不那么有用:
PureMVC主动否认Flex的许多好处(例如绑定和事件冒泡),以便框架可移植 - 在我看来,这是一个双重目标.它也是过度设计的,并且随着它们的到来而具有侵入性.应用程序的每个部分都依赖于框架.但是,PureMVC并不可怕,只是不太适合Flex.另一种选择是FlexMVCS,一种使PureMVC更适合Flex的努力(遗憾的是还没有文档,只是源代码).
Cairngorm是一组反模式,导致应用程序与全局变量紧密耦合.努夫说(但如果你感兴趣,这里有更多我的想法,也在这里).
Swiz是一个受Java和Cairngorm的Spring框架启发的框架(试图弥补后者的最糟糕部分).它提供了依赖注入容器,并使用元数据来启用依赖项的自动连接.这很有意思,但是通过使用依赖注入来避免Cairngorm的全局变量,然后使用全局变量进行中心事件调度,这样做有点长篇大论.
那些是我尝试过或研究过的.我听说过其他几个,但我认为没有一个被广泛使用.Mate和Swiz都出席了最近的360 | Flex会议,并且有视频可用(Mate人员有关于如何观看它们的说明)
查看Robotlegs.
"它提供了应用程序需要以分离方式轻松运行的粘合剂.通过使用基于自动元数据的依赖注入,Robotlegs在应用程序中删除了样板代码.通过促进松散耦合并避免在框架中使用单例和静态Robotlegs可以帮助您编写高度可测试的代码."
我见过很多次这种讨论.它们通常以您使用的WHICH Flex框架开始.没有多少人会问你为什么甚至需要在Flex框架之上使用任何框架.
我不赞成在Flex代码中使用任何MVC框架(Cairngorm,PureMVC).伴侣是一个更好的候选人.至少它很容易理解并且不具有侵入性.我更喜欢使用
单点增强组件.我们已经创建并开源了一大堆(请参阅Clears工具包中的clear.swc,网址为http://sourceforge.net/projects/cleartoolkit/.
我们即将出版的O'Reilly书籍"使用Flex进行企业开发"的第一章详细比较了几个Flex框架:http://my.safaribooksonline.com/9780596801465.