2008-08-31 19 views
33

現在、Flex MVCフレームワークPureMVCを使用しています。私はCairngormについていくつかの良いことを聞いたことがあります.CairngormはAdobeがサポートしており、市場参入の勢いがあります。また、メイトと呼ばれる新しいプレーヤーがあります。これはかなりの話題です。Flex MVCフレームワーク

誰かがこれらのフレームワークのうち2つまたは3つを試して意見を作成しましたか?

ありがとうございます!

答えて

48

Mateは私の選択です。最初の主な理由は、それが完全に邪魔にならないということです。私のアプリケーションコードは、フレームワークに依存しない、非常に分離され、再利用可能であり、テスト可能です。

宣言的な設定は、宣言的な設定です。基本的には、イベントマップと呼ばれるタグでアプリケーションを配線します。基本的に、アプリケーションが生成するイベントのリストと、それらが発生します。イベントマップは、アプリケーションが何をしているかの概要を示しています。 MateはFlex独自のイベントメカニズムを使用していますが、ほとんどの他のフレームワークのように独自のものを開発していません。 Cairngorms CairngormEventDispatcherやPureMVCの通知システムのような直接的なラインを持つ必要はなく、ビュー階層内のどこからでもイベントをディスパッチしてフレームワークに自動的にバブルアップさせることができます。

メイトは依存関係注入(レバレッジバインディング)の形式を使用して、モデルをビューに接続することもできます。これは恐らくフレームワークの最も強力な機能です。

私の見解では、他のFlexアプリケーションフレームワークは、Mateの近くにはありません。しかし、これらは競合相手であり、それらがあまり役に立たないと考える理由:

PureMVCは、フレームワークをポータブルにするために、Flexの多くの利点を積極的に拒否します私の見解では目標。それはまた過剰に設計され、彼らが来るほど侵略的です。アプリケーションのすべての部分は、フレームワークによって異なります。しかし、PureMVCはひどいわけではなく、Flexにはあまり適していません。代わりにFlexMVCSがあります.PureMVCをFlexにもっと適したものにしようと努力しています(残念ながら、ドキュメントはまだありません。ソースのみ)。

Cairngormは、グローバル変数と緊密に結合されたアプリケーションにつながるアンチパターンの束です。 Nuffは言った(興味があればhere are some more of my thoughtshere too)。

Swizは、SpringフレームワークのJavaとCairngorm(後者の最悪の部分を補うようにしている)に触発されたフレームワークです。これは依存性注入コンテナを提供し、メタデータを使用して依存関係の自動配線を可能にします。面白いですが、Cairngormのグローバル変数を避けるために依存性注入を使用することで、そのような長さに至るまでは少しばかりですが、中央イベントディスパッチではグローバル変数を使用します。

