7

WindowsデスクトップおよびiPadアプリケーションとしてフィードリーダーを作成することを計画しています。このアプリケーションでWebサイトを表示し、(独自の)JavaScriptを実行できるようにしたいので、アプリケーションをHTML / CSS / JavaScriptとして提供し、.NETコントロールまたはCocoaTouchWebブラウザーコンポーネントでラップすることを検討しました。したがって、当面のタスクは、アプリケーションに埋め込むHTML / CSS/JSファイルを作成するために使用するフレームワークを見つけることです。

HTML / CSS / JavaScriptの開発には、JSよりもJavaの方がはるかに優れているため、Vaadin、GWT、またはその他のフレームワークを使用できます。UIコンポーネントは非常に優れているため、短いブレーンストーミングの後でVaadinを使用することをお勧めしますが、手間のかかる作業のほとんどがクライアントではなくサーバー上で行われるのではないかと心配しています(それはあまり良いことではありません)。GWTも必要ですが、JavaからJSへのコンパイルには多くの時間と余分な手順が必要であり、これを使用すると、過去の開発時間が遅くなりました。

問題は、どの開発フレームワークを選択するか(このプロジェクトを実装したいと思っていて、これまでほとんどJavaを実行していた場合)、そしてその理由は何ですか?より良いフレームワークオプション(リッチクライアントフレームワークのリスト)がある場合は、お知らせください。

編集:アプリケーションは時々サーバーと通信する必要があります(たとえば、読み取られたものを同期します)が、主にxmlフィード自体を取得する必要があります。したがって、生成されたコードのほとんどをアプリケーションに埋め込むことができ、サーバーで頻繁にアクティビティを行う必要がないことを願っています。

Edit2:私たちは(実際には疑わしいとしても)少なくとも10000人のユーザーを期待しています。

4

3 に答える 3

7

Vaadinでの私の経験に基づいて、私はそれを選びますが、あなたの要件は、代わりに純粋なGWTをいくらか支持しています。

  • Vaadinにはサーバーとサーバー接続が必要です。ほとんどオフラインのデスクトップアプリケーションを構築する場合、これは、たとえば組み込みのJettyで解決できます。(必要な場合にのみオンラインサービスと同期します)が、iPadの場合、Vaadinアプリケーションを開始するにはすぐにオンラインに接続する必要があります。
  • GWTは完全にクライアント側で実行され、必要な場合にのみ接続するJavaScriptブラウザーアプリケーションを構築できます。

Vaadinは開発がはるかに速いため、最初に小さなVaadinバージョンを作成して、それが実際にiPadで問題になるかどうかを確認できます。

一方、すぐにオンラインになることを想定できる場合は、ローカルサーバーのインストールを完全にスキップできます。アプリケーションをオンラインで実行し、オペレーティングシステムのデフォルトのブラウザコントロール(つまり、提案した.NETコントロール)を使用してデスクトップバージョンを実装するだけです。そうすれば、Vaadinの方が簡単です。

于 2011-03-11T13:17:34.867 に答える
4

VaadinはGWTのフレームワークベースですが、2つの非常に重要な機能があります。

  • GWTコンパイラを実行する必要はありません。純粋なJavaです。もちろん、アドオンを追加しない場合は、gwtコンパイラを実行する必要があります。
  • 通信コードを書く必要はありません。したがって、DTOの問題、シリアル化できないオブジェクトマッピングを解決する必要はなく、サーブレットを作成する必要もありません。

私は1年間仕事でVaadinを使用していますが、パフォーマンスの問題はまだ発生していません(500ユーザーまでのアプリケーションのようなデスクトップ)。IMOの非常に優れたソリューションは、UIにのみVaadinを使用し、ロジックを独立したBeanに移動し、SpringまたはGuiceを使用してこの2つの要素を接続することです。

この場合、MVPパターンとドメイン駆動開発を使用する必要があります。

  • Bussines Beanは、ビューインターフェイスを使用して応答を送信するドメインオブジェクトおよびロジックです。
  • カスタムVaadinコンポーネント(標準コンポーネントを拡張できます)は、ビューインターフェイスを実装します。

Vaadinが適切でない場合に、UIエンジンを変更する場合は、この方法が適しています。guice / springマッピングを書き直して、ビューインターフェイスの新しい実装を作成するだけです。

于 2011-03-10T13:45:15.230 に答える
4

私の3セント:

vaadinを使用することにした場合は、すでに見栄えの良いコンポーネントの恩恵を受けることができます。CSS(たくさん)を書きたくないので、vaadinは箱から出してすぐに見栄えがします。ただし、Vaadinはサーバーサイドフレームワークです。ユーザーインターフェイスの操作は、データの取得(たとえば、あるタブから別のタブへの移動)を伴わない場合でも、バックエンドに影響を与えます。

GWTを使用する場合は、少なくともアプリケーションのスタイルを設定する必要があります(これは難しいことではありません)。コンパイル時間が長いという問題もあります(ただし、ホストモードでテストおよびデバッグできるため、コンパイルせずにアプリケーションを実行でき、デプロイ時にのみコンパイルできます)。gwtの主な利点は、ネットワークに送信される内容を制御できることです。バックエンドからデータを取得する必要のないUIインタラクションの場合、純粋にクライアント側で機能します。開発者は、いつリクエストをバックエンドに送信するかを決定します。(GWTでRPCリクエストを実行するのは非常に簡単です)

これがあなたの決断に役立つことを願っています。

于 2011-03-11T11:34:47.923 に答える