Flex MVC框架

我目前正在使用和享受使用Flex MVC框架PureMVC 。 我听说了一些关于Cairngorm的好消息,这个消息由Adobe支持,并且已经有了第一个上市的势头。 还有一个叫Mate的新玩家,有很多的嗡嗡声。

有没有人尝试过两个或三个框架,并形成意见?

谢谢!

伙伴是我的select。 首要的原因是它是完全不显眼的。 我的应用程序代码没有依赖框架,它是高度分离,可重用和可testing的。

Mate最好的function之一就是声明式configuration,本质上是将应用程序连接到所谓的事件映射中使用标记 – 基本上是应用程序生成的事件列表,以及发生时要采取的操作。 事件地图很好地概述了你的应用程序的function。 Mate使用Flex自己的事件机制,它不像大多数其他框架一样创造自己的事件机制。 您可以从视图层次结构中的任何位置派发事件,并自动将其展开到框架,而不必像Cairngorms CairngormEventDispatcher或PureMVC的通知系统那样拥有直接行。

Mate还使用了一种dependency injection(利用绑定)的forms,使您可以将模型连接到您的视图,而无需任何人了解其他模型。 这可能是该框架最强大的function。

在我看来,其他的Flex应用程序框架都不在Mate附近。 然而,这些是竞争者,为什么我认为它们不那么有用:

PureMVC主动否认了Flex的许多好处(例如绑定和事件冒泡),以使框架可移植 – 我认为这是一个可疑的目标。 它也是过度devise的,而且是侵入性的。 应用程序的每个部分都依赖于框架。 但是,PureMVC并不可怕,只是不太适合Flex。 另一种方法是FlexMVCS ,它使PureMVC更适合Flex(遗憾的是,目前还没有文档,只是来源)。

Cairngorm是一组反向模式,导致与全局variables紧密耦合的应用程序。 纽夫说(但如果你有兴趣, 这里有更多我的想法 , 也在这里 )。

Swiz是一个由Java和Cairngorm的Spring框架(试图弥补后者中最糟糕的部分)所启发的框架。 它提供了一个dependency injection容器,并使用元数据来启用依赖关系的自动连接。 有意思的是,有一点可以肯定,通过使用dependency injection来避免Cairngorm的全局variables,然后使用全局variables来进行中央事件调度。

那些是我试过或研究过的。 还有一些我听说过的,但我认为没有被广泛使用。 Mate和Swiz在最近的360 | Flex会议上都有介绍,并且有video可供select( Mate人员有关于如何观看它们的说明 )

检查Robotlegs 。

“通过使用基于自动化元数据的dependency injection,Robotlegs可以移除应用程序中的样板代码,通过促进松散耦合,避免在框架中使用单例和静态元素Robotlegs可以帮助你编写高度可testing的代码。“

我多次见过这种讨论。 他们通常从您使用的WHICH Flex框架开始。 没有多less人问这个问题为什么你甚至需要在Flex框架之上使用任何框架。

我不赞成在Flex代码中使用任何MVC框架(Cairngorm,PureMVC)。 伴侣是一个更好的候选人。 至less这很容易理解,并且是非侵入性的。 我更喜欢使用增强组件
点菜。 我们已经创build并开源了一大堆(参见http://sourceforge.net/projects/cleartoolkit/的Clear Toolkit中的clear.swc。

我们即将推出的O'Reilly书“企业发展与Flex”第一章详细比较了几个Flex框架: http : //my.safaribooksonline.com/9780596801465 。

我们目前正在Spring ActionScript框架中开发一个MVCS实现。 它使用了Inversion of Control容器的全部function,因此您拥有集中的依赖关系pipe理,并且可以轻松地进行交换。 你如何做事情并不是很规范,而是给你一个非常灵活的基础设施。

如果你是Spring ActionScript和MVCS的新手,我的博客上有一篇介绍性文章: http : //www.herrodius.com/blog/158

我正在使用(并推荐)Swiz框架。 它并不像PureMVC那样复杂,但它完成了工作。 而且,这是一个IoC容器,我喜欢IoC。

我从来没有用过Mate,所以我不能评论。 但我build议不要Cairngorm。 据说Cairngorm是开源的,但是它并没有得到社区的支持。 它的发行周期也很慢。 我一直在等待导航库出来testing。

请记住,Cairngorm是Adobe赞助的框架,现在在opensource.adobe.com上。 另外请注意,这是迄今为止开发者中产量最高的。

如果你了解Cairngorm,并且正在寻找工作,那么你就不会有太大的错误。

Cairngorm易于使用和有据可查: http : //www.cairngormdocs.org/

我推荐Cairngorm Diagram Explorer和关于Cairngorm的经典文章。

当我学习Cairngorm的时候,我对Flex是新手,但是发现它很有用,而且易于学习。

MATE是要走的路。框架应该做一个框架应该做的事情。 解耦架构简单小尺寸打印效率

我有点怀疑这些MVC框架(Mate,Cairgnorm等),它们实现事件映射和事件控制器的方式,这让我想起了太多的wxWidgets和其他GUI工具包。

但是,如果Flex或者其中一个MVC框架使用Qt提供的Signal / Slots范例,那将是非常好的。

我推荐使用MATE开发伟大和复杂的项目,就像其他框架一样,Mate解决了Flex中常见的架构问题,例如事件处理,数据绑定和asynchronous处理,但最重要的目标是它只是基于标记的,非常容易在我们的Flex应用程序中使用它。

是的,Mate是flex的最佳框架。 我已经在一个应用程序中使用了几个版本的GUI和后端数据服务。 每次有任何变化,我只需要更改我的事件地图。

Mate也有MockService实现,这使得testing变得不是一个队友的优势,但很高兴有一个。

你应该根据自己的需要devise你自己的MVC“框架”。 如果你知道一些devise模式,Flex本身就有很多东西可供使用。

devise自己的MVC的最好的事情是,它可以是一个轻量级或复杂的,如你所需。

我对框架的使用经验是,基本上你必须编写比不使用框架多两倍的代码。 关于框架的好处是,它迫使你以一致的方式工作,但是如果你可以通过使用devise模式,最佳实践和常识来以一致的方式工作,那么我build议远离框架。

关于哪个框架比其他框架更好得出结论是非常困难的。 根据项目和团队成员的专业性和偏好​​的性质和复杂性,在特定情况下,可能比其他人更适合

我编译了一个Flex框架列表,里面有简要的描述和指向这个URL的更多信息。 http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.htmlurl可能对任何想要评估他/她的项目的Flex框架的人有帮助。;

在评估了许多Flex框架之后,我发现Swiz框架对于新开发人员来说更简单易用。 因此,它确保了您的应用程序的易维护性和可扩展性。

我曾经在cairngorm和mate框架上工作过。 我从cairngorm框架开始。 开始工作很好,但很难理解。 它巧妙地处理事件调度。 你可以从类本身派发事件,并由框架有线命令类来处理。 有一个存储数据的存储库,所以很容易处理数据。 这是一个单身人士课程。 一旦你掌握了框架,工作就更容易了。 另一方面,搭档是基于标签的框架。 这是一个事件驱动的框架,所有事件都在eventmap文件中处理。 它从这个类本身进行事件监听,属性注入以及其他许多事情。 你可以通过传递框架事件调度器的实例来派发事件。 在这里你不必像cairngorm一样使用单例类。 您可以直接使用属性注入将类中的属性绑定到视图,因此不需要使用任何单例类。 在队友所有的类和视图是免费的框架代码,所以它是分离的框架。 将组件从一个地方移动到另一个地方是很容易的。