BlazeDS と GraniteDS を評価した経験のある人はいますか? どちらが Spring/Hibernate との統合に優れているか興味があります。
2 に答える
シンプルな RPC とメッセージングを探しているだけなら、Blaze を選びます。実装は、特にメッセージングに関して、より成熟しており、より実証されています。Granite のメッセージは Comet に基づいており、私が覚えている限りではまだかなり新しいものです。詳細は以下...
Blaze DS は基本的に、RPC と HTTP を介したいくつかの単純なメッセージング サービスを含むスタックです。Spring との統合は、FlexFactory の SpringFactory 実装を使用して簡単に実現できます。クラス名をググるだけで、コードが見つかります。Hibernate 関連の追加サポートは提供しません。
Granite DS は機能面で急速に成長しています。Blaze DS よりも LCDS と競合します。これには、Hibernate オブジェクト グラフを解析し、遅延プロキシをクリーンな方法で処理する機能が含まれています。また、エンティティの一意性を確保するためにFlexクライアントでセッションの類似物を作成する「Tide」と呼ばれるツールもあります。また、Spring、EJB3、および Seam を介して公開されるサービスを明示的にサポートしています。Granite には、Java クラスから AS3 クラスを生成するためのユーティリティもあります (ただし、必要に応じて自分で作成することは難しくありません)。
私は約 1 年前に Granite を使用しましたが、オブジェクト グラフを適切に解析するのにいくつか問題がありました。Flash Player は厄介な低レベルの例外をスローします。私の推測では、ドキュメンテーションと実装が成熟したため、これらの問題はなくなりました。ただし、問題が発生し、Blaze に切り替えるとすぐに問題が解決したため、推奨するのをまだ少しためらっています.
Cliff のコメントに関する補足事項:
- GraniteDS は、BlazeDS の約 1 年前の 2006 年後半に作成されました。要求の厳しい実稼働環境で広く使用されており、少なくとも BlazeDS よりも成熟しており、実績があると見なすことができます。
- GraniteDS メッセージングは 1.0 リリース (最初の BlazeDS リリースから数週間後の 2007 年後半) で導入され、現在では非常に成熟しており、要求の厳しい実稼働環境でも実証されています。
- Cliff で発生する Flash Player の例外は、通常、SWF で生成されたすべての AS3 クラスをコンパイルできないことが原因です。データ グラフ モデルの一部であり、デシリアライゼーション時に必要であるが、MXML/AS3 コードで明示的に使用されていない、これらの不足しているクラスを強制的に含める Flex コンパイラ オプションを使用するだけの問題です。
- GraniteDS ユーザーのほとんどは BlazeDS/LCDS から来ています。これは、これら 2 つのフレームワークが複雑なデータ モデルを正しく処理していないためです (遅延読み込みサポートがない、または不完全なトランザクション分離など)。
したがって、かなり些細なデータ モデルを使用して小規模なアプリケーションを開発している場合を除き、GraniteDS を使用する必要があります。