Quesiti su JAVA

di il
39 risposte

Quesiti su JAVA

Buonasera.
Mi trovo nella necessita' di valutare la migrazione di uno SPLENDIDO sistema informatico da una vetusta piattaforma a Java.
Il motivo e' il solito: problemi a reperire persone in grado di interagire con la vetusta piattaforma.
Siccome non so niente di Java, se non che e' il linguaggio piu' diffuso e dovrei dare un consiglio al mio amico imprenditore che dovrebbe imbarcarsi nell'impresa, avrei delle questioni preliminari da risolvere per verificare se davvero Java puo' rappresentare una strada da percorrere.

Eccole qua, scusate se qualcuna di queste puo' essere un nonsense

Con Java
Posso creare un'applicazione Client/server nel senso che la parte di presentazione grafica e' sul client Windows e la parte elaborativa sul server Linux
Sotto questa ipotesi
Posso intercettare la pressione di un tasto funzione su un campo
Posso cambiare i parametri (colore, aspetto) di un campo in fase di esecuzione
Posso eseguire un comando sul client lanciandolo dal server Linux
Posso avere un "thin client", qualcosa che in locale sulla macchina Windows abbia solo file di icone, pupazzetti, pannelli e cose del genere
Posso trasferire programmaticamente un file dal server al client e viceversa
Detto in termini brutali: vorrei replicare un'architettura dove ci sono un server ed un terminale abbastanza intelligente da gestire mouse e finestre grafiche (esistono gia' delle cose cosi' per sistemi vetusti).

A margine
E' vero che Java non gestisce le "strutture", ho capito bene ?
E se cosi' fosse, come si fa a gestire una struttura di tipo RECORD ?

Grazie per l'attenzione.

