2009-10-14 8 views
5

私はアーティスト/デザイナーではありませんので、私のGUIはよくわかります...私はGWTをちょっと試してみましたが、賢明な結果を得ることができましたが、私はそれらの結果を得るための工夫をしています。GWT:GWTとのWeb2.0インターフェイスを構築するためのベストプラクティスは何ですか?

コミュニティでこの質問が役立つと感じる場合は、回答ごとに1件のおすすめを入れてください。

答えて

9

私たちは(単なる研究開発の3ヶ月後)GWT 1.6/1.7のために、次のハイレベルのベストプラクティスを識別:

  • 使用デザインパターン(MVC/MVP、GWT-RPC、コンポジットのコマンドをウィジェットの構成、イベントバスのオブザーバーなど)。
  • プレゼンターの表示インターフェースとGWT特性インターフェース(HasValue、HasTextなど)を使用して、ウィジェットクラスおよびビューを抽象化することによって、アプリケーションロジックをMVPで分離します。);
  • クライアントやGuice上のginとの依存関係注入をサーバ上で(またはSpringのような既存のサーバフレームワークに固執する)。
  • GWT CompositeをHTMLPanelと組み合わせて使用​​すると、html、css、MVPでビューを駆動できます。
  • MVPを使用したアプリケーションロジックの分離に基づくモックテストを使用する。
  • GWT HandlerManagerを使用してイベントバスを実装する。
  • コードコンパイルを効果的に最適化するためにGWTモジュールを使用します。
  • GWTモジュールを整理するときに、クライアント、共有、およびサーバーパッケージを使用します。
+0

これは適切なアドバイスです。あなたのコードは閲覧の対象ですか? –

+0

すぐに私はこのブログのいくつかにブログをまとめることができます...今のところ、これを試してみてください:http://googletesting.blogspot.com/2009/08/tott-testing-gwt-without-gwttest.html とhttp://www.zackgrossbart.com/hackito/tags-first-gwt/と http://blog.hivedevelopment.co.uk/2009/08/google-web-toolkit-gwt-mvp-example.html – topchef

3
  • ベストプラクティスはJavaからすべてを行うことです。そのため、HTMLはプレースホルダとしてのみ機能します。はい、私はこれを言うのは嫌ですが、あなたがまだHTMLを使いこなしているなら、あなたの人生をより悲惨なものにするだけです。
  • webappsを複数のHTMLページに分ける唯一のWebの考え方がまだ残っている場合は、それを投げ捨てて、デスクトップアプリケーション(ブラウザ上で実行される)の考え方を構築してください。スイングアプリの構築を考えてみましょう。
  • GWTコンポーネントをスタイルする必要がある場合は、独自のCSSでGWTのcssクラスをオーバーライドします。
  • 最後のベストプラクティスは、アプリケーションをthe MVP patternとデカップリングすることです。なぜなら、基本的にアプリケーション全体を1つのJavaクラスに書くことができるからです。もちろん、メンテナンスにつながる可能性があります。また、複数のピアと作業している場合は問題になります。
5

私たちはGWTを備えた大規模な人事ポータルを開発しました。このアプリケーションのルック・アンド・フィールは、異なる展開に対してカスタマイズできます。これを行うために、HTMLのフラグメントを使用してGUIの一部を生成します。つまり、HTMLのビットはDTOでクライアントに送信され、HTMLウィジェットに埋め込まれます。このアプローチは、マストヘッド、ロゴ、メニューなどに適しています。

通常のGWTコードを使用して他のもの(キャプチャフォームなど)が生成されます。

ブックマークを意味のある方法で使用できるように、「ページ」(あなたの現在地を識別する別の履歴トークン)を使用します。また、電子メールなどのシステムのさまざまな部分へのリンクも生成します。

私たちのアプリケーションは、XMLで定義された「ページ」に配置された「ポートレット」と呼ばれる多くの「上位レベル」のウィジェットで構成されています。この場合も、特定のインストールの機能をカスタマイズすることができます。

すべてこれは、オープンソースとして公開しているフレームワーク(GWT Portlets)を使用して行われます。

関連する問題