質問

現在、Flex MVC フレームワークを使用して楽しんでいます PureMVC. 。Cairngorm については、Adobe のサポートを受け、市場に先駆けて勢いを持っているという良いことをいくつか聞いています。そして、かなり話題になっているメイトという新しいプレーヤーがいます。

これらのフレームワークのうち 2 つまたは 3 つを試して意見を形成した人はいますか?

ありがとう!

役に立ちましたか?

解決

メイト が私の選択です。まず第一の理由は、まったく目立たないことです。私のアプリケーション コードはフレームワークに依存しておらず、高度に分離されており、再利用可能でテスト可能です。

Mate の最も優れた機能の 1 つは宣言型構成です。基本的には、いわゆるイベント マップのタグを使用してアプリケーションを結び付けます。基本的には、アプリケーションが生成するイベントと、そのイベントが発生したときに実行するアクションのリストです。イベント マップは、アプリケーションの動作の概要を示します。Mate は Flex 独自のイベント メカニズムを使用しており、他のほとんどのフレームワークのように独自のイベント メカニズムを発明しません。Cairngorms CairngormEventDispatcher や PureMVC の通知システムなどの直接ラインを用意する必要はなく、ビュー階層内のどこからでもイベントをディスパッチして、フレームワークに自動的にバブルアップさせることができます。

また、Mate は依存関係の注入 (バインディングを利用する) の形式を使用しており、これにより、一方が他方を認識することなくモデルをビューに接続できるようになります。これはおそらくフレームワークの最も強力な機能です。

私の見解では、他の Flex アプリケーション フレームワークはどれも Mate に匹敵しません。ただし、これらが候補であり、それらがあまり有用ではないと私が考える理由は次のとおりです。

PureMVC は、フレームワークを移植可能にするために、Flex の利点の多く (バインディングやイベント バブリングなど) を積極的に否定しますが、これは私の見解では疑わしい目標です。また、過剰に設計されており、侵略的です。アプリケーションのあらゆる部分がフレームワークに依存します。ただし、PureMVC はひどいものではなく、Flex にはあまり適していないだけです。代替案は フレックスMVCS, PureMVC を Flex により適したものにするための取り組みです (残念ながらまだドキュメントはなく、ソースのみです)。

Cairngorm は、グローバル変数と密接に結合したアプリケーションにつながるアンチパターンのバンドルです。ナフは言いました(でも興味があるなら、 ここに私の考えがもう少しあります, 、 そして ここでも).

スウィズ Java および Cairngorm 用の Spring フレームワークからインスピレーションを得たフレームワークです (後者の最悪の部分を補おうとしています)。依存関係注入コンテナーを提供し、メタデータを使用して依存関係の自動配線を可能にします。これは興味深いですが、依存関係注入を使用して Cairngorm のグローバル変数を回避するためにそこまでの労力を費やしながら、中央イベントのディスパッチにグローバル変数を使用するという点で少し奇妙です。

これらは私が試したり調べたりしたものです。他にも聞いたことのあるものはいくつかありますが、広く使用されていると思われるものはありません。Mate と Swiz はどちらも最近の 360|Flex カンファレンスで発表されており、ビデオも入手できます (Mateの人たちに視聴方法の説明がある)

他のヒント

チェックアウト ロボットレッグ.

「これは、アプリケーションが分離された方法で簡単に機能するために必要な接着剤を提供します。Robotlegs は、自動化されたメタデータ ベースの依存関係注入を使用して、アプリケーション内のボイラープレート コードを削除します。Robotlegs は、疎結合を促進し、フレームワーク内でのシングルトンと静的な使用を回避することで、テスト性の高いコードを作成するのに役立ちます。」

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

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

近々出版されるオライリーの書籍「Enterprise Development with Flex」の最初の章では、いくつかの Flex フレームワークの詳細な比較が説明されています。 http://my.safaribooksonline.com/9780596801465 .

現在、次のことに取り組んでいます。 MVCS での実装 春のアクションスクリプト フレームワーク。Inversion of Control コンテナーの機能を最大限に活用するため、依存関係を一元管理し、簡単に交換できるようになります。実行方法についてはあまり規範的ではありませんが、非常に柔軟なインフラストラクチャを提供します。

