【问题标题】:Why use a Flex framework like Cairngorm or Mate?为什么要使用像 Cairngorm 或 Mate 这样的 Flex 框架?
【发布时间】:2010-02-15 16:24:06
【问题描述】:

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

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

【问题讨论】:

    标签: apache-flex actionscript-3 frameworks


    【解决方案1】:

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

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

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

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

    我读过一些关于 PureMVC 的文章,虽然我不能谈论它的侵入性,但我认为重新发明事件模型(称为“通知”)是愚蠢的,并且会将您与他们的框架结合起来。当然,您可以说它使您与 Flash 事件模型“隔离”,以防它发生变化,但我认为 PureMVC 更改其通知模型的可能性远大于 Adob​​e 更改事件模型的可能性。 :)

    【讨论】:

    • Flex 是一个框架——是的,这一直是我困惑的话题,为什么框架需要一个框架——这个问题的原因。谢谢。
    • 我只想重申,像 Mate 或 Swiz 这样的框架可以在 Flex 应用程序中提供很多价值,但这是因为它们旨在补充 Flex 而不是侵入性的。但通常很多开发人员在了解如何在没有它的情况下编写 Flex 应用程序之前,很快就将框架投入其中。 HTH
    【解决方案2】:

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

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

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

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

    就 Flex 框架而言,我个人喜欢 PureMVC。老实说,我花了很多时间的唯一另一个是凯恩戈姆。但我喜欢 PureMVC,因为它对我来说很合适,而且它通常不太依赖于内置的 Actionscript 类。例如,它使用自己的通知系统。因此,如果 Flex 中的通知发生变化,它们仍然可以在您的 PureMVC 应用程序中工作。此外,创建者 Cliff 在他的论坛中非常乐于助人,而且他对此非常热情。而且文档很棒。

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

    【讨论】:

      【解决方案3】:

      如果满足以下条件,您可能会发现使用框架的价值:

      • 您在团队环境中工作,并希望确保每个人都使用相同的方法
      • 您有一个大型、复杂的应用程序,并希望在应用程序的各个部分之间进行有效通信
      • 您希望能够雇佣更多的程序员并让他们快速提高工作效率
      • 您希望确保使用经过验证的架构构建您的应用程序
      • 您想利用设计模式和解决方案的知识,这些知识可以很好地发挥作用
      • 您想简化复杂的应用程序

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

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

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

      【讨论】:

        【解决方案4】:

        我将PureMVC(这是一个用于 Flex 的 MVC 框架)用于我的大型应用程序。就像 99miles 所述,这取决于应用程序的大小。
        如果您只需要制作一个(相对)较小的工具/应用程序,您只需使用 Flex 即可。但是,如果您想创建一个大型、复杂的应用程序,那么框架可能会派上用场。

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

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

        有关 MVC 架构的更多信息,请访问 here。 希望这会有所帮助:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-11
          • 2010-10-03
          • 1970-01-01
          • 1970-01-01
          • 2011-04-18
          • 1970-01-01
          • 2021-01-01
          相关资源
          最近更新 更多