2

我是Flex/Actionscript/FlashBuilder的新手,並沒有完全瞭解組織的所有概念。我們的團隊項目主要是基於ASP.NET的,所以它沒有太多的Flex代碼。實際上並不需要組織/重用通用庫。我添加了一個很大的文件組件,我想開始爲未來的開發者組織它。組織團隊使用的Flex項目

在我看來,.NET有:

  • 解決方案文件:指向一堆項目文件。
  • 項目文件:包含實際的代碼和依賴關係。
  • 命名空間:以分層方式組織代碼。

在Flex,我想有點像這個例子層次:

  • 汽車經銷商
    • 業務層
      • 客戶
      • 員工
    • UI組件
      • 廣告
      • 窗口標籤
    • 基礎設施
      • 工資
      • 數據庫
    • SWF項目
      • InventoryViewer
      • CarFeatureViewer
      • CurrentFlyerViewer

在.NET中,我能有一個InventoryViewer項目文件,以及與Infrastructure.Database一起打開InventoryViewer項目文件解決方案文件它依賴的項目文件。或者,如果我不想在數據庫項目上工作,我也可以擁有一個僅指向InventoryViewer的解決方案文件,但依賴關係仍然存在。這如何轉化爲Flex代碼組織?我很難說明軟件包,項目和普通文件夾層次結構之間的區別。提前致謝。

回答

2

當你想反映的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

1

如果您瀏覽一些框架站點並查看示例,則可以看到它們如何構建其應用程序。以下是在Mate的Flex框架網站上找到的程序的源視圖。您可以下載源代碼並在FlashBuilder中打開它以獲得更好的感覺。

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

個人而言,當我佈置一個Flex應用程序的目錄結構,我把它分解成基於意見「翅膀」。當然,共享的東西有一個共享目錄。因此,對於你的例子,我會把它擺出來。

汽車經銷
*庫存
--views(意見有關的庫存)
--components(組件有關的庫存) --events
--presenters
--services

這樣做的好處是它允許模塊化,所以您不必一次加載整個應用程序。