39 Risposte

  • Re: Quesiti su JAVA

    Il mio amico non e' un esperto, ma il capo dell'azienda che utilizza il vetusto sistema.

    4) si, ma forse quello che ti serve NON E' un client Java, ma un client Web (cioe' basato sul Browser Internet) che ha come PRO di essere ""quasi"" lo stesso per QUALUNQUE tipo di PC ma anche, a costo (QUASI) ZERO, di tablet e smartphone


    No, escludo assolutamente il client Web, per la mia "filosofia" e' inadatto ad un data entry massimo in termini di reattivita'.
    Il mio amico ha gia' testato soluzioni di quel tipo, ma si e' mostrata inadatta.
    Vi faccio un esempio: avete mai visto le videata dei terminali Blumberg riempite con centinaia di numerini che cambiano continuamente di colore e di valore ?
    https://ichi.pro/it/non-puoi-uccidere-il-terminale-bloomberg-ma-se-volessi-provare-ecco-come-106683573658774
    Ecco, servirebbe un client che abbia quel tipo di prestazione.
    A proposito, il client che utilizzano negli uffici postali, sapete se e' un browser o meno ?

    Per cortesia vi chiederei di esplicitare meglio le risposte 3 5 6.

    Probabilmente il tuo RECORD e' un record di database, alla COBOL, mentre nei linguaggi attuali non esiste piu' una relazione tra database e strutture dati del linguaggio.

    Credo sarebbe piu' comodo che esistesse o se si potesse comunque ottenere in qualche modo.


    Grazie.
  • Re: Quesiti su JAVA

    Strano, non vedo piu' il post di risposta al mio primo intervento.
    Avro' fatto qualche click errato ?
  • Re: Quesiti su JAVA

    Ciao,
    l'utente che aveva risposto ha cancellato il proprio messaggio....misteri della psiche
  • Re: Quesiti su JAVA

    HATFIELD ha scritto:


    Con Java
    Posso creare un'applicazione Client/server nel senso che la parte di presentazione grafica e' sul client Windows e la parte elaborativa sul server Linux
    Certo, possibilissimo. Ma attenzione, non c'è un solo modo per farlo, si possono usare vari tipi di architetture. E alla fin fine (considerando sempre una applicazione "server" sviluppata in Java), quello che varia è COSA è il "client" (un browser? una applicazione "desktop"? una "app" su dispositivo mobile?) e in che modo/forma vengono scambiati i dati tra client e server.

    HATFIELD ha scritto:


    Posso intercettare la pressione di un tasto funzione su un campo
    Posso cambiare i parametri (colore, aspetto) di un campo in fase di esecuzione
    Posso eseguire un comando sul client lanciandolo dal server Linux
    Posso avere un "thin client", qualcosa che in locale sulla macchina Windows abbia solo file di icone, pupazzetti, pannelli e cose del genere
    Tutto possibile ma ripeto, va chiarita prima la architettura. Un conto è fare click su un campo di un form HTML in un browser ... tutto un altro conto è fare un click su una applicazione "desktop" es. in Swing o JavaFX (o pure fatta in un altro linguaggio non Java).

    HATFIELD ha scritto:


    Posso trasferire programmaticamente un file dal server al client e viceversa
    Anche questo sì, facilmente o più difficilmente in base alla architettura scelta (e di nuovo: COSA è il client).

    HATFIELD ha scritto:


    A margine
    E' vero che Java non gestisce le "strutture", ho capito bene ?
    E se cosi' fosse, come si fa a gestire una struttura di tipo RECORD ?
    Java può gestire strutture dati di praticamente qualunque tipo, non è quello il problema. La questione è che devi precisare cosa intendi tu per "RECORD". Si può intendere il concetto in senso generale (record=un insieme di informazioni correlate tra di loro) o qualcosa di più concreto e specifico in un formato (di file o di protocollo) ben preciso.

    Anche in un banale file di testo .txt con campi separati da ";" tipo:

    Mario;Rossi;1965
    Roberto;Bianchi;1987

    ognuno di questi (ciascuna riga naturalmente) è un "record" di informazione.

    Quindi se non precisi a cosa ti riferisci, la domanda o affermazione ha praticamente poco/nessun senso ...
  • Re: Quesiti su JAVA

    Ciao Hatfield

    Purtroppo la risposta al tuo quesito non è facile, anche perchè se non si conoscono le caratteristiche di un software è difficile stabilire bene i requisiti

    Detto questo, ti parlo con l'esperienza di migrazione da un sistema vetusto ad uno un po' più moderno.
    Nel caso specifico, il programma era scritto in Cobol, migrato a Java e recentemente a .NET


    Personalmente credo che lato client la scelta migliore sia un'applicazione nativa al posto del browser. Il motivo è presto detto: nelle tue specifiche dici che i client sono tutti PC windows (quindi niente tablet/smartphone) e, soprattutto, che il client deve poter eseguire dei comandi a richiesta. Quest'ultimo punto è cruciale: le pagine web girano nella sandbox del browser e quindi non possono accedere alle risorse dei PC (file, eseguibili, ...). Ci si sta muovendo per consentirlo, ma ancora siamo molto lontani da una soluzione definitiva.


    Prima di parlare di linguaggi di programmazione/struttura, sarebbe bene capire esattamente il tipo di performance che ci si aspetta... perchè spesso si parla senza cognizione di causa. Il problema è sempre capire quanto tempo possa passare fra il cambiamento di un valore sulla base dati e l'evidenza sul client di questo cambiamento.

    Ho visto spesso gente affermare "deve essere immediato" e poi implementare una soluzione di tipo "long polling" fra client e server, così il dato cambiava e sul client veniva aggiornato dopo mezzo secondo. Alla richiesta di delucidazioni hanno risposto "beh, mezzo secondo è pressochè istantaneo"... Ma per me che sono informatico, quando si parla di perfromance alte, si parla di centesimi se non addirittura millesimi di secondo!

    Se le tue prestazioni possono tranquillamente stare nell'arco di un paio di secondi, allora andrei su un'architettura abbastanza standard in questo periodo storico:
    • Backend: espone tutti i servizi con delle api web. Ci sono una marea di librerie per tanti linguaggi, molte anche già pronte per gestire la sicurezza (autenticare gli utenti e verificare chi possa/non possa eseguire le chiamate)
    • Frontend: applicazione nativa che, con librerie standard, si passa i dati

    Se invece hai bisogno di performance avanzate, non saprei cosa consigliarti poichè ho usato i Socket decine di anni fa per togliere tutta l'infrastruttura Web (incideva di circa 20 ms a chiamata!) ma al giorno d'oggi c'è caso ci siano soluzioni migliori e più performanti


    Veniamo ai linguaggi... Diciamo che qui dipende anche le conoscenze che avete.
    Dovessi scegliere io, farei tutto con .NET:
    • backend: se deve girare anche su Linux, puoi benissimo usare .NET core
    • frontend: essendo tutti PC windows, secondo me è più pratico rispetto a Java. In molti casi è anche più performante a livello di esecuzione
    Se però preferite usare Java perchè qualcuno già lo conosce e/o è più facile trovare risorse, va benissimo anche quello!
    Per assurdo puoi anche fare il mix: un linguaggio per il backend e uno per il frontend.

    Personalmente cerco di evitarlo perchè si crea la necessità di conoscere più linguaggi... però poi ognuno fa quel che vuole!



    RECORD

    Metto una nota a parte sul quesito legato ai record.
    In realtà cerchi di stabilire una relazione fra la base dati attuale, probabilmente fatta di file e record, con una base dati completamente diversa (DB relazionale o documentale, non so).

    Tieni presente che viene quasi spontaneo paragonare i file alle tabelle e i record alle tuple (righe).
    In realtà la similitudine finisce lì!

    A quel punto cambia proprio il modo di gestire la base dati (lock compresi), per cui se migri ad un nuovo linguaggio hai due opzioni:
    • Abbandoni i vantaggi della nuova struttura: siccome i nuovi linguaggi nascono per le nuove strutture, abbandoni i vantaggi che questi ti offrono e resti a ragionare di file e record. Devi però farti tutto a manina, poichè non c'è un supporto nativo come c'era nei vecchi linguaggi. Al massimo puoi usare delle DLL fornite da chi gestisce la vecchia base dati, però cambia poco: è un qualcosa che va fuori dallo standard e quindi te lo fai a manina
    • Inizi a ragionare secondo le logiche della nuova piattaforma. Hai una curva di apprendimento più alta (oltre ai linguaggi devi imparare i database), però i benefici sul lungo periodo saranno maggiori: sfrutti le potenzialità dei DB e oltretutto usi le features dei linguaggi moderi per queste strutture dati. Pensa che ci sono tanti ORM che ti consentono di scrivere codice che lavora su strutture dati generiche e loro fanno poi le query reali sul DB... ovviamente mettono uno strato in più che devi evitare se hai davvero bisogno di performance da urlo
  • Re: Quesiti su JAVA

    Grazie della risposa esaustiva.
    Ti do altri elementi
    Tempi di risposta: Qualche frazione di secondo, perche' adesso se il sistema ha un lag di un paio di secondi gia' si allarmano.
    Client: non ho nessuna preclusione, ho detto Java perche' mi sembra il piu' diffuso, ma se c'e' una soluzione migliore ben venga.
    Record: non mi riferisco strettamente al record del supporto fisico, ma all'equivalente di quella che e' una struttura in C; ad esempio puo' essere utilie trattare una data come struttura formata da anno,mese,giorno.... e cose del genere.
    tutto un altro conto è fare un click su una applicazione "desktop" es. in Swing o JavaFX (o pure fatta in un altro linguaggio non Java).
    Ecco, e' quello a cui mi riferisco: la "responsivita'" di un client specifico e' migliore di un browser
    Spero che la domanda non sia troppo da incompetente: con Swing e JavaFx, si possono gestire videate con 150-200 campi ?
    Le applicazioni (soprattutto WEB) che vedo di solito occupano tutta la finestra video per presentare pochi campi.
    Certo, possibilissimo. Ma attenzione, non c'è un solo modo per farlo, si possono usare vari tipi di architetture.
    Scusa, ma gia' decidendo il linguaggio, non si fa una scelta implicita sull'architettura ?
    Personalmente credo che lato client la scelta migliore sia un'applicazione nativa al posto del browser.
    Sono assolutamente d'accordo, secondo me un browser come interfaccia per una applicazione che non sia internet-centrica e' solo deleterio.
    Ho visto spesso gente affermare "deve essere immediato" e poi implementare una soluzione di tipo "long polling" fra client e server, così il dato cambiava e sul client veniva aggiornato dopo mezzo secondo. Alla richiesta di delucidazioni hanno risposto "beh, mezzo secondo è pressochè istantaneo"... Ma per me che sono informatico, quando si parla di perfromance alte, si parla di centesimi se non addirittura millesimi di secondo!
    Il mio amico c'e' gia' passato in un tentativo precedente, per cui vorrei evitargli un altro trauma.
    Una curiosita': ma poi questo degrado del tempo di risposta e' stato accettato ?
    Tra l'altro mi chiedo quale sovraccarico subisce il server in una situazione con 300 utenti connessi.
    Se le tue prestazioni possono tranquillamente stare nell'arco di un paio di secondi,
    No.
    Gli operatori sono abituati ad essere talmente veloci che anticiperebbero il client nell'input dei dati.
    Passare da un ritardo di 1/10 di secondo a 2 credo possa essere un trauma (almeno per me), ma poi puo' darsi che si possano rassegnare messi davanti al fatto compiuto.
    Se invece hai bisogno di performance avanzate, non saprei cosa consigliarti poichè ho usato i Socket decine di anni fa per togliere tutta l'infrastruttura Web (incideva di circa 20 ms a chiamata!) ma al giorno d'oggi c'è caso ci siano soluzioni migliori e più performanti
    Infatti la soluzione attuale utilizza una socket tra client e server con un protocollo proprietario.
    incideva di circa 20 ms a chiamata!
    E se le chiamate fossero centinaia al secondo, il ritardo non aumenta ?
    Socket decine di anni fa per togliere tutta l'infrastruttura Web
    Ah, quindi capita anche che qualcuno la abbandoni.
    E poi come e' andata a finire ?
    ma al giorno d'oggi c'è caso ci siano soluzioni migliori e più performanti
    Gia', e dove posso andarle a cercare ?

    Ci sarebbe un modo per spiegare quello che voglio fare in maniera piu' sintetica senza che debba ripetere la papardella del primo post ?
    Ho provato ad interloquire con un fornitore straniero, ma a quanto pare non mi ha capito, non so perche' non mi sono spiegato bene, per un problema di traduzione o se quello che cerco e' fuori dal mondo.
    Grazie.
  • Re: Quesiti su JAVA

    A quel punto cambia proprio il modo di gestire la base dati (lock compresi), per cui se migri ad un nuovo linguaggio hai due opzioni:
    Abbandoni i vantaggi della nuova struttura: siccome i nuovi linguaggi nascono per le nuove strutture, abbandoni i vantaggi che questi ti offrono e resti a ragionare di file e record. Devi però farti tutto a manina, poichè non c'è un supporto nativo come c'era nei vecchi linguaggi. Al massimo puoi usare delle DLL fornite da chi gestisce la vecchia base dati, però cambia poco: è un qualcosa che va fuori dallo standard e quindi te lo fai a manina
    Inizi a ragionare secondo le logiche della nuova piattaforma. Hai una curva di apprendimento più alta (oltre ai linguaggi devi imparare i database), però i benefici sul lungo periodo saranno maggiori: sfrutti le potenzialità dei DB e oltretutto usi le features dei linguaggi moderi per queste strutture dati. Pensa che ci sono tanti ORM che ti consentono di scrivere codice che lavora su strutture dati generiche e loro fanno poi le query reali sul DB... ovviamente mettono uno strato in più che devi evitare se hai davvero bisogno di performance da urlo
    In realta' non sono cose che devo fare io, sono il consulente dell'amico che avrebbe intenzione di fare la migrazione e sto valutando quali alternative gli potrebbero garantire prestazioni almeno comparabili (e non c'e' problema di costo).
    ovviamente mettono uno strato in più che devi evitare se hai davvero bisogno di performance da urlo
    Le prestazioni che vorrei avere sarebbero quelle di una risposta al di sotto del mezzo secondo per qualsiasi richiesta (almeno quelle piu' frequenti), mentre per le operazioni non interattive il vincolo e' meno stringente (non secondi, ma minuti, non ore).
  • Re: Quesiti su JAVA

    Il concetto fondamentale e':
    non esiste 'il sistema migliore'.
    piu' o meno TUTTE le tecnologie attuali sono in grado di fornire performance piu' che accettabili ANCHE per applicazioni real time.
    il problema e' un'altro: le competenze di chi dovra' sviluppare il tutto che DEVE SAPERE come fare.
    Java e C# sono interscambiabili: forniscono praticamente gli stessi servizi.
    Le applicazioni web non sono da meno, SE chi implementa sa quello che fa.
    Non ci sono motivi perche' una pagina web non possa venir aggiornata con tempi al di sotto del decimo di secondo. Tutto sta nel farlo in modo 'intelligente'.

    Si vogliono performance ancora piu' estreme?
    C++/C e assembler!
    Uso di gpu...

    Ed hardware adeguato.

    Faccio notare che con il browser puoi tranquillamente vedere il modello 3D di Milano in real time! Quanta potenza di calcolo serve per fare il rendering 3d ed il mapping di tutte le case, gli alberi, ecc...
  • Re: Quesiti su JAVA

    Purtroppo temo che tramite forum sia fatica aiutarti più di tanto...
    Un conto è chiarire qualche dubbio, un conto è studiare un'architettura per passare da un programma vetusto ad uno moderno.

    Le variabili e le soluzioni sono tantissime. Inoltre riguardano davvero l'archiettura a tutti i livelli:
    • Quale base dati conviene usare? Mantenere quella vecchia, passare ad un DB relazionale, passare ad uno documentale,...
    • Con quali strumenti sviluppare una parte server in grado di rispondere a centinaia di chiamate in contemporanea?
    • Che protocollo di comunicazione attivare fra client e server per avere delle prestazioni sufficienti?
    • Come sviluppare la parte client per fare in modo che supporti certe prestazioni?
    E queste sono solo le "prime" domande e le più comuni.
    Peccato che per fare una buona architettura ci siano poi un sacco di sfaccettature che incidono sul tutto.

    Tanto per fare anche qui qualche esempio:
    • Java (così come .NET) hanno diversi motori di rendering a video (Swing, JWT, JavaFX)... si sanno i pro e i contro di ciascun motore per decidere quale faccia al caso tuo?
    • Chi svilupperà l'applicazione, sa che esiste anche il "virtual scrolling" che consente di migliorare le performance di rendering nel caso di elenchi molto grandi?
    • Perchè non pensare ad una soluzione cloud-ready e severless? Aiutano a scalare la potenza di calcolo in base a determinati parametri (chiamate in arrivo, orari di picco, giorni particolari come il fine mese per la fatturazione, ...)
    • Sicurezza?
    • Cache?
    • ...

    Puoi capire che se si deve dare una soluzione interessante, gli argomenti da affrontare sono tanti e vanno ben oltre al linguaggio di programmazione... Quello è probabilmente l'ultima cosa da scegliere

    Inoltre, come segnalava qualcuno, non temere a valutare un'applicazione web per le performance (sia input che visualizzazione).
    Io suggerivo un'applicazione client perchè avevi messo come vincolo la necessità di lanciare eseguibili sul PC. Se questa necessità non c'è, allora valuta seriamente applicazioni web!

    Se scritte e organizzate bene hanno performance di tutto rispetto! Non solo: ti viene "quasi gratis" la gestione del protocollo WebSocket che per aggiornare in tempo reale la view al cambiare dei dati lato server è tanta roba
  • Re: Quesiti su JAVA

    Un conto è chiarire qualche dubbio, un conto è studiare un'architettura per passare da un programma vetusto ad uno moderno.
    Il mio scopo non e' di studiare una transizione, ma semplicemente di sapere se esiste una soluzione architetturale/di linguaggio che almeno potenzialmente consenta di avere piu' o meno le funzioni attuali (ad esempio trasferimento di file da e per il client, esecuzione sul client etc) , che possa riprodurre il piu' possibile le funzioni attuali (intercept dei tasti funzione e del mouse etc) e che abbia la stessa semplicita' di installazione (vabbe' il browser e' ancora piu' agevole).

    Chiaramente queste caratteristiche sono specifiche del sistema vetusto e mi rendo conto che e' possibile ottenere di meglio e di piu' con una metodologia differente, senza che sia richiesta nessuna di queste.

    Considerato che da come mi dite le prestazioni dipendono da come una cosa si fa, da chi la fa e dall'architettura scelta, non mi resta che vagliare delle soluzioni che al mio amico verranno proposte in un prossimo futuro senza formalizzarmi sugli aspetti tecnici e sulla analogia con l'architettura attuale, focalizzandomi solo sulla rispondenza ai requisiti.
    Poi magari ci risentiamo e mi date qualche parere.
    Grazie a tutti.

    p.s.
    Pero' vi chederei di togliermi una curiosita': fino ad oggi non ho mai visto form WEB riempiti con 150-200 campi tutti nel frame del video, avete qualche esempio di questo tipo ?
    Sono allergico a far aprire troppe finestre all'utente, per cui piuttosto che fargli aprire in sequenza 3 form da 50-60 campi, preferisco presentargliene uno solo da 150-200, lo spazio in una finestra GUI con un monitor da 19", c'e'.

    ecco cosa intendo per "responsivita'" del sistema.
    https://www.youtube.com/watch?v=2ee-x6IXWK dal minuto 4:10,
    https://www.youtube.com/watch?v=2u007Msq1q dal minuto 1:00
    Non sono un esperto del campo, ma non sono sicuro che con un browser si possa ottenere lo stesso effetto.

    https://www.quora.com/Why-do-Bloomberg-terminals-have-such-non-standard-interfaces
    Simplifying the interface of the terminal would not be accepted by most users because, as ethnographic studies show, they take pride on manipulating Bloomberg's current "complex" interface.
    No, e' che si fa piu' presto a premere un tasto che a cliccare su una icona con il rischio di non centrarla in una videata affollata.
  • Re: Quesiti su JAVA

    Credo ci sia un pò di confusione su certe questioni, provo a fare un pò di chiarezza

    web

    A livello di tecnologia, il web consente di lavorare in pixel e definire i font da usare. Pertanto posso garantirti che puoi disegnare le stesse videate che fai coi programmi nativi.
    Può essere che ci sia un delay nel disegnare la prima volta la pagina perchè scarichi dal server le risorse, però poi le prestazioni potrei dire che si equivalgono.

    User experience

    Nel web pubblico farai fatica a trovare videate come quelle, poichè ai più sono illeggibili.

    Tieni però presente una cosa: tutti quei dati in una finestra sono difficilmente utili. Una persona non riesce a guardarli tutti in contemporanea.
    La tendenza è quella di mettere in mostra il minimo ed indispensabile o, se preferisci, i dati più importanti.

    Se poi ne servono altri, allora si raggruppano logicamente e si visualizzano a richesta.
    Questo non vuol dire "mouse + popup", possono anche essere tasti funzione e porzioni di schermo.

    Pertanto: se vogliono migliorare la user experience, c'è molto da lavorare ma possono ottenere tanto.

    Di contro, però, hanno bisogno di un esperto in materia, perchè altrimenti si riachia diventi qualcosa di macchinoso e inutilizzabile

    Performance

    Perdonami ma non capisco (sono testone)
    Nei video si vedono delle scritte che si aggiornano continuamente e velocemente.

    Devi replicare questo? Lo fai anche col web, però si tratta di rendering, non di immediatezza

    Da nessuna parte si vede quanto tempo passa fra quando qualcuno inserisce la notizia e quando gli altri la vedono. È questo il dato che conta per le performance

    Inoltre, parli di centinaia di campi di input... nei video non li vedo. Sono per lo più testi visualizzati.
  • Re: Quesiti su JAVA

    Inoltre, parli di centinaia di campi di input... nei video non li vedo. Sono per lo più testi visualizzati.
    Era solo per fare un esempio di una possibile situazione in cui ci sono potenzialmente molti campi di input.
    possono anche essere tasti funzione e porzioni di schermo.
    Certo.
    Nel web pubblico farai fatica a trovare videate come quelle, poichè ai più sono illeggibili.
    Ho visto roba molto piu' illegibile con poche linee scritte con un font piccolissimo messe in una finestra che occupa una frazione trascurabile dello schermo ed anche finestre che occupano tutto lo schermo per presentare pochissimi campi scritti con font minuscoli.
    Lo so che non e' un problema del browser, ma di chi ha scritto l'interfaccia, ma mi chiedevo se fossero anche causati da qualche restrizione del mezzo.
    Una persona non riesce a guardarli tutti in contemporanea.
    La tendenza è quella di mettere in mostra il minimo ed indispensabile o, se preferisci, i dati più importanti.
    Ci sono casi in cui e' preferibile vederli tutti, altrimenti non sarebbero casi di nicchia. , fossero anche solo causati dall'abitudine.
    La mia tendenza invece e' a visualizzare il massimo possibile minimizzando l'apertura di finestre.
    Ad esempio per me e' una sofferenza fare un ordine su Amazon con tutta quella transizione di pagine, fosse dipeso da me avrei messo tutto in una sola videata. .Qui pero' siamo nel campo della "filosofia" e non c'entra nulla con il linguaggio/strumento utilizzato.
    Dalla mia esperienza, se gli utenti si abituano ad effettuare poche transizioni per eseguire un compito, poi "soffrono" se devono passare ad una metodologia che li costringe ad un numero maggiore di transizioni sia per l'input dei dati che per la visualizzazione (da questo punto di vista io come utente sono sensibilissimo), mentre il contrario non e' vero.
    Questo sotto l'ipotesi che gli operatori siano consapevoli e coscienti del loro lavoro, perche' alcuni insensibili alla qualita' dello svolgimento del loro compito, esistono.
    Pertanto posso garantirti che puoi disegnare le stesse videate che fai coi programmi nativi.
    Si', ho visto qualcosa sviluppato con c# e .NET ed il controllo sulle proprieta' dei campi mi sembra completo.
    Può essere che ci sia un delay nel disegnare la prima volta la pagina perchè scarichi dal server le risorse, però poi le prestazioni potrei dire che si equivalgono.
    Ok, la mia impressione puo' essere influenzata dal fatto che vorrei utilizzare l'interfaccia WEB come fosse un terminale, tipo usare le frecce direzionali per scorrere i campi ed usare invio su un campo per passare al successivo ed allo stesso tempo poter utilizzare il mouse.
    Sono sicuro che quel comportamento sulla battuta di invio sia ottenibile (sono riuscito ad ottenerla in un modulo PHP) e forse lo e' amche quella delle freccine, quindi le mie perplessita' possono essere causate da come vengono progettate le pagine web, non dalle potenzialita' del browser.
    Al limite mi chiederei perche' gli sviluppatori non danno queste possibilita' in aggiunta a TAB e BACKTAB.
    Di contro, però, hanno bisogno di un esperto in materia, perchè altrimenti si riachia diventi qualcosa di macchinoso e inutilizzabile
    Certo, ma quello che mi chiedevo e' se esistono delle restrizioni che rendono difficile ottimizzare la user experience.
    Forse sono troppo pignolo, ma se sono davanti ad un form nel quale devo inserire una serie di dati in una colonna, troveri ottimale utilizzare freccia su' e freccia giu' per scorrere i campi ed invio per passare al successivo, visto che l'imput avviene dalla tastiera numerica e TAB e (peggio) SHIFT-TAB sono dall'altra parte e da utilizzare con l'altra mano (discorso che naufraga con i mancini ).

    p.s.
    Vorrei mettere in chiaro che tutti i miei ragionamenti sono in riferimento a software specialistico ed aziendale , ad uso di operatori professionali ad alta efficienza , non di utenti occasionali, spero che cosi' almeno si capisca perche' mi pongo il problema della sequenza di battuta dei tasti.
  • Re: Quesiti su JAVA

    HATFIELD ha scritto:


    ....
    Vorrei mettere in chiaro che tutti i miei ragionamenti sono in riferimento a software specialistico ed aziendale , ad uso di operatori professionali ad alta efficienza , non di utenti occasionali
    ...
    mi viene da pensare al dataentry per un commercialista;
    con una mano tengono il segno sul foglio e con l'altra inseriscono dati;
    ENTER e campo successivo;
    ... e se provi a dire che invece di ENTER devono premere TAB o usare il mouse ti becchi una coltellata
  • Re: Quesiti su JAVA

    Mi viene da pensare al dataentry per un commercialista;
    con una mano tengono il segno sul foglio e con l'altra inseriscono dati;
    ENTER e campo successivo;
    ... e se provi a dire che invece di ENTER devono premere TAB o usare il mouse ti becchi una coltellata
    Esatto.
    L'ambiente non e' quello, ma c'e' qualche analogia.
    ... e se provi a dire che invece di ENTER devono premere TAB o usare il mouse ti becchi una coltellata
    Ed hanno ragione.
Devi accedere o registrarti per scrivere nel forum
39 risposte