组织团队使用的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#类/包名和文件夹必须匹配,否则编译器将抛出一个错误。
我很确定我没有在这里覆盖所有东西,所以让我知道你是否需要对此进一步澄清。
如果您浏览一些框架站点并查看示例,则可以看到它们如何构建其应用程序。以下是在Mate的Flex框架网站上找到的程序的源视图。您可以下载源代码并在FlashBuilder中打开它以获得更好的感觉。
http://mate.asfusion.com/assets/content/examples/intranet/srcview/
个人而言,当我布置一个Flex应用程序的目录结构,我把它分解成基于意见“翅膀”。当然,共享的东西有一个共享目录。因此,对于你的例子,我会把它摆出来。
汽车经销
*库存
--views(意见有关的库存)
--components(组件有关的库存) --events
--presenters
--services
这样做的好处是它允许模块化,所以您不必一次加载整个应用程序。
我想我还不清楚需要做什么项目。以我上面的假项目为例,我是否会让UIComponents成为一个项目,或者它的每个子项目都会在CarDealership/UIComponents文件夹中成为自己的项目吗?我假设答案是“取决于”,但是我仍然不确定。 – Ocelot20 2011-02-03 21:08:56