2009-07-04 6 views
5

私はバックオフィスの目的でWebアプリケーションを構築する必要がありますが、主な要件の1つは優れたUIです。バックエンドWebアプリケーションにはどのようなものがありますか?Flex、GWT、JQuery?

サーバー側では、クライアント側で何を使用するのかに応じて、Javaの可能性が高いSpringフレームワークを使用します。

  • "ノーマル"、Webアプリケーション、jQueryのフレームワークを使用してJSPページを、意味:私は思う

    は、基本的には、クライアント側のための3つの選択肢を持っています。この場合、私はSpringの機能、MVCパターンなどを使用します。私はSpringとJQueryを2年間使用していますので、これらの技術は非常によくわかります。しかし、私はまた、いくつかのエフェクト、多くのJavaScriptコード、特にAjax呼び出しやページ構造の動的な変更を扱う場合にはかなり複雑であることも知っています。

  • Springと統合するBlazeDなどのアドオンを持つFlex。 Flexを使った経験はありません。記事やチュートリアルを読んだだけですが、何か新しいことを学びたいと思っています:-)
  • gwt-extのようなものが多分あります。経験はありませんが、私は本当に学びたいです。必要な場合は十分にサポートされていますが、同じプロジェクトでSpring MVCとGWTを維持するために苦労すると思いますが、それほど簡単ではないが、いくつかのパターンがあります。

アドバイスをお持ちですか?私はあなたがあなたのアプリケーションは、別のサービスやビュー階層に分割する場合は、完全な選択を延期することができると思い、事前

答えて

5

感謝。バックエンドを正しく取得すると、自由にビューテクノロジを入れ替えることができます。

あなたとあなたのチームが最もよく知っているものを選択してください。最も重要な考慮事項はサポートとメンテナンスです。私は3人すべてが十分な努力と磨きであなたのニーズに応えることができると確信しています。

私の個人的な選択は、FlexとSpring BlazeDSです。それはセクシーだ。

+0

+1は、パーティション化についてのアドバイスです。 –

+0

はい、あなたの良いアドバイスをお寄せいただきありがとうございます!私はすでにそれについて考えていた – emas

2

Flexはあなたの目的に適しています。 MXMLを使用すると、動的な構造の変更やエフェクトを使用して、すばらしいユーザーインターフェイスを簡単に作成できます。開発の初期段階でもあるので、これからコードGumboという、Flexの次期バージョンを使用するメリットを検討することをお勧めします。

グンボは、特にデザイン部門で多くのウェルカムアップデートを提供しています。たとえば、グラフィカルシェイプをテキストで定義するためのマークアップの一種であるFXGを使用して、ダイナミックスキンを使用して魅力的な外観のUIを作成する方がはるかに簡単です。 FXGはまた、設計を実際のコードに変換するためのツールであるキーテクノロジーFlash Catalystです。 Catalystは現状の生産品質コードでは使用できないかもしれませんが、プロトタイプを作成する際には非常に役立ちます。

当然のことながら、どのデザインでも、フロントエンド技術の選択はバックエンドと結合しないようにして、フロントエンド層をスワップすることができます。

+0

本当に興味深い、私はFlexの次のバージョンに関する情報を見つけませんでした、私は確かに私がフレックスに行く場合は考慮します – emas

3

これは、すべての三つにダウンしています:

  1. アプリケーションのどのような種類を構築していますか?
  2. よく知っているスキルセットで、スキルを必要に応じて快適に移行できますか?
  3. インフラストラクチャの技術要件は何ですか?

アプリケーションの機能は、あなたが強化されたハイパーテキストベースのアプリケーションがニーズ(AJAX、XHTML)に適しているかどうか、またはそれ以上のリッチメディア技術がより適しているかどうかを判断する必要があり、その後、技術を駆動するようにしている場合Flash Platform(そのうちのFlexはその一部です)として使用できます。

#2と#3の番号は、チームの既存のスキルセットとインフラストラクチャを考慮している点でよく似ています。アプリケーションの要件によって、どちらのテクノロジでもアプリケーションをデプロイできるようになっている場合、スキルセットとインフラストラクチャのサポートは何かを判断する必要があります。あなたのチームがFlash/FlexとLCDS/FMSでより多くの経験を持っているなら、それを使用してください。

