2011-11-07 7 views
7

GWTを使用して大規模なエンタープライズアプリケーション(数十のモジュール)を構築しており、ClientBundleを使用するかどうかを決定する必要があります。私は、StackOverflow GWTコミュニティが、そのようなユースケースのためにディールメーカーやディール・ブレーカーとしてどのような賛否両論をしているのか不思議でした。大きなエンタープライズアプリケーションでClientBundleを使用しますか?

限り、我々は現在、それを見るように:

賛否

  • ため上記の
  • クライアントの負荷をより速く除去されダウンロードするには、サーバーのリソースを取るすべての画像/ cssファイル(つまりインライン画像URL)
  • CSS名がわかりにくいので、名前空間の衝突がなくなります。
  • CSSは自動ですmatically最適化/
  • 未使用のCSSクラスは(上記)除去される検証クラス名に
  • のJava参照がrefactorable CSSインターフェイスに置き換えられているクラス名に
  • UiBinderサンプルメッセージの参照は、「これ以上の大きなrefactorable CSSインターフェイス
  • で置換されていませんあるmain.css」リソースが特定のモジュールのバンドルがあるとして失敗し

短所

    メンテナンスCSSの場合
  • は(クラスの追加など)の基本的なCSSの仕事のために必要な
  • 詳しい手順
  • デバッグモードでは難読化されたモードでは読めない、または非常に冗長のいずれかとなりすべての開発者は、Java、CSS、HTMLは
  • CSS3をニュアンスを知っている必要があります他のat-rules(すなわち、 @フォントフェース)はGWTでサポートされていないネイティブ
  • 増加コンパイル時間

ありがとう!

答えて

8

私はm-gwtに大きくクライアントバンドルを使用しています。

devモードを持たないデバイスでは、私を悩ますものが1つありました。だからスタイリングは、完全なアプリケーションを再コンパイルすることを意味する可能性があります。

ほとんどすべてのCSS3ルールは、リテラル関数を使用してClientBundleで使用できるので、大丈夫です。 @mediaのクエリではちょっとトリッキーになります。回避策としてシンプルなテキストリソースとしてCSSを挿入することはできますが、それは醜いものです。

あなたはまだスプリットポイントを使用できるように制御下にダウンロードしたファイルのサイズを維持するために、複数のclientbundlesの使用を検討し、いくつかのGWTモジュールについて話している

私が使用している(あなたの.jsファイルを取得するどのように大きなに応じて)いくつかの大きなgwtアプリケーションのクライアントバンドルとコンパイル時のチェックとリファクタリングサポートは、依然としてクライアントバンドルにある小さな欠点に勝ちます。

+0

ありがとうダニエル!それも私の希望でした。現在、賛否両論は短所を上回るようです。誰もが自分と同じ経験を持ち、あまりにも多くの短所がないことを願っています。 –

2

わずか2その他の注意事項:

  • が自動的にCSSResourcesのためのインターフェイスを作成することができますGWTで利用可能utilityあり
  • それはスタイルをデバッグするために難読化の少し煩雑になる可能性があることは事実です名前。私はFirebugを使ってブラウザで直接dev-modeのスタイルを変更することで成功を収めました。満足していれば、私はGWTアプリでそれらを変更しました。
+0

ありがとうTimeu。私はそのユーティリティーを見つけたので、それはとても便利です。おそらく、これらのインタフェースを構築し、それらを使用するui.xmlファイルをリファクタリングする完全に自動化できるのであれば、UIの人々はクラス変更のために半ダースのファイルを編集する必要はありません。 –

関連する問題