组织团队使用的Flex项目

问题描述:

我是Flex/Actionscript/FlashBuilder的新手,并没有完全了解组织的所有概念。我们的团队项目主要是基于ASP.NET的,所以它没有太多的Flex代码。实际上并不需要组织/重用通用库。我添加了一个很大的文件组件,我想开始为未来的开发者组织它。组织团队使用的Flex项目

在我看来,.NET有:

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

在Flex,我想有点像这个例子层次:

  • 汽车经销商
    • 业务层
      • 客户
      • 员工
    • UI组件
      • 广告
      • 窗口标签
    • 基础设施
      • 工资
      • 数据库
    • SWF项目
      • InventoryViewer
      • CarFeatureViewer
      • CurrentFlyerViewer

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

当你想反映的VisualStudio的解决方案风格来看,做到这一点的最好办法是创建多个项目到“解决方案” 工作区

尽管没有直接的等价物,所以不用担心试图以相同的方式查看层次结构。

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

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

对于包,工程和普通文件夹层次之间的区别:

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

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

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

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

我很确定我没有在这里覆盖所有东西,所以让我知道你是否需要对此进一步澄清。

+0

我想我还不清楚需要做什么项目。以我上面的假项目为例,我是否会让UIComponents成为一个项目,或者它的每个子项目都会在CarDealership/UIComponents文件夹中成为自己的项目吗?我假设答案是“取决于”,但是我仍然不确定。 – Ocelot20 2011-02-03 21:08:56

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

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

个人而言,当我布置一个Flex应用程序的目录结构,我把它分解成基于意见“翅膀”。当然,共享的东西有一个共享目录。因此,对于你的例子,我会把它摆出来。

汽车经销
*库存
--views(意见有关的库存)
--components(组件有关的库存) --events
--presenters
--services

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