私はしばしば、(デスクトップアプリケーションとは対照的に)Webアプリケーションを移植性について賞賛しています。実際、デスクトップアプリケーションを複数のオペレーティングシステムで使用することは困難です。しかし、私はWebアプリケーションが移植性の問題を同様に扱う必要があると思います。オペレーティングシステムではなくブラウザ間でのみです。それとも、クロスブラウザのWebアプリケーションを作成するのは難しくありませんか?Webアプリケーションはデスクトップアプリケーションより移植性が高いですか?
答えて
それはすべてあなたが構築しようとしている正確に何に依存します。 QTツールキットのようないくつかのツールキットは、非常に簡単で迅速なコンパイルとクロスプラットフォーム移植を可能にします。ネットの文化はマッシュアップ、流通などとはまったく関係がないため、Webアプリケーションは非常に流行りがあり、現時点では「イン」になっています。問題は、ブラウザが高速化してもほとんどのブラウザが作成されたとき、これが実際には想像されていなかったことです。 Google Docsのようなシンクライアントは、実際には非常に便利ですが、デスクトップ版ではかなり競争していますが、そうしようとしていません。主にあなたが使っているものにまで下がります。
もちろん、Webアプリケーションの作成にクロスブラウザの互換性の問題があることは間違いありません。しかし、デスクトップアプリケーションの開発と同様に、これに対処するために使用できるフレームワークやライブラリ(JQuery、Google Web Toolkit、Yahoo UIなど)もあります。
ウェブアプリケーションの方が簡単であることの1つは、プラットフォーム間で一貫したルックアンドフィールを持つことです。ブラウザはすべてCSSを使用し、一貫した見た目のフォーム要素を持っています(またはプラットフォームに適切な要素を使用します)。デスクトップアプリケーションでは、クロスプラットフォームのネイティブのルックアンドフィールを達成することがより困難です。クロスプラットフォームのGUIにJavaを使用することに対する大きな批判の1つは、プラットフォームのルック・アンド・フィールを使用しても十分にネイティブではないということです。 Qtのようなライブラリがこの点で優れているかどうかはわかりません。
ウェブアプリケーションの場合、2つのレベルの移植性があることに留意してください。
最初に最も重要なのは、ブラウザの移植性です。しかし、アプリケーションをより多くのWebサーバー上で実行する必要がある場合は、サーバー側の移植性もあります。ほとんどの場合、あなたはLinux対Windowsを決める。しかし、他の問題があります(例えばPHPのバージョン要件など)。
+1サーバー側のバージョン管理とアーキテクチャ上の注意点です。 * nixの安価なホスティングの可能性はPHPを偉大なものにしましたが、ASP.NETは依然として専用サーバーを必要としていました。 –
WebアプリケーションがMVCパターンに従って慎重に設計されている場合、ビュー部分(ページ)は既に移植されています。
ビジネス層とデータ層がよくデザインされていて(スパゲッティコードではなく)混在していない場合は、簡単に移植することもできます(デスクトップアプリでも同様です)。
とにかく、Webアプリケーションはすでに移植されています。多くのプラットフォームの多くのブラウザで使用できます。
"Webアプリケーションは既に移植されています"私は最近、*とても*シンプルなHTML + CSSページを作成しましたが、FirefoxとInternet Explorerではすでに異なって見えました。私はそれを両方のブラウザで動作させるためにパッチを使用しなければなりませんでした。 –
デスクトップアプリケーションは、XPとVistaのコントロールが異なるように見えるでしょう。それは恐らく無視されるかもしれない少し厄介です。 – User
はい、非常に高度にインタラクティブでリッチなWebアプリケーションを作成できますが、残念なことに、開発プロセスは使用されるツールやブラウザの非互換性などによりずっと複雑になります。しかし、Silverlightのようなものはそれをより簡単にしています。
まだデスクトップアプリケーションがはるかに適切な場所がたくさんあります。
これは当てはまります。しかし、あなたはIE6のかなりのウェブサイトショーが完全な悪夢であることを確かめることを認めなければなりません:P –
しかし、このような欠陥は簡単に修正することができます。 – rahul
@phoenix - 「時間がない」 - あなたは深刻ですか? –