私は現在、Flex MVC フレームワークPureMVCを使用して楽しんでいます。Cairngorm については、アドビがサポートしており、市場初の勢いを持っているという良い話を聞いたことがあります。そして、かなり話題になっているMateという新しいプレーヤーがいます。
これらのフレームワークの 2 つまたは 3 つを試して、意見をまとめた人はいますか?
ありがとう!
私は現在、Flex MVC フレームワークPureMVCを使用して楽しんでいます。Cairngorm については、アドビがサポートしており、市場初の勢いを持っているという良い話を聞いたことがあります。そして、かなり話題になっているMateという新しいプレーヤーがいます。
これらのフレームワークの 2 つまたは 3 つを試して、意見をまとめた人はいますか?
ありがとう!
メイトは私の選択です。一番の理由は、目立たないからです。私のアプリケーション コードはフレームワークに依存しておらず、高度に分離され、再利用可能で、テスト可能です。
Mate の最も優れた機能の 1 つは、宣言型の構成です。基本的には、イベント マップと呼ばれるものでタグを使用してアプリケーションを結び付けます。基本的には、アプリケーションが生成するイベントのリストと、イベントが発生したときに実行するアクションです。イベント マップは、アプリケーションの動作の概要を示します。Mate は Flex 独自のイベント メカニズムを使用します。他のほとんどのフレームワークのように独自に発明することはありません。Cairngorms の CairngormEventDispatcher や PureMVC の通知システムのように直接回線を引く必要はなく、ビュー階層のどこからでもイベントをディスパッチし、フレームワークに自動的にバブルアップさせることができます。
また、Mate は依存性注入 (バインディングの活用) の形式を使用して、一方が他方を知らなくてもモデルをビューに接続できるようにします。これはおそらく、フレームワークの最も強力な機能です。
私の見解では、他の Flex アプリケーション フレームワークで Mate に匹敵するものはありません。ただし、これらは候補であり、それらがあまり役に立たないと私が考える理由は次のとおりです。
PureMVC は、フレームワークを移植可能にするために、Flex の多くの利点 (バインディングやイベント バブリングなど) を積極的に否定しています。また、過度に設計されており、侵略的です。アプリケーションのあらゆる部分がフレームワークに依存しています。ただし、PureMVC はひどいものではなく、Flex にはあまり適していません。代替手段はFlexMVCSです。これは、PureMVC を Flex により適したものにするための取り組みです (残念ながら、まだドキュメントはなく、ソースのみです)。
Cairngorm は、グローバル変数に密接に結合されたアプリケーションにつながるアンチパターンのバンドルです。Nuff は言いました (しかし、もし興味があれば、ここに私の考えがいくつかあります。また、ここにもあります)。
Swizは、Java と Cairngorm (後者の最悪の部分を補おうとしている) の Spring フレームワークに触発されたフレームワークです。依存関係注入コンテナーを提供し、メタデータを使用して依存関係の自動配線を有効にします。興味深いのは、依存性注入を使用してケアンゴームのグローバル変数を回避するためにそのような長さになるが、中央イベントのディスパッチにグローバル変数を使用するという点で少し奇妙です。
それらは私が試したり調べたりしたものです。他にもいくつか聞いたことがありますが、広く使用されているとは思いません。Mate と Swiz はどちらも、最近の 360|Flex カンファレンスで発表されたもので、利用可能なビデオがあります ( Mate 関係者はそれらの視聴方法を説明しています) 。
Robotlegsをチェックしてください。
「アプリケーションが分離された方法で簡単に機能するために必要な接着剤を提供します。自動化されたメタデータベースの依存性注入を使用することで、Robotlegsはアプリケーションの定型コードを削除します。緩い結合を促進し、フレームワークRobotlegsでシングルトンとスタティックの使用を回避します。高度にテスト可能なコードを書くのに役立ちます。」
私はこの種の議論を何度も見てきました。それらは通常、どの Flex フレームワークを使用しているかから始まります。なぜFlexフレームワークの上にフレームワークを使用する必要があるのか という質問をする人はあまりいません。
私は Flex コードで MVC フレームワーク (Cairngorm、PureMVC) を使用することに賛成ではありません。メイトはより良い候補です。少なくとも理解しやすく、邪魔になりません。強化されたコンポーネントを
アラカルトで使用することを好みます。それらの多くを作成し、オープン ソース化しました ( http://sourceforge.net/projects/cleartoolkit/にある Clear Toolkit の clear.swc を参照してください。
O'Reilly の今後の書籍「Flex を使用したエンタープライズ開発」の最初の章には、いくつかの Flex フレームワークの詳細な比較があります: http://my.safaribooksonline.com/9780596801465。
私はSwizフレームワークを使用しています(そして推奨しています)。PureMVCほど複雑ではありませんが、仕事は完了します。しかもIoCコンテナで、IoCが好きです。
私はMateを使ったことがないので、それについてコメントすることはできません. しかし、私はケアンゴームに反対することをお勧めします. Cairngorm はオープン ソースであると言われていますが、実際にはコミュニティによって十分にサポートされていません。リリースサイクルも遅いです。Navigation Library のベータ版が終了するのをずっと待っていました。
現在、 Spring ActionScriptフレームワークでのMVCSの実装に取り組んでいます。Inversion of Control コンテナの機能をフルに活用できるため、依存関係の管理を一元化し、簡単に交換することができます。物事を行う方法についてはあまり規範的ではありませんが、非常に柔軟なインフラストラクチャを提供します。
Spring ActionScript と MVCS を初めて使用する場合は、ブログhttp://www.herrodius.com/blog/158に紹介記事があります。
どのフレームワークが他のフレームワークよりも優れているかについて結論を出すのは非常に困難です。プロジェクトとチームメンバーの専門知識と好みの性質と複雑さに応じて、特定の状況では1つが他よりも適している場合があります
Flex Frameworkのリストをまとめました。このURLには、簡単な説明とそれらに関する詳細情報へのポインタが含まれています。 http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.html このURLは、プロジェクトのFlexフレームワークの評価を探している人に役立つ場合があります。
ほとんどのFlexフレームワークを評価した後、Swizフレームワークは、新しい開発者にとって最もシンプルで使い始めるのが簡単であることがわかりました。したがって、アプリケーションの保守性と拡張性が容易になります。
独自のニーズに基づいて、独自のMVC「フレームワーク」を設計する必要があります。デザインパターンを少し知っている場合、Flexにはネイティブに提供できるものがたくさんあります。
独自のMVCを設計する最も良い点は、必要に応じて軽量または複雑にすることができることです。
フレームワークに関する私の経験では、基本的に、フレームワークを使用しない場合の2倍のコードを記述する必要があります。フレームワークの良いところは、一貫した方法で作業する必要があることですが、デザインパターン、ベストプラクティス、常識を利用して一貫した方法で作業できる場合は、フレームワークから離れることをお勧めします。
CairngormはAdobeがスポンサーとなっているフレームワークであり、現在はopensource.adobe.comでホストされていることに注意してください。また、現時点で開発者の間で群を抜いて最も多作であることにも注意してください。
Cairngormを知っていて、仕事を探しているなら、間違いはありません。
私は cairngorm と mate フレームワークに取り組んできました。私はケアンゴームフレームワークから始めました。働きは良いが、最初は理解するのが難しい。イベントディスパッチを巧みに処理します。クラス自体からイベントをディスパッチでき、フレームワークの有線コマンド クラスによって処理されます。データを格納するための単一のリポジトリがあるため、データの取り扱いが簡単です。シングルトンクラスです。フレームワークをつかめば、作業はより簡単になります。一方、メイトはタグベースのフレームワークです。これはイベント ドリブン フレームワークであるため、すべてのイベントは eventmap ファイルで処理されます。イベントのリッスン、プロパティの注入、およびこのクラス自体からの他の多くのことを行います。フレームワーク イベント ディスパッチャのインスタンスを渡すことで、クラスからイベントをディスパッチできます。これでは、cairngorm のようなシングルトン クラスを使用する必要はありません。プロパティ注入を使用して直接クラスのプロパティをビューにバインドできるため、シングルトン クラスを使用する必要はありません。mate では、すべてのクラスとビューがフレームワーク コードから解放されているため、フレームワークが分離されています。コンポーネントをある場所から別の場所に移動するのは簡単です。
これらの MVC フレームワーク (Mate、Cairgnorm など) がイベント マップとイベント コントローラーを実装する方法にちょっと疑問があります。wxWidgets とその種の他の GUI ツールキットを思い出しすぎます。
ただし、Flex またはこれらの MVC フレームワークの 1 つが Qt が提供する Signal/Slots パラダイムを使用する場合は、非常に便利です。
偉大で複雑なプロジェクトの開発には、他のフレームワークと同様に MATE を使用することをお勧めします。Mate は、イベント処理、データ バインディング、非同期処理など、Flex の一般的なアーキテクチャの問題に対処しますが、最も重要な目標は、タグベースのみであるため、 Flex アプリケーションで非常に簡単に使用できます。
Cairngorm は使いやすく、よく文書化されています: http://www.cairngormdocs.org/
Cairngorm Diagram ExplorerとCairngormに関する古典的な記事をお勧めします。
Cairngorm を学んだとき、私は Flex を初めて使用しましたが、上記を使用すると便利で簡単に学習できることがわかりました。
MATE は進むべき道です。フレームワークがすべきことを行うフレームワークです。分離アーキテクチャ シンプル 省スペース 効率