2011-07-20 55 views
0

就我的理解而言,模塊可用於將應用程序拆分爲不同的部分。Flex模塊的含義

一個很大的優勢似乎是能夠在應用程序啓動後加載模塊,以獲得更好的啓動性能。

我個人希望模塊使我能夠爲模塊代碼擁有自己的代碼沙箱。因此主應用程序代碼和模塊代碼都不應相互影響。但是例如模塊的CSS樣式會影響主申請簽證版本。

我的問題: 1.什麼可以使用模塊旁邊運行時加載? 2.是否有在自己的沙箱中運行代碼的選項?例如通過加載swf資產?

+0

你的意思是「什麼是Flex模塊的點」? – Taurayi

+0

就是這樣。除運行時加載外,Flex模塊有什麼意義? – Dukeatcoding

+0

[Flex:MXML「組件」和MXML「模塊」之間的區別是什麼?](http://stackoverflow.com/questions/1008245/flex-whats-the-difference-between-an-mxml -component-and-an-mxml-module) – splash

回答

4
  1. 什麼可以使用模塊旁邊運行時加載?

您可以將您的應用程序分爲不同的部分 - 例如,你可能只需要更新應用程序,而不是整個應用程序的購物車部。這可以讓你做到這一點,而不需要再次部署整個應用程序。這強制抽象並且意味着更少的迴歸測試/錯誤。

另一個好處是保護swf文件本身。我寫過後端應用程序,用戶可能能夠訪問訂單屏幕,但不能訪問用戶管理屏幕。因爲每個模塊都是一個模塊,所以客戶端甚至沒有機會看到(或反編譯)用戶管理swf代碼 - 因爲我可以在用戶的​​會話服務器端嘗試加載模塊時驗證它。這是一個額外的保護層。

內存管理 - 它不僅僅是加載應用程序,而是一次加載所有功能需要多少處理。如果用戶只需要一個或兩個屏幕,爲什麼要加載其他98個屏幕?

可移植性和代碼重用。您可以在面向消費者的應用程序和後端工具中使用「訂單查看器」模塊。這些絕對不是同一個應用程序,但它們都需要訂單查看器的基本功能。更好的是,完全不同的應用程序可以使用相同的功能。

  1. 是否有選項,以在自己的沙盒中運行的代碼?例如通過 加載瑞士法郎資產?

有特殊注意事項模塊之間的通信,這是給你一個良好的閱讀:

http://livedocs.adobe.com/flex/3/html/help.html?content=modular_2.html

+0

對於沙箱,我想補充一點,ModuleLoader的'applicationDomain'屬性就是這樣。 –

+0

Thx 4你的答案Nate擴展了我對使用模塊的看法。 Jax thx爲應用程序域,我完全沒有意識到它。也許這就解決了我的問題 – Dukeatcoding

1

您可以通過創建一個新的SystemManager允許模塊,其風格分別處理爲其flexModuleFactory,您可以將其加載到一個單獨的applicationDomain出於安全目的。

對於您提出的問題並非真正的答案,但它解決了您遇到的潛在問題。

我在上一份工作中使用了模塊,允許我們隨時開發和添加新的功能 - 模塊的路徑將存儲在數據庫中並在運行時加載。

HTH;

艾米

+0

模塊存儲在數據庫中的好主意,我認爲applicationDomain真的是我迄今爲止忘記的那個方面 – Dukeatcoding