L’argomento che si dibatte più frequentemente in questi ultimi anni durante le attività su Uniface è quello che definisce il titolo di questo articolo: stabilire i metodi / criteri di sviluppo per riscrivere od estendere le proprie applicazioni al mondo Web/Mobile.
Più che un articolo che fornisce una soluzione ideale vuole essere l’inizio di una riflessione su quale sia il metodo scelto, ed eventualmente applicato, per:
– migrare una applicazione client/server esistente a 3 livelli
– sviluppare estensioni a 3 livelli per una applicazione client/server esistente
Nell’ambito della classica architettura applicativa a 3 livelli DATI -> SERVIZI -> (API) -> PRESENTAZIONE risulta in particolare sempre un poco ostica la decisione di quale/i componente/i di programmazione della presentazione lato browser (MV*) includere nel proprio framework per via della molteplicità di proposte e di scelte offerte dal mercato. Potete dare un’occhiata al sito http://todomvc.com per comprendere cosa si intenda per “molteplicità”.
Le proposte disponibili sul mercato vanno sostanzialmente suddivise in due gruppi:
– Framework server-side
– Framework client-side
e la decisione sulla strada da seguire per perseguire gli obbiettivi che l’applicazione si propone di affrontare e risolvere non sempre risulta immediata. In molti casi un ragionevole equilibrio tra le funzionalità svolte dal server e quelle attuate dal client è necessario ma non sempre è immediata la linea di demarcazione tra i due fronti in quanto molto (se non tutto!) dipende dalle funzionalità che si devono sviluppare. L’ideale sarebbe sviluppare applicazioni utilizzando un framework che sia in grado di lavorare su entrambi i fronti (Vedere http://isomorphic.net).
La difficoltà legata alla molteplicità di scelte tecnologiche disponibili va in genere a braccetto con l’esigenza di mantenere il miglior grado di indipendenza dai browser disponibili sulle varie piattaforme, utilizzate dagli utenti; alcune di queste accoppiate browser/piattaforma fanno parte del mondo mobile, per cui si portano appresso esigenze specifiche a livello di presentazione e richiedono di conseguenza un approccio, perlomeno in parte, dedicato. Quando questo approccio dedicato diventa prioritario nel panorama complessivo si parla di “Mobile First Framework”.
Le scelte che ho riscontrato essere maggiormente utilizzate ad oggi sono:
– Bootstrap + jQuery
– AngularJS
– ReactJS
– Custom / Personalizzato (della serie “uso quello che mi serve quando mi serve!”)
Ringrazio anticipatamente chi volesse aggiungere un contributo o una riflessione.