web-dev-qa-db-ja.com

ウィケットvsヴァーディン

ウィケットとヴァーディンの間で引き裂かれた。私はmicro-isvを開始しており、Webフレームワークを選択する必要があります。選択肢をWicketとVaadinに絞り込みました。私は両方のフレームワークを使用しており、両方とも気に入っています。しかし、私は選択をする必要があります。

Vaadinを選択した場合:

  1. ルックアンドフィールをあまり気にする必要はありません。それはニースのテーマが付属しています。
  2. 私はすべてのプログラミングをJavaで行います。これは非常に得意で、あまり得意でないCSSのハッキングに時間を費やす必要はありません。
  3. そして、私がビジネスアプリケーションに必要とするコンポーネントのほとんどは、デスクトップのようなレイアウト、ツールチップ、キーボードショートカット、ドラッグして折りたたむことができる列を含むテーブルなどです。

ただし、Vaadinの方法を使用する場合:

  1. 宣言的にUIを作成する機能を失います。
  2. ブラウザーがJavaScriptをサポートしていない場合、フォールバック機能はありません。たとえば、ほとんどの非Webkitモバイルブラウザーです。
  3. Vaadin社は一部のコンポーネント(JPAContainerなど)を販売しているため、同社が完全なオープンソースフレームワークの提供に取り組むかどうかは不明です。事業利益は常に最初に来ます。
  4. Vaadinアプリケーションは、主にイントラネット向けです。 Webのルックアンドフィールを持つインターネットにはあまり適していません。

Wicketの方法を使用する場合:

  1. 私は自分のアプリケーションにスタイルを設定する必要があり、デスクトップのルックアンドフィールを与えることはほとんどできません。

何かアドバイス?どちらかのフレームワークの経験を持つ人なら誰でも、短所と長所、そしてどのようにして意思決定をしたかを教えてくれます。

48
joshua

両方のフレームワークに時間を費やしたと思います。 Swingに似たコーディングをWeb開発に取り入れているので、私はどちらも本当に気に入っています。そして、私はもっと簡単なものを知りません(クリックはありますが、速度テンプレート化は好きではありません)

そして、はい、違いがあります。

ルックアンドフィールをあまり気にする必要はありません。ニースのテーマが付属しています

真実ですが、真面目な会社はすべて、アプリのスタイルを変えます(プロトタイプを作成している場合を除く)

私はすべてのプログラミングをJavaで実行します。これは非常に得意で、あまり得意でないcssのハッキングに時間を費やす必要はありません。

それでVaadinは「より良い」でしょう。

宣言的にUIを作成する機能を失います。

その利点は何ですか? (ところで:groovyで宣言型をコーディングできます;-))

でも大丈夫。私はあなたが何を意味するかを知っています。もしあなたが改札よりも別のデザイナーに努力することができるなら「より良い」です。

デスクトップのルックアンドフィールを与えることはほとんどできません。

何故なの?または、ここでどういう意味ですか? Wicketはajaxをサポートしており、ニースの「デスクトップに似た」ものをサポートするコンポーネントがあります(ajaxlink、lazycomponent、オートコンプリート、プログレスバー、改札など+拡張機能を参照)。わかりました。より複雑なコンポーネントの場合は、JavaScriptでコーディングする必要がありますが、ところで、あなたが 改札内でGWTを使用する

いくつかのマイナーな経験:

Vaadinは、コーディング中は確かに高速です(CSS、HTMLなどはありません)。ただし、本番環境に移行する場合は、プログラミングが容易になるとクライアント側のパフォーマンスが低下する可能性があることに注意してください。 Horizo​​ntal/VerticalLayoutなどの「間違った」レイアウトを使用すると、JavaScriptを大量に使用すると古いブラウザの速度が低下する可能性があります。

しかし、ヴァーディンは遅いわ​​けではありません! CssLayoutやFastLayoutなどの適切なレイアウトを使用してください。また、古いブラウザでも対応できます。 (CssLayoutを使用する場合でも、コーディングスタイルは非常によく似ています。)

Vaadinの1つの問題は、クライアントがすべてのCPUを必要とし、ネストされたdivが不可解なID名を取得する場所を簡単に確認できないため、プロファイリングが少し難しいことです。

Wicketの優れた点の1つは、その ワープ持続統合 です。

(GuiceはVaadinおよびWicketに統合できます)

UIのテストはVaadinで簡単にできるはずです(ただし、単体テストは見つかりませんでした)。非常に簡単です with wicket

最後になりましたが、リスト/テーブルの作成は、ウィケットに比べてVaadinで非常に簡単です。

30
Karussell

私はWicketで広範囲に働きましたが、Vaadinでの経験はありませんので、これは(少し)偏ったものかもしれません。

