リッチWebアプリケーションの世界に慣れるために努力しています。ウィキペディアには利用可能なテクノロジーの比較表がいくつかありますが、リッチなアプリケーション開発のオプションが何であるかはまだわかりません。
以下で収集した情報を確認し、記入していただけませんか?各オプションの主な長所と短所は何ですか?大きくて非常にリッチなWebアプリケーションに最適なものはどれですか?
オプション1:ASP.NET/ASP.NET MVC
ベンダー:マイクロソフト
環境:Visual Studio
言語:C#
出力:HTML + JavaScript + AJAX
例:www.stackoverflow.com
オプション2:Silverlight
ベンダー:マイクロソフト
環境:Visual Studio
言語:C#
出力:.NET実行可能ファイル?
例:?
オプション3:Google Web Toolkit
ベンダー:Google
環境:Eclipse
言語:Java
出力:HTML + JavaScript + AJAX
例: http://www.projectkaiser.com:8080/pk/
オプション4:フレックス
ベンダー:Adobe
環境:?
言語:?
出力:フラッシュ(.swfファイル)
例: http://listen.grooveshark.com/
オプション5:Adobe AIR
ベンダー:Adobe
環境:?
言語:?
出力:AIR
例: http://www.colabolo.com/en/download.html
オプション5:Ruby on Rails
ベンダー:Railsコアチーム
環境:?
言語:Ruby
出力:HTML + JavaScript + AJAX?
例:?
オプション6:Javaアプレット
ベンダー:日
環境:Eclipse
言語:Java
出力:Javaアプレット
オプション7:OpenLeszlo
ベンダー:?
環境:?
言語:?
出力:?
例:?
オプション8:Vexi
ベンダー:Vexiコアチーム
環境:Eclipse
言語:XML + JavaScript
出力:Java
例: http://vexi.sourceforge.net/ のデモ
オプション9:Django
ベンダー:Djangoコアチーム
環境:?
言語:Python
出力:HTML + JavaScript + AJAX
例:?
オプション10:XUL
???
あなたはそれをすべて混ぜました。ここには2つの層があります。アプリを「リッチ」にするユーザーインターフェイスとサーバー側コードです。
Silverlight
。NETプラットフォームで最適に動作します。 Java、Ruby on Rails、PHPなど)と結合することは考えていません。
ツールは商用です。
Flash/Flex(Flashプラットフォーム)
私のお気に入りで、リストから最も成熟したものだと思います(Flex/Java開発者として働いているときの私は主観的な意見です)。シンプルなHttpサービスを使用するすべてのサーバー側テクノロジーで動作します。AMFサービス(効率的なバイナリプロトコル)によるWebServiceによる最適な統合です。統合はさまざまなレベルにあります。基本的なリモート呼び出し(90%のプロジェクトにはこれで十分です)は、すべてのプラットフォーム(.NET、Java EE、PHP、RoR)で使用できます)ですが、高レベルの対話(データ同期、 Java EEのデータプッシュ、クライアントサーバーイベント、またはクライアントサーバー依存性注入)EE:Adobe Livecycle Data Services(商用)またはGraniteDSおよびTide Framework(JBoss Seamで動作)。
Flex SDK(コンパイラとlib)は無料ですが、FlexBuilderは商用です。
OpenLaszlo
2つのオプションがあります-OpenLaszloサーバーでフラッシュまたはhtml + javascriptを実行するライブ「コンパイル」、またはフラッシュしてhttpサーバーにアップロードする開発時間コンパイル。ほとんどのサーバー側テクノロジーと統合します。アイデアはフレックスに似ていますが、最初にありました。
SDKは無料で、IDEはかなり貧弱です。
JavaFX/Javaアプレット
これはかなり実験的なグラフィカルツールであり、IDEは貧弱です。アイデアは宣言的に(ただしXMLではなく)コードスイングインターフェイスをアプレットとして実行することです。idはそうではないと思います生産状況があります。
Flash/FlexとSilverlightは、マルチメディア(ビデオ/オーディオストリーミング、Webカメラ、マイクの使用など)を備えたリッチなユーザーエクスペリエンスインターフェイスを作成するための最も高度なツールを提供します。
Adobe AIR
AIRは、Adobe Integrated Runtimeの略で、デスクトップでFlexまたはHTML + Javascriptアプリケーションを実行できるようにします(Java仮想マシン+ WebStartと同様に機能します)。リモートとのFlexアプリケーション統合用システムは上記と同じです。AIRアプリケーションはクライアントマシンにインストールされ、他のアプリと同じように実行されます。ファイルシステムにもアクセスできます。AIRはWindows、Mac、Linux/BSDでも実行されます(私はそう思います)。
Java
それは:Java EE 5(現在Java EE 6))、またはアプリケーションコンテナのない単純なWebアプリケーションです。 Google Web Toolkit、JBoss RichFaces、IceFacesなどのリッチUIといくつかの商用のもの。
統合フレームワークを備えたFlexインターフェイスとうまく統合します-Adobe LiveCycle ...(商用)、BlazeDS(シンプル、無料)、GraniteDS + Tide + Gravity(高度、無料)、WebOrbなど3)、JBoss Seamおよびその他...
。NET
私はここの専門家ではありません。 JSリッチインターフェースの機会を提供します。 SilverlightおよびFlex(WebOrb、 。NETおよびAMF )と統合します。
そこには他にもたくさんの技術があります。それらのいくつかは独自のリッチUIを持っていますが、いくつかは持っていません。それらのほとんどはFlexと統合します
[〜#〜] php [〜#〜]
Pradoアプリケーションフレームワークを備えたリッチUI。より単純なPHP Frameworks(ask google))があります。AmfPHP、WebOrb、SabreAMFとのFlex統合
Ruby on Rails
言語+サーバー+アプリフレームワーク。 Flexと統合できます
Python
いくつかのアプリフレームワークがあります:Django、Pylons ... Flexと統合できます
スカラ+リフト
リフトはscalaで書かれたアプリフレームワークです。 Javaサーバーで実行されます。
Coldfusion
アドビのテクノロジー。言語はCFMLです。 Adobe Coldfusionサーバーで実行されますが、tereはJBossの無料のRailoです。 Flexと統合します。
私の5セント
ASP.NET-忘れてください。過去のミレニアムテクノロジー。
Silverlightプロ-非常に強力な商用ライブラリを利用できます。 「すごい」効果が必要な場合、それはあなたの選択ですが、3Dパーティーソフトウェアを購入するためにいくらかのお金を費やす必要があります。
例えば。見る
sirius2。 intersoftpt。 com
デモ。テレリックcom/silverlight/salesdashboard /
Silverlightの短所:ブラウザーにはsilverlightプラグインがインストールされている必要があります。このプラグインは、新しいsilverlightバージョンがリリースされてソフトウェアで使用されるたびにアップグレードする必要があります。このプラグインのアップグレードに問題がある場合があります。また、このプラグインが* nuxオペレーティングシステムで完全に利用可能かどうかも不明です。そのため、Windowsを使用する可能性があります。
GWTプロ:プラグインは必要ありません。JavaおよびJava is純粋なjavascriptにコンパイル。効果的なアプリケーションを構築するための私のお気に入りのツール例 http://www.projectkaiser.com
GWTの短所:貧弱なGUIライブラリ(商用ライブラリについて話しても)
Javaアプレット。あなたはピボットを見ることができます。 Apache。組織
したがって、「大きくて非常にリッチなWebアプリケーションに最適な選択肢はどれですか」に対する私の答えはSilverlightです。ただし、短所には注意してください。
どのテクノロジーを使用するかも調べています。そこにある1つを見てみたいと思います。
Appcelerator Titanium -HTML5/CSS/JSなどのWebテクノロジーを使用してデスクトップおよびモバイルプラットフォーム用に開発でき、PHP/Pythonでもデスクトッププラットフォーム用に開発できます
まだそれも評価しています
また、RIA(AIR、Silverlight、Titanium)とネイティブWebアプリケーション(PHP、ASP.NET MVC)を比較します。 RIAはファイルシステムと対話できるという意味で強力に動作し、ローカルに存在するため一般に高速です。 Webアプリケーションはファイルシステムと対話できず、一般的に低速で、より多くの遅延が発生します。しかし、ウェブ上に存在するので、どこからでもアクセスできます。
私は実際にはHTML5/CSS3/JS/PHP/PythonのようなオープンWebテクノロジーで解決したかったのですが、.NETプラットフォームを真剣に検討しています。 C#/ F#/ WPF/Entity Framework/SilverlightとWindows 7の機能オーバーレイアイコン、進行状況バー、ジャンプリストには多くの可能性が示されています。また、RIAであっても、Webアプリケーションとデスクトップアプリケーションの両方で1つのフレームワークといくつかの言語を使用できることは大きな魅力です。私はまた、MSが品質などを推奨する多くのビデオのabtパターンと実践を見てきましたが、最初は学ぶのは難しいかもしれませんが、それだけの価値があると思います。不利な点の多くは、私でさえその閉鎖的な情報源だと言うでしょう。ツールは一般的に高価です
クライアント上でリッチなインタラクティブ機能を備えたWebアプリケーションを構築することについて話している場合、3つの主流オプションがあります。
私のお金として、HTMLは最も興味深いプラットフォームです。最も活動が多く、ブラウザ間で急速に標準化されています。 HTML5では、ローカルストレージやバックグラウンド処理などの機能のサポートが追加されています。 Google Chromeに3Dグラフィックライブラリ(WebGL)が追加されました-Firefoxがまもなく登場します。
私があなたなら、HTML(5)スタック-HTML、CSS、CSS3、HTML5、jQueryの学習に重点を置き、backbone.js、jQuery mobile、JQTouch、angular.jsなどのオープンソースフレームワークを見ていきます。 。私はGitHubでこれらのプロジェクトの多くをフォローしています-ここでより大きなリストを見ることができます:
https://github.com/mckoss/following
リッチWebアプリは、それをサポートするために、何らかのサーバー側インフラストラクチャを必要とする可能性があります。 Ruby on Railsはおそらく最も人気のあるフレームワークであり、非常に簡単に始めることができます。Herokuは非常に簡単かつスケーラブルな方法でアプリをホストできます。
Javaコードがすでにある場合(私はJavaファンではありません))-GoogleのGWTは、純粋なJavaであり、クライアント側のビットをJavaScriptにクロスコンパイルします。
私は個人的にPythonが好きです-Google App Engineは、(Djangoフレームワークを使用して) App Engineは、ここでは重要なアプリに最適なオプションです。
そして、私が取り組んでいる新しい何かを提案する可能性がある場合、Pageforest.comは純粋なJavaScript Webアプリプラットフォームを提供します。すべてのコードをクライアント側JavaScriptで記述し、AJAX/RESTを使用してユーザーにサインインし、Pageforestサーバーにデータを保存します(このサービスは開発者向けにオープンで無料です)。
幸運を!
Sencha Ext JSは、ブラウザーでデスクトップのようなエクスペリエンスを提供するための強力なフロントエンドライブラリです。長所:一貫した外観、強力なアーキテクチャ(プロトタイプベースのOOP)、多くのウィジェット。短所:ほとんどの場合、無料ではありません。
モジュラーアプローチ(何百ものモデルを持つ複雑なデータが豊富なWebアプリに推奨されます)に固執することを選択し、バックエンドでRuby=)を使用する場合は、Netzkeを確認してください:- https://github.com/nomadcoder/netzke-core 。
Web開発は年々複雑になっていると思います(複数のプラットフォームとデバイス、より高性能なデバイス)。これが発生すると、ソフトウェア層はますます定義され、より複雑になってきています。これらのレイヤー間の統合と独立は、長期的に見ている場合に最も重要になります。ソリューションを1つのテクノロジだけで構築することに依存することはできなくなりました。そこで、Web 2、3などのオープンシステム/標準を見てみます。
私はピーター・グウィアズダに完全に同意するので、彼がそれらをすべてカバーしたので、そのセクションについてこれ以上何も言えません。追加したいのは、他のいくつかの仕様です。まず、それを使って何を達成したいかを頭の中で明確にします。開発したいアプリは何ですか?また、そのアプリを実行したいOSを検索します。次に、アプリを開発する言語/フレームワークのタイプを決定します。ターゲットをクリアし、(私の意見では需要に基づいて)どのフレームワークを開発する方が良いかを分析してから、学びます。あなたはそれらを一度にすべて学ぶことはできません!すべての言語/プラットフォームには長所と短所があるので、自分に合ったものを決定してください!
python人のオプション:
Pyjamas(Google Web Toolkit)-python in JSにコンパイル済み
+ any pythonバックエンド(Django、Web.py ..)。
すべての通信はJSON-RPCを経由します