しかし、Flash PlatformベースのRIAは、アーキテクチャの変更がほとんどないAJAX製のRIAと同じように構築できるという大きな誤解、または「アプリを別々のサービスとビュー層に分割できます...ビュー技術を自由に入れ替えることができます。私の友達は災害のためのレシピです。 Flash Platform/Flexアプリケーションを構築することは、アプリケーションインテリジェンスの大半がクライアント上に存在するため、バックエンドがクライアント側アプリケーションのスレーブであることを意味します。あなたがAJAXアプリケーションのようなFlexアプリケーションを構築する場合、あなたは完全に建築設計上の混乱を巻き起こすだろう、私はそれが何度も起こるのを見た。このトリックは、コントローラ/サービスのどの部分をクライアント上に保持するのか、またサーバ上に保持するのかを知ることです。

あなたの質問に答えるには、このアプリの開発を推進している機能 - 機能セットまたは使用方法を知っている技術を自分自身に尋ねる必要があります。多くの場合、人々は2つを混同し、1つまたは他の実装のために不必要な個人的偏見を生み出します。

+0

これは良いアプローチだと思う、ありがとう。 Flexについての経験は一度もありませんでした。私は次のプロトタイプの構築を試みます。 – emas

0

あなたの主な前提条件の1つが優れたUIである場合は、何らかの種類のデザイナーがあなたを助けてくれることを確認してください。ほとんどの言語で優れたUIを構築できるため、それを決定するフレームワークではありません。

私はGWTを他の2つに比べて推奨したいと思います。それ以外の理由で私はそれが私にとって最高のものだと分かりません。あなたのマイレージは異なる場合があります。

そして、善意のために、春?私は炎戦を始めたいとは思っていませんが、実際に誰がそれを自分自身にしていますか?プロジェクトを通常のEJB3/JPAビジネス層、軽量ウェブ層、GWTクライアントのようなより標準的な技術に切り替えると、はるかに幸せになれます。コードが少なくて済み、メンテナンスがはるかに簡単になり、春の注入/傍受の奇妙さを心配する必要はありません。 Strutsがフロントエンドに何をしているのか、春はバックエンドにある、古くなった、ぎこちない、古い);

+0

私はSpringが "clunky and old"とは思っていませんが、wepアプリケーションを構築するときには本当に便利ですが、GWTと一緒に使うのはもう少し複雑です。 – emas

+0

autowiringをオンにしたSpring FWIW、clunkyを感じることはありません。オートワイヤリングのない春は、スローモーションで歯を引っ張るような感じです。 –

1

私はRustyのSpringの評価に同意しなければならない。それは絶えず更新されており、多くの力を持っています。

私はGWTの大きなファンです。他のどの技術よりも必ずしも優れているとは言えませんが、私はそれが好きです。

これは、どれだけの馬力が必要かによって決まります。 100人のユーザーしかいない場合は大したことではありませんが、ユーザー数が多い場合は、もっと大きく考える必要があります。そのような状況でGWTはうまくいくかもしれませんが、私がやった大きなプロジェクトは他の技術と一緒でした。

私の現在の趣味プロジェクトはhttp://penwag.comです。私はGWTをフロントエンドとバックエンドに使い、Hibernate + MySQLは永続性のために使います。全部がtomcatの下で動作し、128Mの保証されたRAMと100MHzのCPUを誇るrapidvps.comサーバーでホストされています。

必要に応じて、GWTを使用してMVCまたはMVPパターンを実行できます。しかし、GWTを使用している場合、MVPよりも懸念を少しでも分けることができるため、MVPアプローチを採用することもできます。

あなたのユーザーベースの大きさはどのように推測できますか?

編集:

はここところでgallery of GWTアプリケーションです。

+0

GWTを使用するとパフォーマンスに問題が生じる可能性がありますか?私のユーザーベースは、おそらく5000人のユーザーが何千ものユーザーの順でなければなりませんが、サーバーとインフラストラクチャは非常に強力です。彼らはハードウェアについて今はあまりよく分かりませんが、私は確かに進む前に調査します。 – emas

+0

あなたにはうまくいくはずですが、私はGWTをそのレベルまで負荷テストしていないので、実際のデータでそれをバックアップすることはできません。理論的には、帯域幅とバックエンド処理の両方で要求がはるかに小さいため、Ajaxアプリケーションのスケーラビリティが向上するはずです。 –

1

これはduffymoの回答と同じかもしれませんが、繰り返す価値があります。クライアントの存在をサーバーに依存しないようにしてください。

私の現在のプロジェクトでは、クライアントとサーバーの間にJSON RESTインターフェイスがあります。これにより私たちは好きなだけ多くの異なるクライアント実装を持つことができます。面白いことに、サーバーはJavaから.NETに完全に変わる可能性があり、データAPIが変わらない限り、クライアントは気にしません。

この種の環境は、純粋なデータテストにも役立ちます。 JSONを前後に送り込むだけで、クライアントとサーバーの両方をテストすることができます(ライブと独立)。

関連する問題