我是Flex / Actionscript / FlashBuilder的新手,我不太了解所有的组织概念。我们的团队项目主要基于ASP.NET,因此它没有很多Flex代码。实际上并不需要组织/重用公共库。我正在添加一个包含大量文件的相当大的组件,我想开始为未来的开发人员组织它。
我认为,.NET有:
在Flex中,我想要一个类似于这个例子的层次结构:
在.NET中,我可以拥有一个InventoryViewer项目文件和一个解决方案文件,该文件打开了InventoryViewer项目文件以及它所依赖的Infrastructure.Database项目文件。或者,如果我不想处理数据库项目,我可以有一个只指向InventoryViewer的解决方案文件,但依赖仍然存在。这如何转化为Flex代码组织?我很难说出包,项目和普通文件夹层次结构之间的区别。提前谢谢。
答案 0 :(得分:2)
当您想要镜像VisualStudio的解决方案样式视图时,实现此目的的最佳方法是在“解决方案”工作区中创建多个项目。
虽然没有直接的等价物,所以不要担心尝试以同样的方式看待层次结构。
但是,如果您拥有这样的小型工作区,则可以一次性构建所有项目,并将构建时间保持在最低限度。
版本控制只能在项目级别上很好地工作,因此最初可能会很麻烦,而不是一次性检查解决方案,您必须单独检查每个项目。
关于包,项目和普通文件夹层次结构之间的区别:
项目:包含Eclipse元数据的文件夹(保存在文件夹中,也包含在父工作区文件夹中),代表项目,项目可以有多个构建目标,但一次只使用标准构建一个< strong>运行或调试按钮,要在单个项目中构建多个目标,您必须使用 Ant 或其他一些构建工具。
< / LI>包:与.net调用命名空间更密切相关,但Flex有自己的命名空间概念,主要与XML / MXML有关,但这是一个相当大的主题,所以我会避免这种情况。包必须与它们存储在的文件夹相关,例如
package com.example.view {
class SomeViewClass extends SomeFlexComponent {
// .... etc
}
}
此类将存储在src/com/example/view/SomeViewClass.as
中 - 与C#类/包名称不同,文件夹必须匹配,否则编译器将抛出错误。
我很确定我没有在这里介绍所有内容,所以如果您需要进一步澄清这些内容,请告诉我。
答案 1 :(得分:1)
如果您访问某些框架站点并查看示例,您可以看到它们如何构建其应用程序。这是在Mate的Flex框架站点上找到的程序的源视图。您可以下载源代码并在FlashBuilder中打开它以获得更好的感觉。
http://mate.asfusion.com/assets/content/examples/intranet/srcview/
就个人而言,当我布局Flex应用程序目录结构时,我会根据视图将其分解为“翅膀”。当然,共享的内容有一个共享目录。所以对于你的例子,我会这样说出来。
汽车经销商
*库存
- 视图(与库存有关的视图)
- 组件(与库存有关的组件)
--events
--presenters
--services
这样做的好处是它允许模块化,因此您不必一次加载整个应用程序。