最高のGWTウィジェットライブラリ?[閉まっている]


134

そこにあるすべてのGWT達人への質問-そこにある最高のGWTウィジェットライブラリはどれですか?なぜ?

回答に基づいたリスト:

sнаконец- новоепоколениеоснованноенаJsInterop


リストにgwt-mosaicを含めるのを忘れましたか?
アシュウィンプラブー2010

2
この質問は要件に固有のものではなかったため、すべての要件を満たしていなくても、予想通り、最も目立つ(コアGWT)が投票されました。多くの画面と大量のデータを備えた複雑なエンタープライズアプリケーションがあり、強力なグリッドとエディターが必要な場合は、SmartGWTが適しています。プレーンGWTは多くのアプリに最適ですが、この特定の要件セットを持つ多くの企業はGWTを評価し、SmartGWTの方が適していると判断します。概要を確認して自分で決めるには、クイックスタートガイドをお読みください。 smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Charles Kendrick

gwt

私は、このような質問をStack Overflowから離れた公式の家に与えるためのサイト提案を作成しました。これは、コードの推奨事項と呼ばれ、参加して質問することで実現するのに役立ちます。
daviewales 2014年

これも有望に見えます:gwt-material-demo.herokuapp.com
kozla13

回答:


52

これらのライブラリにバインドしないでください。Vanilla GWTを使用してプロジェクトの構造を作成します。特に、MVPパターンとイベントバスを使用します。GWTを使用してクライアントアプリケーションを最適に設計する方法については、Googleの記事を参照してください:MVPアプリの構築

その後、これらのライブラリの任意のウィジェット(たとえば、テーブル、コンボボックス、日付ピッカーなど)を使用して、プロジェクトに組み込むことができます。バニラGWTでそれを行う方法がわからない場合にのみ、拡張コンポーネントを使用してください。このようにして、これらのライブラリーに縛られないようにしてください。これらは、デモアプリケーションに表示されない何かを実行しようとすると常に苦痛であり、多くのバグが含まれており、サポートはせいぜい不十分です。

ウィジェットを探す方法は次の順序に従う必要があります。

他のライブラリーに注意して、私はそれらのライブラリーと一緒に作業しました(まだ悪夢があります)。


1
他のライブラリと共有したい特定の経験はありますか?
アダム

6
GXT、私の最悪の敵にはお勧めしません。それを検討する場合は、まずGoogleでそれを確認し、どこにアクセスしているかを確認してください。JSラッパーであるSmartGWTは非常に醜いです。遠くから走ってください。私は実際のプロジェクトで両方の経験があります。最初はSmartGWTを使用しましたが、その制限によりGXTに移行しました。私はすぐに、フォームバインディングとJavaジェネリックで彼らが持っていた混乱を発見しました(イエス、思い出すたびに...)どちらが悪いかわかりません!私はそれを終えました、はい、しかし私は非常に苦しみました。その後、バニラGWTと、他のライブラリーから気に入ったウィジェットのみを使用する方法を学びました。
monzonj

この投稿は古く、その性質上古いものですが、過去2年間GXTを幅広く使用してきましたが、問題がありますが、非常に見栄えのよいアプリケーションを比較的簡単に作成できます。非常に便利なグリッド、バッファーグリッド、ライブグリッドがあります。SmartGWTには、優れた機能を備えたグリッドとコンポーネントもあります。Vaadinも検討してください
カール・プリチェット

43

「最高」の意味によって異なります。一番よく見える?最高のAPI?独自のカスタムニーズに拡張するのに最適ですか?

たとえば、私はアプリケーションで使用するテーブルクラスを評価していました。これまでGWT-Extを使用してきましたが、パフォーマンスの問題が多く、必要なサイズのテーブルを作成するのが非常に困難です。私はGWT-Mosaicに非常に近づきましたが、代わりにGWTインキュベーターでウィジェットを構築することにしました

それで、なぜ私はこの選択をしたのですか?そこにはあまりにも多くのライブラリーが独自のライブラリーを持っているようです。一部のMVCフレームワーク(コードベースの他の部分と完全に互換性がない可能性があります)に完全に食い込む必要があるか、誰かの新しい複雑なレイアウトシステムを採用する必要があるか、またはできないという事実に耐えなければなりません実際にコードをデバッグします(そのJSNIラッパーのため)。

