2

我是 Flex/Actionscript/FlashBuilder 的新手,我不太了解所有的组织概念。我们的团队项目主要基于 ASP.NET,因此它没有很多 Flex 代码。并没有真正需要组织/重用公共库。我正在添加一个包含大量文件的相当大的组件,并且我想开始为未来的开发人员整理它。

如我所见,.NET 具有:

  • 解决方案文件:指向一堆项目文件。
  • 项目文件:包含实际代码和依赖项。
  • 命名空间:以分层方式组织代码。

在 Flex 中,我想要一个有点像这个例子的层次结构:

  • 汽车代理商
    • 业务层
      • 顾客
      • 员工
    • 用户界面组件
      • 广告
      • 窗口标签
    • 基础设施
      • 工资单
      • 数据库
    • 主权财富基金项目
      • 库存查看器
      • 汽车功能查看器
      • CurrentFlyerViewer

在 .NET 中,我可以有一个 InventoryViewer 项目文件和一个解决方案文件,该文件打开 InventoryViewer 项目文件以及它所依赖的 Infrastructure.Database 项目文件。或者,如果我也不想处理数据库项目,我可以有一个仅指向 InventoryViewer 的解决方案文件,但依赖关系仍然存在。这如何转化为 Flex 代码组织?我很难区分包、项目和普通文件夹层次结构之间的区别。提前致谢。

4

2 回答 2

2

当您想要镜像 VisualStudio 的解决方案样式视图时,实现此目的的最佳方法是将多个项目创建到一个“解决方案”工作区中。

虽然没有直接的等价物,所以不要担心尝试以相同的方式查看层次结构。

但是,当您有这样一个小工作区时,您可以一次构建所有项目,并将构建时间保持在最短。

版本控制只能在项目级别上运行良好,因此最初可能会很痛苦,而不是能够一次性签出解决方案,您必须单独签出每个项目。

关于包、项目和普通文件夹层次结构之间的区别:

  • 项目:一个包含 Eclipse 元数据的文件夹(保存在文件夹中,也保存在父工作区文件夹中),代表一个项目,项目可以有多个构建目标,但使用标准运行调试按钮一次只能构建一个,以构建单个项目中有多个目标,您必须使用Ant或其他一些构建工具。

  • 包:与 .net 所谓的命名空间更密切相关,但是 Flex 有自己的命名空间概念,主要与 XML / MXML 相关,但这是一个相当大的话题,所以我会避免它。包必须与它们存储的文件夹相关,例如

.

package com.example.view {
    class SomeViewClass extends SomeFlexComponent {
    // .... etc
    }
}

此类将存储在src/com/example/view/SomeViewClass.as- 不像 C# 类/包名称和文件夹必须匹配,否则编译器将抛出错误。

我很确定我没有在这里涵盖所有内容,所以如果您需要进一步澄清这些,请告诉我。

于 2011-02-03T20:29:51.877 回答
1

如果您访问一些框架站点并查看示例,您可以了解它们是如何构建应用程序的。这是在 Mate 的 Flex 框架站点上找到的程序的源代码视图。您可以下载源代码并在 FlashBuilder 中打开它以获得更好的感觉。

http://mate.asfusion.com/assets/content/examples/intranet/srcview/

就我个人而言,当我布局 Flex 应用程序目录结构时,我会根据视图将其分解为“翅膀”。当然,共享的东西有一个共享目录。所以对于你的例子,我会这样布置。

Car Dealership
*inventory
--views(与库存有关的视图)
--components(与库存有关的组件)--events
--presenters
--services

这样做的好处是它允许模块化,因此您不必一次加载整个应用程序。

于 2011-02-04T22:03:16.787 回答