Spring ActionScript と MVCS を初めて使用する場合は、私のブログに紹介記事があります。 http://www.herrodius.com/blog/158

私は Swiz フレームワークを使用しています (そして推奨しています)。PureMVC ほど複雑ではありませんが、仕事は十分に完了します。しかもIoCコンテナなのでIoCが好きです。

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

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

ケアンゴームのことを知っていて仕事を探しているなら、それほど間違ったことはしないでしょう。

Cairngorm は使いやすく、十分に文書化されています。http://www.cairngormdocs.org/

私がお勧めするのは、 ケアンゴーム図エクスプローラー そして、に関する古典的な記事 ケアンゴーム.

Cairngorm を学んだとき、私は Flex を初めて使用しましたが、上記の方法で学習するのは便利で簡単であることがわかりました。

MATE は、フレームワークが行うべきことを行うフレームワークです。分離されたアーキテクチャシンプルな小さな足の印刷効率

私は、これらの MVC フレームワーク (Mate、Cairgnorm など) のイベント マップやイベント コントローラーの実装方法に少し疑問を感じています。それは、wxWidgets やその種の他の GUI ツールキットを思い出させます。

ただし、Flex またはこれらの MVC フレームワークの 1 つが Qt が提供するシグナル/スロット パラダイムを使用していれば、非常に素晴らしいことになります。

他のフレームワークと同様に、優れたプロジェクトや複雑なプロジェクトの開発には MATE を使用することをお勧めします。Mate は、イベント処理、データ バインディング、非同期処理などの Flex の一般的なアーキテクチャ上の懸念事項に対処しますが、最も重要な目標はタグベースのみであるため、 Flex アプリケーションでの使用は非常に簡単です。

Yes Mate は Flex に最適なフレームワークです。私は、GUI とバックエンド データ サービスの両方の点でいくつかのリビジョンがあった 1 つのアプリケーションで使用しました。変更が生じるたびにイベント マップを変更するだけで済みました。

Mate にはテストを容易にする MockService 実装もあります。Mate の利点ではありませんが、MockService があると便利です。

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

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

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

どのフレームワークが他のフレームワークより優れているかについて結論を出すのは非常に困難です。プロジェクトの性質や複雑さ、チームメンバーの専門知識や好みに応じて、特定の状況においてどちらかが他よりも適している場合があります。

Flex Framework のリストを作成し、簡単な説明と詳細情報へのポインタをこの URL に記載しました。http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.htmlこの URL は、プロジェクトの Flex フレームワークを評価したい人にとって役立つかもしれません。

ほとんどの Flex フレームワークを評価した結果、Swiz フレームワークが最もシンプルで、新しい開発者にとって使い始めやすいことがわかりました。したがって、アプリケーションの容易な保守性と拡張性が保証されます。

私はケアンゴームフレームワークとメイトフレームワークに取り組んできました。私はケアンゴームフレームワークから始めました。取り組むのは良いことですが、最初は理解するのが難しいです。イベントのディスパッチを賢く処理します。クラス自体からイベントをディスパッチすることができ、それはフレームワークの有線コマンド クラスによって処理されます。データを保存するリポジトリが 1 つであるため、データの取り扱いが簡単です。シングルトンクラスです。枠組みを理解すれば、作業はより簡単になります。一方、Mate はタグベースのフレームワークです。これはイベント駆動型のフレームワークであるため、すべてのイベントはイベントマップ ファイルで処理されます。イベントのリスニング、プロパティの注入、その他多くのことをこのクラス自体から実行します。フレームワーク イベント ディスパッチャーのインスタンスにクラスを渡すことで、クラスからイベントをディスパッチできます。これでは cairngorm のようなシングルトン クラスを使用する必要はありません。プロパティ注入を直接使用してクラス内のプロパティをビューにバインドできるため、シングルトン クラスを使用する必要はありません。mate では、すべてのクラスとビューにフレームワーク コードが含まれていないため、フレームワークが分離されています。コンポーネントをある場所から別の場所に簡単に移動できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top