誤解しないでください。GWTインキュベーターは完璧ではありません...ウィジェットにはある程度の流動性があります。私の場合、これが最善の選択でした。それは私に良い(しかし完璧ではない)を与えます:

  • API
  • 拡張性
  • ルックアンドフィール(まあ、これは少し弱いですが、それがCSSの目的です)

だから...(私にとって)答えは次の組み合わせです:

  • ストックGWTウィジェット(ロット付き)のカスタムスタイル設定あり)
  • GWTインキュベーターテーブル
  • いくつかの自家製ウィジェット

(私が追加する必要があります:私が言及している「手荷物」は必ずしも悪いことではありません。しかし、ウィジェットが1つまたは2つだけ必要な場合は、作業を完了するために必要なものとその方法の基準を上げることができます。良いyoueアプリケーションが見えます。)


ほとんどのウィジェットライブラリは、一部の外部AJAXライブラリに依存しているため、ライセンスが必要です。これにより、ソリューションにサイズが追加されます。また、ほとんどのウィジェットライブラリは、1つ以上の追加の外部コンポーネントに依存していることに注意してください。
IgorM 2009年


10

GWTだけでもかなり良いライブラリです。

上記のすべてを使用したわけではありませんが、Ext GWTを推奨できます。


2
裸のGWTに同意します。インキュベータープロジェクト(code.google.com/p/google-web-toolkit-incubator)に加えて、基本的に何でも実装できます。私はMyGwtを使用しましたが、プロジェクトがシャットダウンされて名前が変更され、すべてのフォーラムとサポート、ライセンスが変更された場合は
面倒です

1
それはひどいに違いない。これは、ソフトウェアを保守するための実際的な方法ではありません。
DragonBorn 2009年

9

私はバニラGWTを好みます。他のAPIのいくつかは見栄えがよく、それらのショーケースは実際にウィジェットを際立たせていますが、パフォーマンスが最高ではないことにいつも気づきます。アプリケーションの反応が遅いと嫌いです。


8

言及されているライブラリのほとんどはオープンソースではなく、さらに悪いことに、JavaScriptライブラリのラッパーにすぎません。GWTの威力は、アプリケーションがさまざまなブラウザーで動作するという点にあります(特に「ビッグ」ブラウザー用のコード生成のため)。これらのJavaScriptの基礎となるライブラリーは多くの問題を引き起こす可能性があります。

jgindin GWT IncubatorとGWT Mosaicは今のところ最高です。


非常に誤解を招く。リストされているほとんどすべてのライブラリは、ExtGWT(GPL)を除き、商用に適したライセンス(Apache、BSD、LGPL)を備えたオープンソースです。さらに、現在提供されているコンポーネントセットが非常に限られている場合でも、GWTには多くのクロスブラウザバグがあります。バグデータベースを検索してこれを確認してください。GWTコンパイラーは魔法ではなく、奇妙な状況固有のブラウザーレイアウトのバグなどを自動的に修正しません。他のフレームワークと同様に回避する必要があります。SmartGWTは、公式のiPhoneまたはAndroidサポートを発表していません。
Charles Kendrick 2010

7

「最高」とは言えませんが、最近はGWT-Extを使用しています。いくつかの長所と短所があります。

長所:

  • セットアップと使用が比較的簡単
  • その背後にまともなサイズのコミュニティ
  • オンラインで多数のサンプルがあり、そのすべてに付随するコードがあります
  • 幅広い機能をカバーするウィジェットの優れた選択

短所:

  • データの形式と構造について、対応できない可能性があることを想定している
  • ライブラリは単なるJSNIラッパーであり、デバッグと拡張が困難になります。
  • ライブラリの将来のサポートと開発は不確実です
  • いくつかの迷惑なブラウザ間の問題がまだ存在しています(特にレイアウトに関して)
  • 彼らのフォーラムの検索機能は本質的に役に立たない。(これは私の大きなピーピーピーとなりつつあります> _ <)

6