明らかな理由からWicketをお勧めしますが、おそらくあなたにとって興味深いのはWicketsの開放性です。 Gweebzが正しく指摘したように、Wicketは基礎として基本的なHTMLマークアップを使用するため、構造的または表面的な変更を実装するのは簡単です。

個人的に私が改札の仕事について本当に楽しんでいることの1つは、フロントエンドのプレゼンテーションとデータバックエンドの間のフローです。SpringとJPA/Hibernateを実装しました。つまり、フロントエンドでの変更をデータベースに戻すことができます。 Wicketsモデルベースのアーキテクチャのおかげで、1行のコードで。

繰り返しになりますが、Vaadinがこれまで使用したことがないので、あまり言えることはありませんが、最初にアーキテクチャーを探している場合は、GWTも参照することをお勧めします。

10
BjornS

(最初のWicket関連の回答のコメントから続く)

VaadinとWicketの主な違いは、UI構成とクライアント側コードの記述方法にあります。 Vaadinを使用すると、通常はテンプレートやHTMLをまったく使用せずにUIを構成し、洗練された完全なAjaxのUIをそのまま使用できます。ただし、テンプレートアプローチを使用する場合は、まさにそれを行うCustomLayoutを使用してください。

クライアント側のコーディングが必要になることはめったにありませんが、その場合は、JavaベースのGWTを使用します。これは、手動でJavaScriptを作成するよりもIMOの方がはるかに優れています。その上、GWTを使用すると、これらの問題に自分で対処する必要がなく、ブラウザーに準拠したソリューションを自動的に取得できます。

フレームワークを比較するときは、コミュニティの活動とドキュメントも確認する必要があります。 Vaadinでは、これらの両方が優れています。また、現在100以上の非常に便利なUIコンポーネントとその他のアドオンが含まれているVaadin Directoryにも注意してください。

9
hezamu

それぞれの経験は限られていますが、ヴァーディンの方が好きです。私が開発していたWebアプリケーションをより豊かに体験できるようになりました。けれども私たちを売り込んだ主な利点は、UIクラスの周りに単体テストを書くことがいかに簡単で、コンポーネントが期待どおりに相互作用したときに正しく機能することを保証することでした。これはWicketでも可能ですが、私の経験ではより困難でした。

また、どちらのフレームワークにもスタイリングが必要になることも述べておきます。 Wicketはプレーンな古いHTMLとして開始し、VaadinはデフォルトでMacOSXのようなテーマで開始しますが、作成するほとんどすべてのWebアプリには少なくともいくつかのカスタマイズが必要です。これを念頭に置いて、マークアップを制御するという単純な理由により、WicketアプリのCSSのカスタマイズはVaadinよりも大幅に簡単です。 Vaadinはマークアップを非表示にし、奇妙なIDと構造を持つ要素を生成するため、外観をカスタマイズするのが難しくなります。決定するときは、これを覚えておいてください。

7
Jesse Webb

私は現在Wicketで作業しており、Vaadinでパスを使用しています。私の観察では不足します:

  • Vaadinは無料で利用できますが、IMOはそのように美しくありません。遭遇する痛みを伴うトリッキーな問題のサポート、ヘルプ、ドキュメントが必要な場合は、Apache Wicketと比較した場合、優れたドキュメント/コミュニティがないため、困惑しています。 Vaadinにはあなたを助ける人がいますが、あなたはそれを支払う必要があります。;
  • 改札でプログラミングするには、強力なプログラマである必要があります。 Vaadinには、適切なJava知識も必要ですが、必要に応じて簡単にスパゲッティコードを実行できます(言うだけで、やらないことです。));
  • Apache Wicketは、Webテクノロジー(Javascript、HTMLなど)をフレームワークテクノロジー(Java)から本当に分離しています。 Vaadinもそれを試みていますが、IMOはそれほどエレガントで透明性がありません。

それからさらに、私たちは2つの異なるタイプのフレームワーク、2つの異なるアプローチについて話しています。これらには長所と短所があり、検索と比較を行って、ニーズに本当に合っているものを確認することをお勧めします。

編集:ああ、そしてルックアンドフィールについては、たとえば、常に Wicket Bootstrap

4
Cavaleiro

Vaadinベースフレームワークは無料ですが、追加機能によってはbuy拡張が必要になる場合があることにも注意してください。

例-Highchartsなどの優れたチャートソリューションを統合する必要がある場合は、vaadinチャート拡張機能を購入して購入する必要があります(highchartsはFOSSアプリで無料で利用できますが、その上に構築されたvaadinチャートプラグインは無料では提供されませんFOSSアプリ)。