2008-08-31 67 views
33

我目前正在使用和享受使用Flex MVC框架PureMVC。我聽說過一些關於Cairngorm的好消息,它得到了Adobe的支持,並且已經率先推向市場。還有一個叫Mate的新玩家,它有很多的嗡嗡聲。Flex MVC框架

有沒有人試過這些框架中的兩個或三個,並形成了一個意見?

謝謝!

回答

48

Mate是我的選擇。首要的原因是它完全不引人注目。我的應用程序代碼沒有依賴於框架,它是高度分離的,可重用的和可測試的。

Mate最好的功能之一是聲明式配置,本質上是您將應用程序連接到所謂的事件映射中使用標記 - 基本上是您的應用程序生成的事件列表以及執行什麼操作它們發生。事件地圖可以很好地概述您的應用程序的功能。 Mate使用Flex自己的事件機制,它並不像大多數其他框架一樣發明自己的事件機制。您可以從視圖層次結構中的任何位置分派一個事件,並讓它自動冒泡到框架,而不必像Cairngorms CairngormEventDispatcher或PureMVC的通知系統那樣擁有一條直線。

Mate還使用了一種依賴注入(利用綁定)的形式,可以將模型連接到視圖,而無需任何人瞭解其他視圖。這可能是該框架最強大的功能。

在我看來,其他Flex應用程序框架都不在Mate附近。然而,這些都是競爭者,爲什麼我認爲它們的用處不大:

PureMVC主動拒絕你許多Flex的好處(例如綁定和事件冒泡),以便框架可移植 - 我認爲的目標。它也過度設計,並且隨着它們的進入而變得具有侵略性。應用程序的每個部分都依賴於框架。然而,PureMVC並不可怕,只是不太適合Flex。另一種方法是FlexMVCS,努力使PureMVC更適合Flex(遺憾的是還沒有文檔,只是來源)。

Cairngorm是一組反向模式,可導致與全局變量緊密耦合的應用程序。紐夫說(但如果你有興趣,here are some more of my thoughtshere too)。

Swiz是一個受Java和Cairngorm Spring框架(試圖彌補後者最糟糕的部分)啓發的框架。它提供了一個依賴注入容器,並使用元數據來啓用依賴項的自動連接。這很有意思,但是有一點可以通過使用依賴注入來避免Cairngorm的全局變量,然後使用全局變量來進行中央事件調度。