それらを使用しないでください!大規模なアプリケーションの開発を計画している場合は、MVPパターンの使用を検討する必要があります。最適な実装はMVP4Gフレームワークであり、そのままでGWTコード分割をサポートします。素晴らしい例がたくさんあります。最も価値のあるものはMvp4GModulesです。


5

新しいものを追加:GWT-Bootstrap :)

現在、安定版リリースはありませんが、まもなくリリースされます。


1
GWT-Bootstrapは、最高のものになる可能性があります。
Mike

タブやモーダルなどの領域での非常に基本的なデザインの監視を除きます。彼らはJQueryへの依存を減らし、より「アプリ」を考える必要があります。
Καrτhικ

パッチは大歓迎です。とにかく提案をありがとう
caarlos0

4

私の経験では、サードパーティのライブラリには常に多くの問題があることがわかっています。最善の方法-よく知られ、よく作られたテクノロジー自体と独自のコンポーネントを使用することです。それらを記述して保守するのにより長い時間がかかる場合がありますが、TCOは常に低いレベルです。

サードパーティのライブラリは、多くの場合、予期しない計画を破る可能性があります。そして、問題の原因を見つけて修正することは困難です。

したがって、プレーンなGWTを使用することをお勧めします。


3

ウィジェットをそのまま使用したい場合はSmartGWTで問題ないと思いますが、Gxtスケジューラーで行うようにウィジェットを拡張または変更する場合は、Ext-GWTの方が適していると思います。


3

私にとってEXT-GWT(別名GXT)は現在利用可能な最高のライブラリーです。6か月のプロジェクトで使用し、グリッド、ツリーなどの多くの定義済みコンポーネントを使用して多くのことを支援します。


3
冗談でしょう!私はGXTを18か月間毎日使用しており、正直言ってそれは悪夢です。
Alex Worden、2011年

2

SmartGWTは優れたライブラリであり、多くの例がありますが、ユーザーインターフェイスはそれほど洗練されていません。ユーザーインターフェイスについては、Ext GWTが適しています。


2

gwt-mosaicのユーザーグループはあまりアクティブではないようで、Wikiスニペット以外のユーザーマニュアルは見つかりませんでした。gwt-mosaicは2つの興味深いツールを紹介してくれました。

1)gwt-mosaicには、アプリのJSパーツ(RPCハンドラー、ウィジェットコールバック、ウィジェットセッター)のパブリッシュ/サブスクライブツールであるTibcoのPageBusのラッパーが含まれています。これは、gwtのイベントバスに代わるものです。

