Ajax、Flex、Silverlightは、よりインタラクティブなWebアプリケーションを作成するためのいくつかの方法です。新しいWebアプリケーションにどちらを使用するかを決定する際に、どのような要素を考慮しますか?
それらのいずれかが、より優れたクロスプラットフォームの互換性、パフォーマンス、開発者ツール、またはコミュニティサポートを提供しますか?
Ajax、Flex、Silverlightは、よりインタラクティブなWebアプリケーションを作成するためのいくつかの方法です。新しいWebアプリケーションにどちらを使用するかを決定する際に、どのような要素を考慮しますか?
それらのいずれかが、より優れたクロスプラットフォームの互換性、パフォーマンス、開発者ツール、またはコミュニティサポートを提供しますか?
各エリアの概要は次のとおりです(役立つリンクがたくさんあります)。
Ajaxは、JavaScriptを実行できる最新のブラウザーで動作します。Flexには、FlashまたはSWFを処理できるその他のものが必要ですが、一度インストールすると、互換性に関しては完全にフリーライドになります。Silverlightはトリッキーで誤解されているため、このMSをリッチウェブアプリケーションの軍拡競争に参入させる前に、ユーザーベースを慎重に検討してください。また、Silverlightはまだベータ版であるため、開発されるにつれて、将来、より広く使用され、インストールされる可能性があることにも注意してください。
パフォーマンスについて多くの発言をすることを恐れています。なぜなら、それはあなたがどれだけ最適化しようとしているのか、そしてあなたのアプリケーションの正確な性質に本当に依存しているからです。また、一部のテクノロジースタックは、非常に高速になることはありません。比較を行っている人もいますが、これも非常に多くの要因に依存します(テストしているブラウザーのバージョンでさえも!)。他の要因に基づいて選択し、開発を開始したら最適化するのがおそらく最善です。
3つのそれぞれに「ゴールデンスタンダード」の開発ツールがあります。
Ajaxには、残りのテクノロジーとアーキテクチャの選択に応じて、基本的に無制限のオプションがあります。あなたが実際に直面している大きな問題は、どのライブラリに依存するかということです。Googleは、WebToolkitのようなものでかなりよく採用された答えを表明しています。すぐに理解すると、それはXMLとJavaScriptだけですよね?
FlexはAdobe製であり、Flash開発の場合と同様に、自社製のツールを使用する方がよいでしょう。なぜなら、彼らは標準を作成しているからです。
Microsoftは、Silverlight1.0および2アプリケーションのUIを設計するためにMicrosoftExpressionBlendバージョン2.0および2.5をそれぞれ配置しました。Visual Studio 2008を使用して、Silverlightアプリケーションを開発およびデバッグできます(Wikipediaから)。
3つのオプションすべてについて、公式および非公式のコミュニティ、企業、およびオープンソースのサポートがあります。あなたがすでに統合されていて、あなたが最も家にいるように感じるものはどれでも非常に個人的なものですが、私はこのアドバイスを提供します:あなたが知っていることに固執します。MS開発者であり、ホームページとしてMSDNを使用している場合は、Silverlightのドキュメントとフォーラムが本当に役立つと思うでしょう。Flexにも非常によく似た話があります。フォーラムは非常に優れており、すでにFlashを使用している場合は、ドキュメントとユーザーコミュニティをすぐに利用できます。
一方、Ajaxは基本的に至る所にあります。これは、非常に多くの異なる方法を実装し、非常に多くの多様なライブラリを使用できるためです。各図書館には、訪問する独自のフォーラムや、回答を得るために潜んでいるメーリングリストを設けることができます。
繰り返しになりますが、3つすべてに、コミュニティを育成し、将来的に市場シェアを拡大する開発者に可能な限り最高のサポートを提供しようとする企業の巨人がいます。
私の意見では、選択は主に構築するアプリケーションの性質に基づいているはずです(たとえば、ベクターグラフィックを操作する必要がある場合、Ajaxはほとんど使用されていません)が、一般的なガイドラインは次のとおりです。
ユビキタス
プログラミング言語の選択
(主観的な理由で不規則ですが、Silverlightが最も多くの選択肢を提供することに注意してください。また、チーム内の開発者の既存の言語経験を考慮に入れる必要があることに注意してください。)
APIの安定性と互換性
Web/ブラウザの統合
開発者ツール
FlexやSilverlightなどのWebランタイムはすべて魅力的なものを提供しますが、2つの大きなコストが伴います。
ほぼユビキタスなFlashでさえ、すべてのWebブラウザーにインストールされているわけではないため、プラグインランタイムを使用することを選択することで、オーディエンスの一部を除外することになります。
対照的に、JavaScript(またはAjax)はほとんどすべてのブラウザーで使用可能であり、通常のWebページとの相互作用が優れていますが、より原始的で制限のある言語です。複雑なアニメーションに使用するのは難しい場合があり、より多くのプラットフォームでより多くのバージョンでアプリケーションをテストして、動作することを確認する必要があります。
クロスプラットフォームの互換性は以前の問題ではなかったので、問題は次のとおりです。除外するオーディエンスで失うよりも、プラグインライブラリの機能でより多くの機能を得ることができますか?
私自身の答えはこれまで常にJavaScript/Ajaxでしたが、新しいプロジェクトではそれを再評価します。
あなたの聴衆は何ですか:公開ウェブサイトまたはイントラネットビジネスアプリ?アプリの実行に必要なものをインストールする対象ユーザーが管理されている場合、採用率は関係ありません。ただし、Webスタートアップを成功させるために可能な限り多くのオーディエンスが必要な場合は、それが重要になる可能性があります。
あなたの目標は何ですか?最低のコストで何かを構築しますか?新しいテクノロジーを学びますか?
既存のスキルを活用できますか?.NETを既に知っている場合は、Silverlightが後押しされます。Flexの学習は面白くて便利かもしれませんが、.NETテクノロジーの経験よりも便利ですか?まったく新しいことを学ぶ機会費用を考慮することを忘れないでください。
現時点では明確なテクノロジーの勝者は見当たらず、長い間存在しない可能性が高いため、選択はかなり主観的な要因になります。
ここですでに述べたこと以外に、考慮すべきもう1つの大きなことは、UIがどうなるかということです。
ツリー、リスト、タブコントロールなど、多くの高度なUIコントロールを使用する場合は、次のことを考慮してください。
JavaScript / HTML-基本的なドロップダウンボックス、ボタン、テキストフィールド以外のものはネイティブでサポートされていません。ツリーコントロールやタブコントロールのようなものが必要な場合は、独自のライブラリを作成するか、サードパーティのライブラリを見つける必要があります。
AdobeActionScript-さまざまな高度なUIコントロールのネイティブサポート