這些是我試過或研究過的。還有其他一些我聽說過的,但沒有一個我認爲被廣泛使用。 Mate和Swiz都參加了最近的360 | Flex會議,並且有視頻可用(the Mate folks have instructions on how to watch them

+0

良好的分析和一般我同意你。應該注意的是,Swiz中央調度員是可選的,只有當您有許多視圖/組件需要通知(如登錄,註銷等)的事件時才需要。 – 2009-04-11 14:31:54

+0

很久以前,但感謝您的深思熟慮的答案。我當時已經承諾使用PureMVC。我發現了一些優勢(層間清晰分離)和缺點(代碼數量,可測試性和通知系統)。根據您的反饋和其他人的意見,我剛剛與Mate一起開始了一個新項目。 – Rydell 2009-07-31 14:36:38

+0

當我開始研究Cairngorm時,我感覺完全一樣。我被告知的第一件事是ModelLocator,以跟蹤模型和應用程序狀態?這響了一些鐘聲,特別是作爲一個入門教程。 – seanmonstar 2009-10-30 17:26:45

0

請記住,Cairngorm是Adobe贊助的框架,現在託管在opensource.adobe.com上。另外請注意,這是迄今爲止開發人員中產量最高的。

如果您瞭解Cairngorm並正在尋找工作,那麼您不會錯的太遠。

1

我們目前正在研究Spring ActionScript框架中的MVCS實現。它使用Inversion of Control容器的全部功能,因此您擁有集中的依賴關係管理功能,並且可以輕鬆地進行交換。這對於你如何做事並不是很規範,但爲你提供了一個非常靈活的基礎設施。

如果你是新的春天ActionScript和MVCS,我有一個介紹後,在我的博客:http://www.herrodius.com/blog/158

5

我見過這類討論很多很多次的。他們通常從您使用的WHICH Flex框架開始。沒有多少人問這個問題爲什麼你甚至需要在Flex框架之上使用任何框架。

我不贊成在Flex代碼中使用任何MVC框架(Cairngorm,PureMVC)。伴侶是一個更好的候選人。至少它很容易理解,並且是非侵入性的。我更喜歡使用增強組件
單點菜單。我們已經創建並公開了一些源代碼(請參閱清除工具包中的clear.swc http://sourceforge.net/projects/cleartoolkit/

我們即將推出的O'Reilly第一本書「Enterprise Development with Flex」的第一章詳細比較了幾個Flex框架:http://my.safaribooksonline.com/9780596801465

0

MATE是通向go.A框架,做一個框架,應該做的事情 德耦合架構簡單 小腳印 效率

0

我還挺有我對這些MVC懷疑。框架(Mate,Cairgnorm等)和他們實現e的方式通風口地圖和事件控制器,它讓我想起了太多的wxWidgets和其他GUI工具包。

但是,如果Flex或者其中一個MVC框架使用Qt提供的Signal/Slots範例,那將會非常好。

0

我推薦使用MATE開發偉大和複雜的項目,像其他框架一樣,Mate解決了Flex中常見的架構問題,例如事件處理,數據綁定和異步處理,但最重要的目標是它只是標記因此在我們的Flex應用程序中使用它非常容易。

7

結賬Robotlegs。 「通過使用基於自動化元數據的依賴注入Robotlegs刪除應用程序中的樣板代碼,通過促進鬆耦合並避免使用單例和靜態方法在框架Robotlegs可以幫助你編寫高度可測試的代碼。「

0

是配對是flex的最佳框架。我曾經在一個應用程序中使用過,它在GUI和後端數據服務方面有幾個修訂。每次有任何變化時,我只需要更改我的事件地圖。

Mate也有MockService實現,這使得測試變得簡單而不是配對的優點,但很高興有一個。

1

我正在使用(並推薦)Swiz框架。它並不像PureMVC那樣複雜,但它完成了工作。而且,這是一個IoC容器,我喜歡IoC。

我從來沒有用過Mate,所以我不能對此發表評論。但我不推薦Cairngorm。據說Cairngorm是開源的,但它並沒有得到社區的支持。它的發佈週期也很慢。我一直在等待導航庫出來beta版。

0

您應該根據自己的需要設計自己的MVC「框架」。如果你知道一些設計模式,Flex本身就有很多東西可以提供。

設計自己的MVC的最好的事情是,它可以是一個輕量級或複雜的,因爲你需要。

我對框架的使用經驗是,基本上你必須編寫比不使用框架的代碼多兩倍的代碼。關於框架的好處是,它迫使你以一致的方式工作,但如果你可以通過使用設計模式,最佳實踐和常識來以一致的方式工作,那麼我會建議遠離框架。

0

對於哪個框架比其他框架更好得出結論非常困難。取決於項目和團隊成員的專業知識的性質和複雜性&首選項可能比其他在給定的情況下更合適

我已經編譯了一個Flex框架的列表,其中包含簡要說明以及有關它們的更多信息的指針URL。 http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.html 對於任何想要爲他/她的項目評估Flex框架的人來說,url可能會有幫助。

在評估了很多大多數Flex框架之後,我發現Swiz框架對於新開發人員來說更簡單易行。因此它確保您的應用程序的易擴展性。

0

我已經在cairngorm和mate框架上工作過。我從cairngorm框架開始。開始工作很好,但很難理解。它巧妙地處理事件調度。你可以從類本身派發事件,它將由框架有線命令類來處理。有一個存儲數據的存儲庫,所以很容易處理數據。這是一個單身人士課程。一旦你掌握了框架,工作就更容易了。另一方面,配偶是基於標籤的框架。它是一個事件驅動框架,所有事件都在eventmap文件中處理。它可以從這個類本身進行事件監聽,屬性注入以及其他許多事情。您可以通過將事件傳遞給框架事件分派器的實例來派發事件。你不必在這裏使用像cairngorm這樣的單例類。您可以直接使用屬性注入將類中的屬性綁定到視圖,因此不需要使用任何單例類。在隊友所有的類和視圖是免費的框架代碼,所以它是解耦框架。將組件從一個地方移動到另一個地方很容易。