2)gwt-mosaicは、データをウィジェットにバインドしてウィジェットを検証するためのBeans Binding(http://code.google.com/p/gwt-beans-binding/)の使用を推奨しています。

smartgwtは、完全な機能セットとサポートのために安くはありません。使用しないテーマファイルを削除しない限り、jarはappengineには大きすぎます。彼らはサーバー側にもエンジニアリングに投資しています。

ext-gwtの動作が遅く、JSファイルが大きいと聞きました。

gwtウィジェットインキュベーターは非推奨に見えます。新しいグリッドでデラックスグリッドがリリースされると思います。

ルックアンドフィール、バインディング、および検証の標準がないため、ウィジェットライブラリの相互運用性が妨げられています。


ドキュメントのインストール手順を無視しない限り、大きな.jarを使用したSmartGWT GAEの問題はありません。実際、SmartGWT Proには、GAEで実行され、永続化にJPAを使用して完全なCRUDを提供するサンプルプロジェクトが含まれています。また、比較的安価です。SmartGWTに提供される最も高価なライセンスとサポートオプションは、開発者、QA、ハードウェア/ホスティングなどのコストを考慮すると、アプリケーション/製品全体を提供するコストのごくわずかです。手頃な予算の場合は、無料(LGPL)バージョンがあります。
Charles Kendrick 2010

2

間違いなくSmartGWTではありません。彼らのフレームワークは肥大化し、非常に中途半端な性質を持っています。彼らは100万のウィジェットを持っていますが、それらをプロジェクトで機能させることは簡単ではありません。データソースは、非常に大きな方法でデータを管理するプロセスを複雑にします。たとえば、データソース内のデータにアクセスするには、fecthを使用して頻繁に検査する必要があります。結果をキャッシュすることはできますが、それらを調査することは必ずしも容易ではありません。

RPCも弱くて複雑な領域です。ドキュメントとフォーラムに矛盾する情報があります。ドキュメントには、dsの一部としてカスタム操作を使用することはめったにないことが書かれていますが、フォーラムはそれが完全に問題ないことを教えてくれます。これらのツールを効果的に使用することを学ぶことは、最高の日には困難を伴います。

彼らは製品を売るでしょう。たとえば、charting / analyticsパッケージにはグラフが含まれていますが、これらのグラフには負の値が表示されず、軸ラベルを意味のある方法で操作できません。そして、彼らはフォーラムでこれについての質問に「そうそう」という態度で公然と答えます。「これはセールスポイントの1つですが、3.0xに追加する予定はありません。ロードマップに記載されています。」彼らが私にパッケージを売ったとき、彼らは私が負の値を表示できないとは決して言っていませんでした。本当に?負の値を表示できなくてもよいグラフはどれですか。不幸な同形の顧客の数を描いた1つだけを考えることができます。

これらの人から離れて、ExtJS、JQuery、quxdooなどの競合他社のサイトにアクセスしてください。実際に地位を確立していて、実際に優れたソリューションを提供しているプロジェクトがいくつかあります。

この製品を評価する場合は十分に注意してください。見た目はいいですが、それを使用してプロジェクトを開始してから約2週間で、私の意味がわかります。ウィジェットは中途半端で、データソースは非常に複雑で、フォーラムのサポートに料金を支払ったからといって、実際にはsnide以外のものが得られるわけではありません。彼らは一般的に非常に傲慢ではありませんでした。

幸運を祈ります。開発時間と保守性を重視する場合は、この製品から離れてください。最後にもう1つ。WebサイトでMVCの例を見てください。ラベルが「MVC」と書かれていること以外は、文字通りMVCとは関係ありません。彼らは、そのようなフレームワークは経験の浅い開発者向けであり、そのような概念は実際のプログラミングには役立たないことをあなたに納得させようとします...


簡単に確認できるので、すべてがかなり間違っています。これがMVCサンプル(smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc)です。このユーザーは基本的にそれを取得できません。説明を読むと、驚異的なパワーが示されていることがわかります。「フェッチして検査する」ことの意味を推測することさえできませんが、ユーザーがクイックスタートガイドを読んでおらず、システムを誤って使用している可能性があります。自分で読むだけ(smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf)、アーキテクチャは明確で一目瞭然です。また、チャートは負の値をプロットします。
Charles Kendrick 2012年

ここで正直にしましょう。3.0の現在の安定したビルドは負の数をサポートしておらず、彼ら自身の言葉では、それをサポートすることを拒否します: forums.smartclient.com/showthread.php?t=21219
バイナリジャイアント


?? そのスレッドは、ドットリリース(3.1)を使用するように顧客に指示します。アップグレードではなく無料で、非常に安定しています。あなたはこの音をより多く売るまたはより多くのお金を引き出そうとする試みのようにしようとしました、それは偽であるだけでなく、真実から遠く離れることができません:3.1で人々が無料で得ているすべての主要な新機能を見てください(blog.isomorphic .com /…)。あなたは明らかに意図的に誤解を招くものでした、それはあなたの他のコメントに光を当てます。
Charles Kendrick

間違いを犯すつもりはありません。ただし、これに対応して、製品のすべての優れた機能(この場合は分析パッケージ)を強調表示するのは誤解を招くと言いますが、実際には負の数をプロットしなかった(3.1以前)ことを除外します。さらに、3.0リリースにカスタムCSS実装がない限り、3 "ドット"リリースへのアップグレードは問題ありません。これは、SmartGWTでの作業が苦痛である別のポイントを強調します...
12

1

Googleのデフォルトライブラリは、最も強力なライブラリです。

Ext GWTはベルとホイッスルを追加しますが、それ以外はGoogleのものに似ています。


1

現在、GWT Mosaicウィジェットが気に入っています。私たちはext-JSを使用しており、過去に独自のウィジェットをロールバックしました。ext-JSライセンスとバルクは私たちにとって問題でした。自分で転がすことは、私たちがやりたいことではありません。Mosaicは、プロジェクトが成熟するにつれ、より幸せな中間基盤になると考えたい幸せな中間基盤を提供します。


1

ウィジェットが少しだけ必要な場合は、独自のウィジェットを作成します。上記のライブラリからいくつかの概念をコピーして貼り付けることができます。しかし、それらすべてにどちらかが欠けています。私はそれらのほとんどで遊んで、すべてを放棄しました。


1

知っておくべきことの1つは、フォーラムからGWT-Extがあまり開発/保守されないように見えることです(たぶんまったくないかもしれませんか?)。彼らのWebサイトでは、SmartGWTへの移行を推奨しています


1

Vaadin(以前はIT Mill Toolkitと呼ばれていました)について言及していませんでしたが、技術的に正確にGWTではないためと考えられます。彼らのFAQが言うように:

これはGWTとどう違うのですか?

GWTアプリケーションはブラウザーで実行され、Vaadinアプリケーションはサーバーで実行されます。実際にはブラウザー側で「レンダリングエンジン」としてGWTを使用しているため、VaadinとGWTを組み合わせることができます。


1

smartGWTは遅く、例が不足しており、基本的な質問でさえ答えを見つけるのは非常に困難です。つまり、このフォーラムで私の未回答の質問をすべて表示します。smartgwtをダンプしています。


SmartGWTは確実に進行中の作業ですが、改善されています。2つの別々の機会に、開発者にトランクのバグを報告してから数日以内にバグを修正してもらいました。これは励みになります。これは大きくて重いAPIなので、作成しているアプリと一致するかどうかを自問する必要があります。
AndrewR 2010年

SmartGWTには、ここで説明しているどのライブラリよりも多くのサンプルがあります。これは客観的に検証可能です:(smartclient.com/smartgwt/showcase/#main)非常に強力なクイックスタートガイド(smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf)もあります。このユーザーが尋ねた質問を見てください-1つは無効で、もう1つは答えました。
Charles Kendrick


0

GWTポートレットを使用して、大きなHRポータルといくつかの小さなアプリケーションを構築しました。プロジェクトの焦点は、ウィジェットのコレクションを構築することではなく、単純なプログラミングモデルを作成することです。

ウェブサイトから:

GWTポートレットは、GWT(Google Web Toolkit)アプリケーションを構築するための無料のオープンソースWebフレームワークです。非常にシンプルで生産的でありながら強力なプログラミングモデルを定義して、見栄えのよいモジュール式のGWTアプリケーションを構築します。

プログラミングモデルは、ポータルサーバー(Liferay、JBoss Portalなど)用のJSR168ポートレットを作成することと多少似ています。「ポータル」は、GWTポートレットフレームワークをライブラリとして使用して構築されたアプリケーションです。アプリケーションの機能は、疎結合のポートレットとして開発され、それぞれにオプションのサーバー側DataProviderがあります。


0

1年間GWTを使用しています。多くの調査の結果、GWT Mosaicをウィジェットライブラリとして決定しました。Mosaicは、PagingScrollTableなどのGWTインキュベーターコンポーネントの一部を使用しています。しかし、コンボボックスとテーブルの機能では十分ではありません。これらのコンポーネントを拡張して、必要な機能を追加しました。



0

2つの重要なこと、そしてライブラリのほとんどが欠けているものは、単体テストとデバッグです。それがGWTが輝くところです。バニラjsに基づくライブラリを使用する場合は、プロジェクトを単体テストおよびデバッグする機能を提供します。GWT開発者は、これらの点を考慮し、js依存関係がないか最小限のライブラリーを使用する必要があります。


0

私たちは2年以上にわたってgwtプロジェクトを行っており、デフォルトのウィジェットを使用しています。独自のオープンソースライブラリを作成して、デフォルトのライブラリまたは独自のウィジェット拡張を自動入力しました。確認してください。これはgwt-jetと呼ばれています。大規模な実稼働環境で使用しているため、十分にテストされており、時間をかけて安全に成長することを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.