37

私の会社は、 .NETアプリケーションから、純粋にWeb ベースで非常に「ajaxy」なものに移行しようとしています。元の .NET アプリはかなりインタラクティブで、ユーザー インタラクション (ズーム、パン、ベクトル マップ上のフィーチャに注釈を付ける) に関する限り、Google マップとほぼ同じです。

私たちの .NET 開発者はFlex2に夢中です。私はかなり強い Java バイアスを持っていることを認めます。また、私はGWTで約 1 年分の経験があり、かなり迅速に物事を成し遂げることができます。私たちのコードベースはほとんどがJ2EEであるため、GWT は私にとって自然に適合するように思えます。私は Flex の経験がまったくないため、Flex を推奨することも、反対することもできません。

フレームワークを選択する際の主な関心は次のとおりです。

  • 将来性のある
  • すべての主要なブラウザで動作します
  • 高速で応答性の高いユーザー エクスペリエンス
  • コードは単体テスト可能である必要があります
  • コードは保守可能でなければならない
  • 開発のスピードと容易さ
  • ある種のベクター グラフィックスをサポート (SVG プラス)

これら 2 つのテクノロジの長所と短所を比較検討したり、3 番目のオプションを推奨したりしますか?

4

12 に答える 12

32

私は Flex についてはあまり詳しくありませんが、長年 GWT を使用してきました。数年前 (Flash と GWT) と非常によく似た決定を下さなければなりませんでしたが、理由は異なります。最終的に、Flash よりも GWT の方が多くの利点があることがわかりました (その多くは Flex に適用されます)。

  • すべてのお客様が Flash を持っているわけではありません。アドビの普及率は役に立ちません。お客様が実際に持っているものを確認するには、独自の (私たちが持っている) 必要があります。企業および教育市場での普及率は、Adobe が引用する 90 年代後半よりもはるかに低いです。

  • GWT は真にクロスブラウザーおよびプラットフォーム互換性 (Linux、Mac、Windows、Android、iPhone など) ですが、Flash は決してそうではありません。あなたはそれを気にしないかもしれませんが、私たちはそうしました。

  • Flex は独自のアドビ テクノロジーですが、GWT は完全にオープン ソースでカスタマイズ可能です。

  • GWT は DOM と統合され、ページ上の他のすべては、Flash や Flex よりもはるかに簡単に統合されます。

  • GWT は Java でコーディングされており、私たちは Java をよく知っています。

特定のポイントに対処するには:

*  futureproof

真に将来を保証するものはありませんが、GWT と Flex の両方がかなり将来を保証すると思います。GWT はオープン ソースであるため、もう少し大きいかもしれません。

* works on all major browsers

GWT は、Firefox (およびすべての gecko ブラウザー)、Safari (およびすべての Webkit ブラウザー)、IE、Opera で動作します。Flex はすべてのブラウザーで動作しますが、Flash がサポートされている場合に限られます。そのため、GWT がトップに立つと言えます。

* fast & responsive user experience

Flex がサポートされているプラ​​ットフォームでは、Flex はユーザー エクスペリエンスのために GWT を無効にします。滑らかさと滑らかさに関しては、フラッシュと競合することはできません.

* code should be unit testable

どちらも簡単に単体テスト可能

* code must be maintainable

適切にコーディングされている場合、両方とも保守可能です

* speed & ease of development

あなたがそれらに精通している限り、それはかなりの量だと思います.

* supports vector graphics of some sort (SVG a plus)

Flex について話すことはできませんが、GWT はサードパーティ ライブラリを介して SVG 経由でベクター グラフィックスをサポートします。

于 2009-01-08T23:21:05.947 に答える
15

私は GWT には詳しくありませんが、Flex には非常に精通しています。GWT は Java ベースですが (そして、あなたは主に Java ショップのように思えます)、次のようなあなたの関心に基づいて Flex をお勧めします。

  • 将来性 - Flash は YouTube と Web 上のマルチメディアの大部分を支えています。彼らはそれをビデオ ゲーム コンソールに組み込み、Intel はそれをセットトップ ボックスに組み込んでいます。Adobe は、Flash Player との 100% の後方互換性を常に維持してきました。

  • すべての主要なブラウザーで動作します - はい。また、Flash Player 10 には Linux システムも含まれています。そして、管理者の頭痛の種はごくわずかです (私の意見では、Java よりもはるかに少ない)。

  • 高速で応答性の高いユーザー エクスペリエンス - はい。ただし、シナリオによっては Java の方が高速になる場合があります。Flash はベクター レンダリング用に最適化されているため、それがターゲットであるため、Java よりも優れたパフォーマンスが得られる可能性があります。

  • コードはユニット テスト可能である必要があります。はい、FlexUnit を参照してください。

  • コードは保守可能でなければなりません - 間違いなく。AS3 は真面目な言語であり、おもちゃのスクリプト言語ではありません。C# や Java のユーザーにはなじみ深いでしょう。

  • スピードと開発の容易さ - あなたがやっていることについて、まさにあなたが説明したことの数十の例を見つけることができます: Google マップのようなベクター画像のズームとパン。ランタイムのコアは適切に設計されたグラフィック エンジンであるため、インタラクティブなグラフィック アプリを構築することは当然のことです。

  • ある種のベクター グラフィックスをサポートします (SVG プラス) - 明らかに、Flash はネイティブでこれを行います。SVG はコンパイル段階でサポートされています (SVG でコンパイルできますが、実行時に SVG を解析することはできません)。実行時に SVG を SWF に変換するツールチェーンが利用可能です。

