33

我目前正在使用并喜欢使用 Flex MVC 框架PureMVC。我听说了一些关于 Cairngorm 的好消息,它得到了 Adob​​e 的支持,并具有率先上市的势头。还有一个叫 Mate 的新玩家,它很受欢迎。

有没有人尝试过这些框架中的两个或三个并形成了意见?

谢谢!

4

14 回答 14

48

伴侣是我的选择。第一个也是最重要的原因是它完全不引人注目。我的应用程序代码不依赖于框架,它是高度解耦、可重用和可测试的。

Mate 最好的特性之一是声明式配置,本质上你连接你的应用程序在所谓的事件映射中使用标签——基本上是你的应用程序生成的事件列表,以及当它们发生时要采取的行动。事件映射很好地概述了您的应用程序的功能。Mate 使用 Flex 自己的事件机制,它不像大多数其他框架那样发明自己的事件机制。您可以从视图层次结构中的任何位置分派一个事件,并让它自动冒泡到框架中,而不必像 Cairngorms CairngormEventDispatcher 或 PureMVC 的通知系统那样有一条直线。

Mate 还使用一种形式的依赖注入(利用绑定),它可以将您的模型连接到您的视图,而无需任何一方知道另一方。这可能是该框架最强大的功能。

在我看来,其他任何 Flex 应用程序框架都比不上 Mate。然而,这些是竞争者以及为什么我认为它们不太有用:

PureMVC 主动否定了 Flex 的许多好处(例如绑定和事件冒泡),以使框架具有可移植性——在我看来,这是一个可疑的目标。它也是过度设计的,并且具有侵入性。应用程序的每个部分都依赖于框架。然而,PureMVC 并不糟糕,只是不太适合 Flex。另一种选择是FlexMVCS,努力使 PureMVC 更适合 Flex(不幸的是,还没有文档,只有源代码)。

Cairngorm 是一组反模式,导致应用程序与全局变量紧密耦合。Nuff 说(但如果你有兴趣,这里还有一些我的想法这里也是)。

Swiz是一个受 Java 和 Cairngorm 的 Spring 框架启发的框架(试图弥补后者最糟糕的部分)。它提供了一个依赖注入容器并使用元数据来启用依赖关系的自动装配。这很有趣,但有点奇怪的是,它通过使用依赖注入来避免使用 Cairngorm 的全局变量,然后使用全局变量进行中央事件调度。

这些是我尝试或研究过的。我听说过其他一些,但我认为没有一个被广泛使用。Mate 和 Swiz 都在最近的 360|Flex 会议上亮相,并且有可用的视频(Mate 人员有关于如何观看的说明

于 2008-09-01T07:27:05.347 回答
7

查看机器人腿

“它提供了您的应用程序需要以解耦方式轻松运行所需的粘合剂。通过使用基于自动元数据的依赖注入,Robotlegs 删除了应用程序中的样板代码。通过促进松散耦合并避免在 Robotlegs 框架中使用单例和静态可以帮助您编写高度可测试的代码。”

于 2010-06-04T06:47:45.737 回答
5

我已经多次看到此类讨论。它们通常从您使用的 Flex 框架开始。没有多少人会问为什么你甚至需要在 Flex 框架之上使用任何框架。

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

我们即将出版的 O'Reilly 书籍《企业开发与 Flex》的第一章对几个 Flex 框架进行了详细比较:http: //my.safaribooksonline.com/9780596801465

于 2009-05-09T11:07:53.427 回答
1

我们目前正致力于Spring ActionScript框架中的MVCS实现。它使用了 Inversion of Control 容器的全部功能,因此您可以进行集中的依赖管理并且能够轻松地交换事物。它对你如何做事不是很规范,但为你提供了一个非常灵活的基础设施。

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

于 2009-02-07T07:24:54.513 回答
1

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

我从未使用过 Mate,所以我无法对此发表评论。但我确实建议反对凯恩戈姆。Cairngorm 据说是开源的,但社区的支持率确实不高。它的发布周期也很慢。我一直在等待导航库从测试版中出来。

于 2011-03-30T01:29:04.510 回答
0

请记住,Cairngorm 是 adobe 赞助的框架,现在托管在 opensource.adobe.com 上。另请注意,它是目前开发人员中最多产的。

如果您了解凯恩戈姆并正在寻找工作,那么您就不会出错。

于 2008-09-29T22:36:07.090 回答
0

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

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

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

于 2008-09-30T01:08:21.077 回答
0

MATE 是要走的路。一个做框架应该做的事情的框架。解耦架构 简单 占用空间小 效率

于 2009-07-16T06:55:01.170 回答
0

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

但是,如果 Flex 或这些 MVC 框架之一使用 Qt 提供的 Signal/Slots 范例,那就太好了。

于 2009-08-24T00:33:25.200 回答
0

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

于 2010-05-23T12:50:53.177 回答
0

是的,Mate 是最好的 flex 框架。我曾在一个应用程序中使用过,该应用程序在 GUI 和后端数据服务方面都进行了多次修订。每次有任何变化时,我只需要更改我的事件映射。

Mate 还具有 MockService 实现,它使测试变得容易,这不是 mate 的优势,而是很高兴拥有一个。

于 2011-03-02T09:12:37.153 回答
0

您应该根据自己的需要设计自己的 MVC“框架”。如果您了解一点设计模式,Flex 本身就可以提供很多东西。

设计自己的 MVC 最好的一点是,它可以是轻量级的,也可以是你需要的复杂的。

我对框架的经验是,你基本上必须编写比不使用框架时多一倍的代码。框架的好处是,它迫使您以一致的方式工作,但如果您可以通过使用设计模式、最佳实践和常识以一致的方式工作,我建议您远离框架。

于 2012-08-16T08:08:45.707 回答
0

很难得出哪个框架比其他框架更好的结论。根据项目的性质和复杂性以及团队成员的专业知识和偏好,在特定情况下,一种可能比另一种更适合

我编制了一个 Flex 框架列表,其中包含简要说明和指向此 URL 中有关它们的更多信息的指针。 http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.html 该网址可能对任何希望为其项目评估 Flex 框架的人有所帮助。

在评估了大多数 Flex 框架后,我发现 Swiz 框架对于新开发人员来说最简单、最容易上手。因此,它确保了应用程序的易于维护性和可扩展性。

于 2012-09-30T18:44:51.757 回答
0

我曾研究过 cairngorm 和 mate 框架。我从凯恩戈姆框架开始。工作很好,但一开始很难理解。它巧妙地处理事件调度。您可以从类本身分派事件,它将由框架有线命令类处理。有一个存储数据的存储库,因此易于处理数据。这是一个单例类。一旦你掌握了框架,工作就容易多了。另一方面,Mate 是基于标签的框架。它是一个事件驱动的框架,因此所有事件都在 eventmap 文件中处理。它从这个类本身做事件监听、属性注入和许多其他事情。您可以通过将框架事件分派器的实例传递给类来分派事件。您不必在此使用像 cairngorm 这样的单例类。您可以直接使用属性注入将类中的属性绑定到视图,因此无需使用任何单例类。在 mate 中,所有的类和视图都没有框架代码,所以它是解耦的框架。将组件从一个地方移动到另一个地方很容易。

于 2012-10-22T14:31:12.803 回答