为什么要使用像Cairngorm或Mate这样的Flex框架?

时间:2010-02-13 04:27:42

标签: flex actionscript-3 frameworks

根据我的理解,框架可以降低常见区域的复杂性,例如登录系统。我在工作中使用ASP.NET MVC,并在Zend Framework中完成了一些工作,但没有得到框架如何帮助客户端开发。 ASP.NET MVC在工作中使用的原因是单元测试 - Flex框架也可以帮助解决这个问题吗?

请让我知道为什么我应该或不应该使用Flex的框架?

4 个答案:

答案 0 :(得分:4)

简短的回答是:它取决于框架。 :)我的想法如下:

Flex本身就是一个框架,您可以编写合理的应用程序而无需任何其他框架。 Flash具有允许冒泡事件的内置事件模型,因此您可以在深层嵌套的用户界面组件中调度事件,并在处理事件的层次结构中具有更高的侦听器。事件处理程序可以委派给您的模型,该模型从服务器检索数据,Flex的绑定支持可以确保您的视图从模型中适当更新。我认为重要的是要理解Flex应用程序可以而且应该根据该方法或多或少地编写,并且任何其他框架应该有助于促进该方法,而不是提供自己的做事方式,最终将您与框架耦合

话虽这么说,一个有助于促进这种方法的额外框架绝对可以提供价值。我会推荐Mate或Swiz因为我认为他们实现了这个目标。他们不会尝试重新发明轮子或更换部分Flash / Flex API;相反,他们补充他们。依赖注入功能使得向视图提供数据变得更加容易,但不将它们耦合到任何框架。有许多实用程序可以使它更容易使用远程服务。它们还有一个工具来帮助测试甚至在共享对象中保存数据。

我过去也和Cairngorm合作过,我不推荐它。 CG因为要求您创建大量符合CG特定API的类并要求您使用许多单例实现而使您的应用程序变得脆弱且难以单独测试而臭名昭着。它基于许多J2EE模式,这些模式在至少5年前在Java社区中不受欢迎。

我已经阅读了一些关于PureMVC的内容,虽然我不能说它的侵入性,但我认为重新发明事件模型(称为“通知”)是愚蠢的,并将你与他们的框架结合起来。当然,你可以说它会将你与Flash事件模型“隔离”,以防它发生变化,但我会说PureMVC更改其通知模型的可能性远远超过Adobe更改事件模型的可能性。 :)

答案 1 :(得分:1)

如果你曾经尝试构建一个稍大的应用程序,或者一个复杂的应用程序,那么事情很快就会失控。我不知道我刚开始时有多少项目是因为我不知道模式,或者如何让系统的各个部分进行通信而不相互依赖,或者相互依赖。

因此,基本上框架是放在一起的模式集合。从理论上讲,如果你学会遵循(经过验证的)框架的“规则”,你的应用程序就不会失控,直到你发现自己修复了一个错误并导致两个错误。我去过那里并不好玩。

我还发现,通过学习使用框架,您最初不必了解您正在做的事情背后的模式。但不久之后,您将很好地处理所使用的模式,并且您将能够在新情况下应用它们或找到更好的模式。所以它也是一个很好的学习工具。

我相信人们会反对使用框架 - 这只是我的经验。但是如果你熟悉一些,你可能会发现一个项目可能适合一个项目而不适合另一个项目。

就Flex框架而言,我个人喜欢PureMVC。老实说,我给予了很多时间的唯一另一个是Cairngorm。但是我喜欢PureMVC,因为它对我来说是对的,但它通常也不依赖于内置的Actionscript类。例如,它使用自己的通知系统。因此,如果Flex中的通知发生变化,它们仍然可以在您的PureMVC应用中使用。此外,创作者Cliff在他的论坛中非常有帮助,他对此非常热衷。文档很棒。

我建议想出一个超级基本的应用程序,并在没有任何框架的情况下构建它,然后再与其他几个人一起构建它。您不必完成应用程序,只需了解框架背后的内容。

答案 2 :(得分:1)

在以下情况下,您可能会发现使用框架的价值:

  • 您在团队环境中工作,并希望确保每个人都使用相同的方法
  • 您有一个庞大而复杂的应用,并希望在应用的各个部分之间进行有效沟通
  • 您希望能够聘请其他程序员并让他们快速提高工作效率
  • 您希望确保您的应用程序使用经过验证的架构构建
  • 您希望利用已知运作良好的设计模式和解决方案的知识
  • 您希望简化复杂的应用程序

这是一篇关于Flex框架的精彩文章。  Flex Framework Comparison

而且,我同意这个结论...... Mate是一个很棒的Flex框架。

本文未提及的另一个有趣的框架是Spicefactory的Parsley

答案 3 :(得分:1)

我为我的大型应用程序使用PureMVC(这是Flex的MVC框架)。与 99miles 一样,它取决于应用程序的大小 如果你只需要制作一个(相对)小的工具/应用程序,你就可以使用Flex。但是如果你想创建一个庞大而复杂的应用程序,框架可能会派上用场。

我在Flex中使用PureMVC的主要原因是模型 - 视图 - 控制器架构。这将表示层与业务层分开,并与事件通知一起使用。这使您能够以相对简单的方式在Flex中创建可重用的类/控件。

正如我之前所说,对于一个小工具/应用程序/网站,我不建议使用框架,因为在这种情况下,它可能是耗时且复杂的。但是对于更大的应用程序,框架非常方便。

可以找到有关MVC架构的更多信息here。 希望这会有所帮助:)