GWT を使用する唯一の理由は、ショップの Java をサーバーとクライアントに保持することです... しかし、繰り返しますが、あなたは仕事に最適な技術を探していますよね? その場合、Flash (特に Flex フレームワーク) は、あなたが達成したいことに最も適していると言えます。

于 2009-01-08T17:16:25.743 に答える
8

もう 1 つの注意点は、iPhone も Android も現在 Flash をサポートしていないことです。多くの人が、携帯電話で Web アプリにアクセスすることを期待しています。

于 2009-02-11T01:28:24.410 に答える
2

私はしばらくの間、両方の技術を使用してきました。

将来性があります - どちらも成功すると思いますが、すべてのテクノロジーは異なる状況で好まれます。たとえば、UI のような必要なデスクトップを備えた大規模な (主にイントラネット) エンタープライズでの flex (Flex は、任意のサーバー プラットフォーム (jvm、.Net、php、ruby、coldfusion) の上で使用できます)。それ以外の場合、従来の jvm バックエンド (tomcat+spring など) を使用する小規模から中規模のアプリでは、GWT が支配的になります。

すべての主要なブラウザーで動作します - どちらもこの方法では問題ありません。Flex は非常に優れています。Flash プラグインがインストールされている場合、クロスブラウザの互換性を解決する必要はありません (もちろん... Flash アプリが実行されている場合、ブラウザはパッシブです:)。GWT と従来のトラブルメーカー IE6 で小さな問題がいくつかあったことを覚えていますが、ひどいものは何もありませんでした...

高速で応答性の高いユーザー エクスペリエンス - どちらもそのカテゴリでトップです。Flex は、すべての RIA ソリューションの絶対的なトップだと思います (おそらく、Silverlight、Java FX は最もリッチな競争相手にすぎません)。特に、データ管理、実際のサーバー側のデータ プッシュなどのクールな機能を備えた LCDS と統合されています。GWT はトップの 1 つです。 ajax フレームワークのカテゴリで。リッチで複雑な UI が必要なほど、flex を使用する理由が増えます。いずれにせよ、解釈された JavaScript は、コンパイルされた actionscript/swf よりも速く応答することはできません。

コードは単体テスト可能であるべきです - はい、非常にテスト可能です。

コードは保守可能でなければなりません - Flex Builder などの優れた IDE を使用している場合、actionscript の保守は java(gwt) に匹敵します。

スピードと開発の容易さ - スタッフを知っていれば、どちらも完璧です。すべてはあなたのバックグラウンド次第です。典型的な Java 開発者にとって、flex の学習曲線はおそらくもう少し難しいでしょう (新しいコンパイラ/ランタイムと、おそらく新しい IDE または少なくとも新しい Eclipse IDE プラグインを学ぶ必要があります:)。フラッシュに関するある程度の知識はプラスですが、必須ではなく、通常は独自のコンポーネントの構築などの特定のタスクでのみ使用できます。

ある種のベクター グラフィックスをサポートします (SVG プラス) - 問題は覚えていません。これについてはあまり経験がありませんが、将来、FXG が最終化されるときに検討します。

開発と展開のコスト - 勝者は明らかです。GWT。Flex は利益を上げるために開発されました。セルフはオープンソースですが、最高のツール (Flex Builder、新しい Flash Builder/Catalyst) とフレームワーク (LCDS) は市販されており、決して安価ではありません。CPU あたりの LCDS の価格表を見ると、私が話していることがわかるでしょう。GWT では、高品質のツール/フレームワークのほとんどがオープンソース化されているか、少なくとも無料です。ext gwt や smartgwt EE などの一部の高度なコンポーネントを除きます。明らかに、あなたはそれらなしで生きることができます.

于 2010-01-14T21:42:22.603 に答える
2

私は 2000 年から Flash/Flex 開発を行っているので、Flex に偏っています。しかし、あなたの質問に答えると思いますが、それは実際には、達成したいインタラクティブ性と複雑さのレベルにかかっています。

