Panoramica

# SINGLE PAGE APPLICATIONS

Da Wikipedia:

Con Single-page application (in italiano: applicazione su singola pagina) o in sigla SPA si intende una applicazione web o un sito web che può essere usato o consultato su una singola pagina web con l’obiettivo di fornire una esperienza utente più fluida e simile alle applicazioni Desktop dei sistemi operativi tradizionali. In un’applicazione su singola pagina tutto il codice necessario (HTML, JavScript e CSS) è recuperato in un singolo caricamento della pagina o le risorse appropriate sono caricate dinamicamente e aggiunte alla pagina quando necessario, di solito in risposta ad azioni dell’utente. La pagina non si ricarica in nessun punto del processo, né lascia il controllo in un’altra pagina, sebbene moderne tecnologie web (come la API pushState() di HTML5 può fornire la percezione e la navigabilità in pagine logiche separate nell’applicazione). L’interazione con una applicazione a singola pagina spesso coinvolge una comunicazione dinamica con il web server.

Il termine ha cominciato ad essere usato a partire dal 2012 e Genropy può considerarsi un precursore di questa tecnologia dato che a partire dal 2006 sono stati consegnati ai clienti i primi applicativi realizzati con il framework e che anticipavano proprio questo approccio. Le applicazioni web tradizionali, infatti, prevedono che il server generi delle pagine HTML che invia al client e quest’ultimo si limita poi a presentarle all’utente fornendo un minimo di logica locale tramite Javascript.

Con Genropy invece la chiamata ad una pagina rende sempre la stessa pagina HTML che al suo interno costruisce una vera e propria applicazione in Javascript che dialoga con la sua controparte in Python sul server tramite RPC e Websocket. L’adozione di questo approccio (per il 2006 davvero inconsueto) ha consentito di sperimentare per molti anni questa tecnologia che ora è molto matura ed adatta ad essere usata per creare applicazioni in grado di garantire agli utenti una straordinaria velocità di uso in grado di non fare rimpiangere i classici applicativi desktop.

Per chi utilizza un’applicazione per tutto il giorno il risparmio di pochi decimi di secondo su ogni singola operazione può rappresentare un vantaggio competitivo anche importante. Se un utente di un sito pubblico e che usa un’applicazione per pochi minuti è disposto ad accettare un’interfaccia anche non perfetta, chi lavora tutto il giorno su un sistema professionale deve essere messo in grado di svolgere il proprio compito nel modo più completo e veloce possibile.

Questo si traduce anche nel disegno di una GUI standardizzata dove ogni elemento funzionale è sempre posizionato nello stesso punto e dove ogni dettaglio è studiato per risparmiare tempo e fatica. Questo è molto diverso dai siti pubblici dove invece si predilige spesso l’aspetto estetico anche a scapito della funzionalità.

# LE CARATTERISTICHE DI GENROPY

Tutto Python (o quasi)

La realizzazione di applicazioni web implica anche l’utilizzo di Javascript, CSS e HTML ma grazie all’approccio “tutto Python” di Genropy gli sviluppatori possono utilizzare principalmente Python nella definizione delle interfacce. Genropy è scritto in Python e può funzionare con diversi database. Esitono adapters per sqlite, postgres, mysql, microsoft sql ed oracle. Anche tutte le operazioni sul database possono essere scritte direttamente Python, usando API molto semplici.

Bag e strutture

Genropy si basa sul concetto di Bag, un contenitore gerarchico la cui sintassi si presta molto facilmente a descrivere strutture di dati, di widget, di elementi in stampa. Le Bag sono usate sia in Python che in javascript e questa dualità di uso rende molto facile per lo sviluppatore avere sia sul server che sul client le stesse API. Una Bag è molto di più che un contenitore: è infatti un oggetto in grado di eseguire chiamate per popolarsi e di reagire ad eventi eseguendo della logica interna.

Gli store

Genropy utilizza estesamente il paradigma MVC sia sul client che sul server. Prendiamo ad esempio una pagina che gestisca un archivio: una volta caricata in memoria con tutti gli elementi di interfaccia (View) e tutta la logica (Controller), si limiterà di volta in volta a popolare lo store locale (Model) con i dati di un particolare record e questo minimizza la quantità di dati che transita sulla rete rendendo caricamento e salvataggio di un record estremamente veloce.

Il path relazionale

Le chiamate SQL di Genropy si basano sul concetto di path relazionale: un modo intuitivo e logico di definire delle colonne in un database. Query anche complesse possono essere scritte in pochi istanti con una sintassi assolutamente semplice e senza avere l’appesantimento, anche in termini di prestazioni, che i classici ORM spesso comportano.

In produzione

Per la distribuzione di prodotti realizzati con Genropy si suggerisce una modalità in cloud. In particolare esistono degli script configurare in modo automatico una distribuzione tramite NGINX – GUNICORN – TORNADO gestendo anche i certificati tramite CERTBOT.
Genropy include tutto il necessario per utilizzare i servizi Amazon AWS

# CHE VANTAGGI OFFRE AGLI SVILUPPATORI?

Ambiente di sviluppo rapido ed integrato

Adozione del paradigma MVC sul client e sul server

Sviluppo modulare con riutilizzo del codice

Customizzazioni del applicativo

Gestione preferenze

Debugger integrato

Integrazione PostgresSQL, MySql, e altri

Importazione automatica da database legacy

Gestione delle chiamate SQL in Python

Gestione utenti, tag autorizzazioni

Applicazioni multidatabase

Gestione batch con creazione di termometri.

Sistema di generazione PDF

Gestione mail ingresso e uscita

Strumenti per pagine collaborative

Sistema di documentazione RST

Gestione allegati

# CHE VANTAGGI OFFRE AGLI UTENTI?

Interfaccia coerente ed intuitiva

Caricamento dati veloce e assistito

Creazione query complesse in pochi click

Memorizzazione query anche con parametri

Generazione viste personalizzate

Interfaccia drag&drop

Gestione template per stampe e mail

Archiviazione dati obsoleti

Analisi statistiche

Mail in ingresso ed uscita

Posta certificata

Possibilità di creare campi custom

Chat integrata

Gestione carte intestate

Compatibilità con dispositivi mobile

Gestione allegati

Gestione annotazioni e azioni da eseguire

Gestione Task periodici

# DA DOVE INCOMINCIARE?

Innanzitutto potresti iniziare a utilizzare le interfacce utente di Genropy entrando in sandbox.genropy.org: un sito di demo dove è servito un semplice applicativo d’esempio. Per capire come funzionano gli elementi di interfaccia grafica messi a disposizione dal framework e le potenzialità che essi offrono, consulta il Manuale utente degli applicativi Genropy.

Per installare Genropy consulta la nostra guida all’installazione

Per imparare a usare Genropy, visita la sezione documentazione, dove troverai Lezioni ed un Tutorial per realizzare il tuo primo progetto.