Che cosa è più facile fare con le applicazioni Web rispetto alle applicazioni native della GUI?

5

Ho l'impressione che sempre più applicazioni con un'interfaccia utente utilizzino HTML + CSS + JavaScript lato client invece di un framework GUI nativo.

Ho ferito quali sono le forze trainanti più importanti per questo? o in altre parole, quali sono i framework nativi della GUI che mancano di essere competitivi? per esempio. è più facile fare un qualche tipo di cose con HTML + CSS + JavaScript rispetto ai framework nativi della GUI.

Se supponiamo che l'applicazione sia un'applicazione client-server in cui il client ha un'interfaccia utente grafica. Quali sono le cose più importanti che sono più facili da fare in HTML + CSS + JavaScript rispetto ai più comuni framework GUI nativi?

    
posta Jonas 09.07.2011 - 13:18
fonte

7 risposte

7

Il fattore più importante, a mia conoscenza, è la distribuzione.

Con le applicazioni desktop, devi:

  • assicurati che il software funzioni su tutti i client (con hardware diverso, versioni del sistema operativo, altre cose installate, ecc.)
  • in qualche modo trasferisce il software a ciascun client
  • installa il software su ogni client
  • risolvi ogni singolo cliente
  • ripeti tutto quanto sopra ogni volta che desideri distribuire una nuova versione
  • stai molto attento a non rompere la compatibilità con le versioni precedenti (ad esempio, versione 4.3 meglio essere in grado di caricare i file salvati della versione 4.2)

Le applicazioni Web hanno anche alcuni vantaggi per natura per cui le applicazioni desktop devono passare attraverso alcuni circuiti:

  • le impostazioni e i documenti di un utente saranno disponibili in qualsiasi parte del mondo, a condizione che ci sia l'accesso a Internet e un browser compatibile (il che è molto meno problematico rispetto a quando era 5 anni fa)
  • gli utenti possono semplicemente aggiungere pagine ai segnalibri all'interno dell'applicazione (se lo fai correttamente) e riprendere il loro lavoro in un secondo momento, esattamente dove si sono interrotti
  • l'accesso all'applicazione può essere controllato centralmente; gli utenti possono essere aggiunti e rimossi senza modificare nulla sul client; con le applicazioni desktop, l'applicazione necessiterebbe di un modo affidabile (e abbastanza a prova di hack) di disabilitarlo o rimuoverlo

In termini di sforzo di sviluppo, direi che scrivere applicazioni web richiede una mentalità leggermente diversa, ma non è intrinsecamente più facile o più difficile della programmazione desktop, dati gli strumenti abbastanza decenti.

    
risposta data 09.07.2011 - 15:31
fonte
4

Siamo passati ai siti web intranet perché non richiede praticamente nulla sulla workstation client. Possiamo mantenere due server (primario e di backup) anziché dozzine di workstation sparse per il Paese. E poiché i server sono su Internet, tutte le operazioni di manutenzione / riparazione / aggiornamento possono essere eseguite in remoto.

È anche bello che siamo indipendenti dalla piattaforma delle workstation; Windows, Linux, Mac, non ci interessa. Tutto da Windows 2000 ad Android "funziona".

    
risposta data 09.07.2011 - 13:51
fonte
2

Ho svolto principalmente lo sviluppo di GUI utilizzando Java Swing. Ma ho anche usato JavaScript e jQuery per le applicazioni web.

Le cose che sono state molto più semplici con le applicazioni web JavaScript sono:

Codice mobile

Questo rende la distribuzione molto più semplice. L'utente non deve installare nulla e l'applicazione silenziosamente può essere aggiornata alla prossima richiesta (se è disponibile una nuova versione). Ciò rende anche più facile lo sviluppo del server poiché non è più di una versione client utilizzata.

Client di rete integrato