Flex を使用すると、単純な 3D グラフィックスなど、JavaScript 環境 (ASP.NET AJAX、jQuery、GWT) ではほぼ不可能なことが可能になります。複雑なインタラクティブ機能の構築は、Flex では実に簡単です。また、非常に高速で、一度に多数のアニメーション オブジェクトを処理できます。Flex は、Web サービスを使用して .NET または Java とシームレスに通信できます。Flex を使用することの欠点は、緊密に統合されたものではなく、Web サイトに埋め込まれたアプリケーションのように感じられることです。

JavaScript のアプローチに固執する場合は、通常、jQuery のような言語にとらわれないものを使用することをお勧めします。しかし、すでに GWT の経験があるので、それはあなたのプロジェクトにはうまくいくかもしれません。欠点は、GWT は最終的には JavaScript のままであるため、ブラウザーで可能な速度と対話性によって制限されることです。

于 2009-01-08T17:25:09.643 に答える
2

Sun は最近、これらの種類の RIA 用に JavaFX と呼ばれる新しいテクノロジを発表しました。ぜひチェックしてみてください (javafx.com)。Java 5 以上で動作することが想定されていますが、Flash のようなクライアントへの侵入は確実にありません。ただし、テストの要件を考えると、このテクノロジーは現時点では適切ではない可能性があると思います.

また、Troy Gilbert は自分の投稿で誤りを犯したと思います。具体的には、GWT アプリケーションが (クライアントによって) Java で実行されることを示しているようです。私は、GWT アプリケーションが最初に Java で作成され、次に GWT がそれをクライアントが実行する JavaScript ライブラリにコンパイルすることをほぼ確信しています。

于 2009-01-08T17:58:51.853 に答える
1

将来の保証は、特定のテクノロジーよりもアーキテクチャに関するものです。適切なアーキテクチャがあれば、プレゼンテーション テクノロジを簡単に交換できます。私は Silverlight/MVVM が好きですが、このパターンでは HTML5 もサポートするための計画が必要です。

于 2010-11-11T17:45:12.253 に答える
1

これは本当にりんごとオレンジの質問です。GWT を使用すると、すべてを Java で書くという純粋さを得ることができます。皮肉なことに、最終結果はウェブサイト以外の何にも感じられません。

Flex を使用すると、アプリケーションのように感じられるものを作成できます。そして、おそらく最も重要なことは、Flex では、機能的であろうとグラフィカルであろうと、プログラムでできないことは何もないということです。

特定のユーザーベース向けのアプリケーションを開発している場合、Flex は勝者です。大規模なソーシャル Web ベースを構築している場合は、GWT の方が間違いなく優れています。

于 2010-03-04T09:09:26.120 に答える
0

iPhoneとAndroidはまだフラッシュをサポートしていませんが、Googleが携帯電話を対象としたアプリケーションを作成していることにも注意してください。モバイルデバイスの画面は一般的なラップトップ/デスクトップよりもはるかに小さいため、彼らはそれを行っています。したがって、ターゲットアプリはより優れたユーザーエクスペリエンスを提供するため、フラッシュサポートの欠如は問題ではありません。

于 2009-03-12T03:48:54.863 に答える
0

私の会社は、約 1 年前に同じ決定に直面しました。GXT http://extjs.com/products/gxt/について聞いたことがありますか? 最終的にGXTを選びました。.NET 開発者として、.NET から GXT への移行は素晴らしいものでした。GXT/GWT を使用して全社的な管理プログラムを開発しました。欠点は、GXT が Flex に比べてはるかに小さなチームによって開発されていることと、コミュニティがそれほど大きくないことです。ただし、ブラウザ内での印象的なエクスペリエンスを提供します。見てみな。

于 2009-03-16T19:36:40.727 に答える
-7

GWT と Flex について質問されたことは承知していますが、最終決定について発言権がある場合は、AJAX と ASP.NET から移行するかどうかを真剣に検討する必要があります。Adobe、Microsoft、および Sun の言うことにもかかわらず、RIA (リッチ インターネット アプリケーション) は、限られた形式 (ビデオ プレーヤーなど) を除いて、まだゴールデンタイムのブラウザー エクスペリエンスの準備ができていません。

ネイティブ ブラウザ テクノロジでブラウザ用に作成された本格的なアプリケーションは、可能な限り最高のエクスペリエンスをユーザーに提供するだけでなく、それを維持するための開発リソースを最大限に活用できます。

ASP.NET はどこにも行きません。Java でも Flex でもありません。しかし、全体的なリーチ、可能な限り最高のユーザー エクスペリエンス、および保守性 (利用可能なプログラミング リソースがはるかに多いため) では、ネイティブ ブラウザー ベースのアプリケーションに勝るものはありません。

ASP.NET MVCは純粋に Web ベースであり、非常に Ajaxy です。あなたはそれをチェックするかもしれません。これは Ruby on Rails (Rails なし) に似ており、開発者 (ASP.NET を初めて使用する開発者でさえも) はかなり気に入っています。

于 2009-03-16T20:38:08.067 に答える