人々が(デスクトップアプリではなく)Webアプリケーションの移植性を称賛しているのをよく耳にします。実際、デスクトップアプリケーションを複数のオペレーティングシステムで利用できるようにすることは困難です。ただし、Webアプリケーションは、オペレーティングシステムではなくブラウザ間でのみ、移植性の問題を同様にうまく処理する必要があると思います。または、クロスブラウザWebアプリケーションを作成することは難しくありませんか?
6 に答える
もちろん、Webアプリケーションの作成にはブラウザー間の互換性の問題があることは間違いありません。ただし、デスクトップアプリケーション開発と同様に、これを処理するために使用できるフレームワークとライブラリがあります(JQuery、Google Web Toolkit、Yahoo UIなど)。
Webアプリケーションでよりシンプルであることで際立っていることの1つは、プラットフォーム間で一貫したルックアンドフィールを持っていることです。ブラウザはすべてCSSを使用し、一般的に一貫した外観のフォーム要素を持っています(またはプラットフォームに適切な要素を使用します)。デスクトップアプリケーションでは、クロスプラットフォームのネイティブルックアンドフィールを実現するのはより困難です。クロスプラットフォームGUIにJavaを使用することに対する大きな批判の1つは、プラットフォームのルックアンドフィールを使用しても、Javaが十分にネイティブではないということです。Qtのようなライブラリがこの点で優れているかどうかはわかりません。
Web アプリケーションの移植性には 2 つのレベルがあることに注意してください。
まず最も重要なのは、ブラウザの移植性です。ただし、アプリケーションをより多くの Web サーバーで実行する必要がある場合は、サーバー側の移植性もあります。ほとんどの場合、Linux と Windows のどちらを選択するかを決定します。しかし、他にも問題があります (たとえば、php バージョンの要件など)。
それはすべて、正確に何を構築しようとしているかによって異なります。QTツールキットのようないくつかのツールキットは、非常に簡単で高速なコンパイルとクロスプラットフォームの移植性を可能にします。ネットの文化はすべてマッシュアップや配布などに関係しているため、Webアプリは現在非常に流行しており、「イン」になっています。問題は、ほとんどのブラウザが高速化されているにもかかわらず、これが実際に想定されていなかったことです。Google Docsなどのシンクライアントや、実際には非常に便利ではないものの、デスクトップバージョンと直接競合することはできませんが、そうしようとはしません。それは主にあなたがそれらを何のために使うかにかかっています。
MVC パターンに従って慎重に設計された Web アプリケーションの場合、view-part (ページ) は既に移植されています。
ビジネス レイヤーとデータ レイヤーが適切に設計されており (スパゲッティ コードではなく)、混在していない場合は、それらを簡単に移植することもできます (ただし、これはデスクトップ アプリにも当てはまります)。
とにかく、Web アプリケーションは既に移植されています。多くのプラットフォームの多くのブラウザで使用できます。
はい、非常にインタラクティブでリッチなWebアプリを作成できることがよくありますが、残念ながら、使用するツールやブラウザーの非互換性などにより、開発プロセスははるかに複雑になります。しかし、Silverlightのようなものはそれをより簡単にしています。
デスクトップアプリケーションがはるかに適切な場所はまだたくさんあります。