Aiuta molto il fatto che i browser Web gestiscano tutte le connessioni di rete per te. Ad esempio, quando si desidera inviare messaggi al server, non si deve fare quasi nulla per gestire la connessione di rete. Confronta questo con l'utilizzo di Apache HTTP Client , specialmente quando si desidera utilizzare una connessione sicura tramite HTTPS. I nuovi Websocket renderanno questo ancora più potente.

Più facile per rendere il layout

Questo potrebbe essere un vantaggio solo contro Java Swing, ma forse non rispetto a WPF. Ma fare il layout in modo dichiarativo usando HTML + CSS aiuta molto rispetto a come in Java Swing dove tutto il layout è fatto usando il codice Java. Sarebbe come rendere il layout e l'uso dei componenti solo tramite JavaScript.

Più facile per la programmazione asincrona

Considera un modulo di iscrizione, in cui l'utente sceglie un "nome utente" e riempie gli altri campi con le informazioni. In JavaScript è molto facile controllare in modo asincrono (usando Ajax) se il nome utente è già in uso senza bloccare l'interfaccia utente, mentre l'utente può continuare a compilare gli altri campi - e se il nome utente è già in uso, notificarlo all'utente . In molti altri framework GUI nativi, devi attivare un nuovo thread per cose asincrone e rendere il codice meno leggibile come in JavaScript + Ajax.

    
risposta data 09.07.2011 - 20:02
fonte
1

È veramente multipiattaforma . L'app Web funzionerà non solo su PC e 2-3 sistemi operativi, ma in realtà su un'ampia gamma di dispositivi, come telefoni cellulari, TV interattive, console di gioco, tablet, ecc.

    
risposta data 09.07.2011 - 13:49
fonte
1

Penso che sia più facile ottenere una webapp e fare la maggior parte delle cose giuste, al contrario delle applicazioni native della GUI. E qui "più facile" è in termini di sforzo del programmatore. Le app native della GUI richiedono in genere molto trucco per ottenere bottoni nel posto giusto, campi di testo sufficientemente ampi, ecc. Ecc. Alla fine degli anni '80, all'inizio degli anni '90, le persone costruivano delle carriere nel fare tutte le robe cose della GUI.

Scambia il controllo assoluto in una GUI nativa per ottenere in modo rapido e semplice l'80% corretto in una GUI HTML / JavaScript / ecc.

    
risposta data 09.07.2011 - 15:23
fonte
1

Se si tratta di un'interfaccia utente pura + una gestione dei dati che può essere eseguita in remoto, l'applicazione basata sul Web sarebbe sufficiente. Il codice nativo entra in scena quando è necessario eseguire alcune operazioni costose o accedere ad alcune risorse sull'host (ad esempio) che si desidera scrivere un'applicazione come "wireShark" per monitorare l'interfaccia ethernet sul computer.

Ora vengono le combinazioni,

Pure basato sul web: è per applicazioni leggere, che non necessitano di molta elaborazione sul lato host. Pro: facile implementazione attraverso i server, Con: non può fare molto.

Codice nativo puro: Pro's: All powerful, Con's: deployment & mal di testa di manutenzione.

Il mix di plugin basati su Web + codice nativo: Pro: Questo è interessante è un mix di boath, un front-end web e amp; un backend di codice nativo. Sì, un po 'facile da implementare & è potente Contro: ha bisogno di conoscenza di entrambi i lati, il supporto del browser sarà un mal di testa per lo sviluppo di plug-in, ogni browser (IE, FFX, Chrome) è speciale in un modo.

    
risposta data 12.10.2011 - 06:51
fonte
0

Quello che si riduce a questo è:

HTML + CSS + JS = mezzo altamente malleabile per sviluppare un'interfaccia utente veramente indipendente dalla piattaforma *.

MA è ancora un thin client, se hai bisogno di un'esperienza fat-client allora hai bisogno di una GUI desktop completa **.

* Esclusa la compatibilità cross-browser

** Probabilmente le linee di distinzione stanno diventando più strette

    
risposta data 09.07.2011 - 13:41
fonte