ユーザーインターフェイスを備えたアプリケーションで、ネイティブのGUIフレームワークではなく、HTML + CSS + JavaScriptクライアント側を使用するアプリケーションが増えているように感じます。
このために最も重要な原動力は何ですか?言い換えれば、競争力を欠くネイティブGUIフレームワークは何ですか?例えばHTML + CSS + JavaScriptを使用すると、ネイティブのGUIフレームワークを使用するよりも、ある種のことを行うほうが簡単です。
アプリケーションが、クライアントがグラフィカルユーザーインターフェイスを備えたクライアントサーバーアプリケーションであると仮定した場合。 最も人気のあるネイティブGUIフレームワークよりもHTML + CSS + JavaScriptで実行する方が簡単な最も重要なことは何ですか?
私の知る限り、最も重要な要素は展開です。
デスクトップアプリケーションでは、次のことを行う必要があります。
また、Webアプリケーションにはいくつかの利点があります。そのため、デスクトップアプリケーションはかなりの難点を乗り越えなければなりません。
開発努力の観点から言えば、Webアプリケーションの作成には少し異なる考え方が必要ですが、十分なツールがあれば、デスクトッププログラミングよりも本質的に簡単でも難しいものでもありません。
クライアントワークステーションで実質的に何も必要としないため、イントラネットWebサイトに切り替えました。全国に散在する数十台のワークステーションではなく、2台のサーバー(プライマリおよびバックアップ)を維持できます。また、サーバーはインターネット上にあるため、すべてのメンテナンス/修理/アップグレードをリモートで行うことができます。
ワークステーションからプラットフォームに依存しないこともいいことです。 Windows、Linux、Macは関係ありません。 Windows 2000からAndroid "動作する"までのすべて。
主に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のようにコードを読みにくくする必要があります。
本当にクロスプラットフォームです。 Webアプリは、PCおよび2-3オペレーティングシステムだけでなく、実際には携帯電話、インタラクティブTV、ゲームコンソール、タブレットなどの幅広いデバイスで動作します。
ネイティブのGUIアプリケーションとは対照的に、Webアプリケーションを実行して正しいことのほとんどを実行する方が簡単だと思います。そして、ここで「簡単」とは、プログラマーの努力という意味です。ネイティブGUIアプリは通常、ボタンを適切な場所に配置するために多くの手間が必要です。テキストフィールドが十分広いなどです。80年代後半から90年代前半に、人々は手間のかかるすべてのGUIを正しく行うことにキャリアを築きました。
ネイティブGUIの絶対制御とトレードオフで、HTML/JavaScript/etc GUIで80%正確にすばやく簡単に取得できます。
純粋なUI +リモートで実行できるデータ操作の場合は、Webベースのアプリケーションで十分です。コストのかかる操作を実行したり、ホスト上のリソースにアクセスしたりする必要がある場合(つまり、コンピューターのイーサネットインターフェイスを監視するための「wireShark」などのアプリケーションを作成する場合)、ネイティブコードが登場します。
今、組み合わせ、
純粋なWebベース:軽量アプリケーション用で、ホスト側で多くの処理を必要としません。長所:サーバーを介した簡単な導入、短所:多くはできません。
純粋なネイティブコード:プロの:すべての強力な、コンの:展開とメンテナンスの頭痛の種。
Webベース+ネイティブコードプラグインの組み合わせ:プロの:これは興味深いです、ボート、Webフロントエンド、およびネイティブコードバックエンドの組み合わせです。そう、展開が少し簡単で強力です。短所:両側の知識が必要です。ブラウザのサポートはプラグイン開発の頭痛の種になります。つまり、各ブラウザ(IE、FFX、Chrome)はある意味で特別です。
要約すると、次のとおりです。
HTML + CSS + JS =真にプラットフォームに依存しない*リッチなUIを開発するための非常に柔軟な媒体。
[〜#〜] but [〜#〜]それでもシンクライアントです。ファットクライアントエクスペリエンスが必要な場合は、完全なデスクトップGUIが必要です**。
*ブラウザ間の互換性を除きます
**間違いなく区別の線はより狭くなっています