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

Apache flex 为什么要使用Cairngorm或Mate这样的Flex框架?,apache-flex,actionscript-3,frameworks,Apache Flex,Actionscript 3,Frameworks,据我所知,框架降低了常见领域的复杂性,如登录系统。我在工作中使用ASP.NETMVC,在Zend框架中做了一些工作,但不了解框架如何帮助客户端开发。在工作中使用ASP.NETMVC的原因是用于单元测试——Flex框架也有帮助吗 请告诉我为什么我应该或不应该使用Flex框架?如果您曾经尝试过构建一个稍大的应用程序,或者一个非常复杂的应用程序,那么事情很快就会失控。我不知道在我刚开始的时候,我放弃了多少个项目,因为我不知道模式,也不知道如何使系统的各个部分在不相互联系或相互依赖的情况下进行通信 因此

据我所知,框架降低了常见领域的复杂性,如登录系统。我在工作中使用ASP.NETMVC,在Zend框架中做了一些工作,但不了解框架如何帮助客户端开发。在工作中使用ASP.NETMVC的原因是用于单元测试——Flex框架也有帮助吗


请告诉我为什么我应该或不应该使用Flex框架?

如果您曾经尝试过构建一个稍大的应用程序,或者一个非常复杂的应用程序,那么事情很快就会失控。我不知道在我刚开始的时候,我放弃了多少个项目,因为我不知道模式,也不知道如何使系统的各个部分在不相互联系或相互依赖的情况下进行通信

因此,框架基本上是一组组合在一起的模式。从理论上讲,如果你学会了遵循一个(久经考验的)框架的“规则”,你的应用程序将不会失控,以至于你发现自己修复了一个bug,导致了两个bug。我去过那里,那里一点也不好玩

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

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

至于Flex框架,我个人喜欢PureMVC。老实说,我唯一花了很长时间的是凯恩戈姆。但我喜欢PureMVC,因为我觉得它很合适,但它通常不太依赖于内置的Actionscript类。例如,它使用自己的通知系统。因此,如果Flex中的通知发生变化,它们仍然可以在您的PureMVC应用程序中工作。此外,创造者克里夫在他的论坛上非常有帮助,他对此非常感兴趣。而且文档也很棒


我建议开发一个超级基本的应用程序,在没有任何框架的情况下构建它,然后再开发一些其他的应用程序。你不必完成应用程序,只需感受一下框架背后的内容。

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

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

这就是说,一个有助于促进这一方法的额外框架绝对可以提供价值。我会推荐Mate或Swiz,因为我认为他们实现了这个目标。他们不会试图重新发明轮子或替换Flash/FlexAPI的部分内容;相反,它们是对它们的补充。依赖项注入特性使向视图提供数据变得更加容易,但不需要将它们耦合到任何框架。有许多实用程序可用于简化远程服务的使用。它们还有一个UTIL,以便于在共享对象中测试甚至持久化数据

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


我读过一些关于PureMVC的书,虽然我不能谈论它的侵入性本质,但我认为重新创建事件模型(称为“通知”)是愚蠢的,它会将您与它们的框架结合起来。当然,如果Flash事件模型发生变化,您可以说它“隔离”了您,但我要说的是,PureMVC更改其通知模型的可能性远远大于Adobe更改事件模型的可能性。:)

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

  • 您在团队环境中工作,希望确保每个人都使用相同的方法
  • 您有一个大型、复杂的应用程序,并且希望在应用程序的各个部分之间进行有效的通信
  • 你希望能够雇佣更多的程序员,让他们快速高效
  • 您希望确保应用程序是使用经过验证的体系结构构建的
  • 您希望利用已知工作良好的设计模式和解决方案的知识
  • 您希望简化复杂的应用程序
这是一篇关于Flex框架的好文章。

我同意这个结论…Mate是一个很棒的Flex框架

本文中没有提到的另一个有趣的框架是Spicefactory的。

我在更大的应用程序中使用它(这是一个针对Flex的MVC框架)。如99英里所述,这取决于应用程序的大小。
如果你只需要制作一个(相对)小的工具/应用程序,你可以用Flex来实现它。但是,如果您想创建一个大型、复杂的应用程序,框架可能会派上用场

我在Flex中使用PureMVC的主要原因是模型-视图-控制器体系结构。这将表示层与业务层分离