web-dev-qa-db-ja.com

ネイティブGUIアプリケーションと比較して、Webアプリケーションを使用する方が簡単ですか?

ユーザーインターフェイスを備えたアプリケーションで、ネイティブのGUIフレームワークではなく、HTML + CSS + JavaScriptクライアント側を使用するアプリケーションが増えているように感じます。

このために最も重要な原動力は何ですか?言い換えれば、競争力を欠くネイティブGUIフレームワークは何ですか?例えばHTML + CSS + JavaScriptを使用すると、ネイティブのGUIフレームワークを使用するよりも、ある種のことを行うほうが簡単です。

アプリケーションが、クライアントがグラフィカルユーザーインターフェイスを備えたクライアントサーバーアプリケーションであると仮定した場合。 最も人気のあるネイティブGUIフレームワークよりもHTML + CSS + JavaScriptで実行する方が簡単な最も重要なことは何ですか?

6
Jonas

私の知る限り、最も重要な要素は展開です。

デスクトップアプリケーションでは、次のことを行う必要があります。

  • ソフトウェアがすべてのクライアントで実行されていることを確認します(ハードウェア、OSのバージョン、その他のものがインストールされているなど)。
  • どういうわけかソフトウェアを各クライアントに転送します
  • 各クライアントにソフトウェアをインストールする
  • 各クライアントを個別にトラブルシューティングする
  • 新しいバージョンを公開するたびに上記のすべてを繰り返します
  • 以前のバージョンとの互換性を壊さないように非常に注意してください(たとえば、バージョン4.3は、バージョン4.2に保存されたファイルをロードできるようになります)

また、Webアプリケーションにはいくつかの利点があります。そのため、デスクトップアプリケーションはかなりの難点を乗り越えなければなりません。

  • ユーザーの設定とドキュメントは、インターネットアクセスと互換性のあるブラウザーがあれば、世界中のどこからでも利用できます(これは、5年前よりもずっと問題が少なくなっています)。
  • ユーザーは、アプリケーション内のページにブックマークを付けて(正しく実行した場合)、後で中断したところから作業を再開できます
  • アプリケーションへのアクセスは一元的に制御できます。ユーザーはクライアントで何も変更せずに追加および削除できます。デスクトップアプリケーションの場合、アプリケーションはそれ自体を無効化または削除する信頼できる(そしてかなりハッキング防止の)方法が必要です。

開発努力の観点から言えば、Webアプリケーションの作成には少し異なる考え方が必要ですが、十分なツールがあれば、デスクトッププログラミングよりも本質的に簡単でも難しいものでもありません。

7
tdammers

クライアントワークステーションで実質的に何も必要としないため、イントラネットWebサイトに切り替えました。全国に散在する数十台のワークステーションではなく、2台のサーバー(プライマリおよびバックアップ)を維持できます。また、サーバーはインターネット上にあるため、すべてのメンテナンス/修理/アップグレードをリモートで行うことができます。

ワークステーションからプラットフォームに依存しないこともいいことです。 Windows、Linux、Macは関係ありません。 Windows 2000からAndroid "動作する"までのすべて。

4
Andy Canfield

主にJava Swingを使用したGUI開発を行ってきました。しかし、私はいくつかのJavaScriptとjQueryをWebアプリケーションにも使用しました。

JavaScript Webアプリケーションではるかに簡単になった点は次のとおりです。

モバイルコード

これにより、導入がはるかに簡単になります。ユーザーは何もインストールする必要がなく、アプリケーションsilentlyは次のリクエストでアップグレードします(新しいバージョンが利用可能な場合)。また、使用されるクライアントバージョンはほとんど1つに過ぎないため、サーバーの開発も容易になります。

組み込みネットワーククライアント

Webブラウザーがすべてのネットワーク接続を処理することは非常に役立ちます。たとえば、サーバーにメッセージを投稿する場合、ネットワーク接続を処理するためにほとんど何もする必要はありません。これを Apache HTTP Client を使用する場合と比較してください。特に、HTTPS経由の安全な接続を使用する場合に注意してください。新しいWebSocketはこれをさらに強力にします。

レイアウトが簡単

これはJava Swingに対してのみ利点となる可能性がありますが、WPFとは比較されない可能性があります。ただし、HTML + CSSを使用して宣言的にレイアウトを行うと、すべてのレイアウトがJavaコードを使用して行われるJava Swingの場合と比較して、非常に役立ちます。これは、JavaScriptを介してのみコンポーネントのレイアウトと使用を行うようなものです。

非同期プログラミングをより簡単に

ユーザーが「ユーザー名」を選択し、他のフィールドに情報を入力する登録フォームを考えてみます。 JavaScriptでは、ユーザー名がUIをブロックせずに既に使用されているかどうかを非同期で(Ajaxを使用して)確認するのは非常に簡単ですが、ユーザーは他のフィールドに入力し続けることができます。ユーザー名がすでに使用されている場合は、ユーザーに通知します。他の多くのネイティブGUIフレームワークでは、そのような非同期の事柄のために新しいスレッドを起動し、JavaScript + Ajaxのようにコードを読みにくくする必要があります。

2
Jonas

本当にクロスプラットフォームです。 Webアプリは、PCおよび2-3オペレーティングシステムだけでなく、実際には携帯電話、インタラクティブTV、ゲームコンソール、タブレットなどの幅広いデバイスで動作します。

1
vartec

ネイティブのGUIアプリケーションとは対照的に、Webアプリケーションを実行して正しいことのほとんどを実行する方が簡単だと思います。そして、ここで「簡単」とは、プログラマーの努力という意味です。ネイティブGUIアプリは通常、ボタンを適切な場所に配置するために多くの手間が必要です。テキストフィールドが十分広いなどです。80年代後半から90年代前半に、人々は手間のかかるすべてのGUIを正しく行うことにキャリアを築きました。

ネイティブGUIの絶対制御とトレードオフで、HTML/JavaScript/etc GUIで80%正確にすばやく簡単に取得できます。

1
Bruce Ediger

純粋なUI +リモートで実行できるデータ操作の場合は、Webベースのアプリケーションで十分です。コストのかかる操作を実行したり、ホスト上のリソースにアクセスしたりする必要がある場合(つまり、コンピューターのイーサネットインターフェイスを監視するための「wireShark」などのアプリケーションを作成する場合)、ネイティブコードが登場します。

今、組み合わせ、

純粋なWebベース:軽量アプリケーション用で、ホスト側で多くの処理を必要としません。長所:サーバーを介した簡単な導入、短所:多くはできません。

純粋なネイティブコード:プロの:すべての強力な、コンの:展開とメンテナンスの頭痛の種。

Webベース+ネイティブコードプラグインの組み合わせ:プロの:これは興味深いです、ボート、Webフロントエンド、およびネイティブコードバックエンドの組み合わせです。そう、展開が少し簡単で強力です。短所:両側の知識が必要です。ブラウザのサポートはプラグイン開発の頭痛の種になります。つまり、各ブラウザ(IE、FFX、Chrome)はある意味で特別です。

1
Arjun

要約すると、次のとおりです。

HTML + CSS + JS =真にプラットフォームに依存しない*リッチなUIを開発するための非常に柔軟な媒体。

[〜#〜] but [〜#〜]それでもシンクライアントです。ファットクライアントエクスペリエンスが必要な場合は、完全なデスクトップGUIが必要です**。

*ブラウザ間の互換性を除きます

**間違いなく区別の線はより狭くなっています

0
Darknight