これは私が試した、または調査したものです。私が聞いたことがいくつかありますが、広く使われているとは思っていません。 MateとSwizは、最近の360 | Flexカンファレンスで発表されました。利用可能なビデオがあります(the Mate folks have instructions on how to watch them

+0

良い分析と一般的に私はあなたに同意します。スウィズの中央ディスパッチャはオプションで、実際にはログイン/ログアウトなど多くのビュー/コンポーネントで通知が必要なイベントがある場合にのみ必要です。 –

+0

過去には長い時間を過ごしましたが、慎重な回答に感謝します。当時私はすでにPureMVCにコミットしていました。そして、いくつかのプラス(レイヤー間のクリーンな分離)とマイナス(コード量、テスト容易性、および通知システム)を発見しました。あなたのフィードバックや他の人の意見に基づいて、私はちょうどMateと新しいプロジェクトを開始しました。 – Rydell

+0

私がCairngormを調べ始めると、まったく同じように感じました。モデルとアプリケーションの状態を追跡するために、ModelLocatorが最初に私に言いました。これは、特にGetting Startedチュートリアルとして、いくつかの鐘を鳴らしました。 – seanmonstar

0

CairngormはAdobeのスポンサードフレームワークで、現在はopensource.adobe.comでホストされています。また、現時点では開発者の中でも最も多岐に渡ることに注意してください。

あなたがCairngormを知っていて、仕事を探しているなら、間違ったことはありません。

1

私たちは現在、Spring ActionScriptフレームワークでMVCSの実装に取り​​組んでいます。 Inversion of Controlコンテナのフルパワーを利用しているため、一元管理された依存関係管理が可能で、簡単にスワップすることができます。あなたのやり方はあまり規範的ではありませんが、非常に柔軟なインフラを提供します。あなたは春のActionScriptおよびMVCSに慣れていない場合

、私は私のブログでの紹介記事があります:http://www.herrodius.com/blog/158

5

私は多くの議論を何度、これらの種類を見てきました。彼らは通常あなたが使用するFlexフレームワークから始めます。多くの人が、なぜFlexフレームワーク上でどのフレームワークを使用する必要があるのか​​という質問をします。

FlexコードでMVCフレームワーク(Cairngorm、PureMVC)を使用することに賛成ではありません。メイトはより良い候補者です。少なくともそれは理解するのが簡単で、邪魔ではありません。私は強化されたコンポーネントを使用することを好む
アラカルト。たくさんのソースを作成しオープンしました(Clear Toolkitのclear.swcをhttp://sourceforge.net/projects/cleartoolkit/で参照してください。

今後のO'Reillyの書籍「Enterprise Development with Flex」の最初の章では、いくつかのFlexフレームワーク:。。http://my.safaribooksonline.com/9780596801465

+0

唯一の賢明な答えを加えていただきありがとうございます - フレームワークを使用しないでください。最後に、いくつかの正気が議論に持ち込まれました。シンプルなソリューションを非常に難しくて膨大なスパゲッティコードにしたいのであれば、フレームワークはあなたのためのものです。あなたが滑らかでクリーンなコードが実際に動作し、書いて維持しやすいのであれば、すべてのフレームワークをクリアすることをお勧めします。私は、これは、この議論の中で最も普及している枠組みが「最小限の介入」であるという事実によって裏付けられていると思います。侵入をゼロにしてみてください。とても爽やかです。 – chris

0

MATEは、フレームワークが何をすべきかを行いgo.Aフレームワークへの道である 脱共役型アーキテクチャ シンプル 小型フットプリント 効率

0

私はちょっとこれらのMVCの私の疑問を持っていますフレームワーク(Mate、Cairgnormなど...)は、それらの実装方法をeベントマップとイベントコントローラを使用すると、あまりにも多くのwxWidgetsや他のGUIツールキットが思い出されます。

しかし、FlexまたはこれらのMVCフレームワークの1つがQtが提供するSignal/Slotsのパラダイムを使用しているのは本当にうれしいです。

0

他のフレームワークのように、偉大で複雑なプロジェクトを開発するためにMATEを使用することをお勧めします.Mateは、イベント処理、データバインディング、および非同期処理などのFlexの一般的なアーキテクチャ上の問題に対処しますが、 Flexアプリケーションで使用するのはとても簡単です。

7

Robotlegsを参照してください。

"自動メタデータベースの依存性注入を使用することで、アプリケーション内の定型コードが削除されます。疎結合を促進し、シングルトンやスタティックの使用を避けることでRobotlegsのフレームワークでは、非常にテスト可能なコードを書くのに役立ちます。

+1

robotlegsに対して1+の投票をしたCairngormは、特にシングルトンの過度使用のためにこれまで使用していたフレームワークの中で最も悪いものでした。 – Eran

0

はいマッチはフレックスのための最良のフレームワークです。私はGUIとバックエンドの両方のデータサービスの両方でいくつかのリビジョンを持つ1つのアプリケーションで使用しました。変更があるたびにイベントマップを変更するだけでした。

メイトにもMockService実装があり、テストをメイトの利点ではなく簡単に行うことができます。

1

私はSwizフレームワークを使用しています(お勧めします)。それは複雑でPureMVCではありませんが、仕事は終わりです。さらに、IoCコンテナであり、IoCが好きです。

私は決してメイトを使用していないので、私はそれについてコメントすることはできません。しかし、私はCairngormに対してお勧めします。 Cairngormはオープンソースと言われていますが、実際にはコミュニティによってうまくサポートされていません。リリースサイクルも遅いです。私はナビゲーションライブラリがベータ版から出てくるのを待っていました。

0

独自のニーズに基づいて、独自のMVC「フレームワーク」を設計する必要があります。デザインパターンが少し分かっていれば、Flexにはネイティブでたくさんの機能が用意されています。

独自のMVCを設計することの最も良い点は、必要に応じて軽量または複雑にすることができることです。

私のフレームワークでの経験は、基本的にフレームワークを使用しない場合の2倍のコードを書く必要があることです。フレームワークについての良い点は、一貫した方法で作業することですが、デザインパターン、ベストプラクティス、常識を活用して一貫した方法で作業できる場合は、フレームワークから離れることをお勧めします。

0

どのフレームワークが他のフレームワークよりも優れているという結論に至ることは非常に困難です。プロジェクトとチームメンバーの専門知識の性質と複雑さによっては、&が優先される場合があります。

フレックスフレームワークのリストをまとめてあります。 URL。 http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.html このURLは、自分のプロジェクトのFlexフレームワークを評価するのに役立つことがあります。

多くのFlexフレームワークを評価した後、私はSwizフレームワークが新しい開発者にとって最もシンプルで簡単であることを発見しました。したがって、アプリケーションの拡張性を容易に維持します。&拡張性

0

私はcairngormとmateフレームワークに取り組んできました。私はcairngormフレームワークから始めました。仕事はうまくいくが、最初は理解しづらい。イベントのディスパッチを巧みに処理します。クラス自体からイベントをディスパッチすることができ、フレームワークの有線コマンドクラスによって処理されます。データを格納するための単一のリポジトリがあるため、データを簡単に処理できます。これはシングルトンクラスです。フレームワークを手に入れたら、作業は簡単です。一方、メイトはタグベースのフレームワークです。これはイベント駆動型フレームワークなので、すべてのイベントはイベントマップファイルで処理されます。イベントリスニング、プロパティインジェクション、およびこのクラス自体からの他の多くのことを行います。フレームワークイベントディスパッチャーのインスタンスを渡すことによって、クラスからイベントをディスパッチできます。これでcairngormのようなシングルトンクラスを使う必要はありません。プロパティインジェクションを直接使用することで、クラス内のプロパティをビューにバインドできます。シングルトンクラスを使用する必要はありません。メイトでは、すべてのクラスとビューにフレームワークコードがないため、デカップリングされたフレームワークです。 1つの場所から別の場所にコンポーネントを移動するのは簡単です。

関連する問題