Garda Informatica Framework v3

Garda Informatica Framework Ver 3.0

[Voti: 13    Media Voto: 4/5]

Framework Software Garda Informatica

Nel corso del 2015 abbiamo sviluppato la terza versione del nostro framework.

Cos’è un framework?


 

Un framework è un software che aiuta noi sviluppatori a creare le soluzioni per i nostri Clienti riducendo i tempi e quindi i costi di sviluppo. Per raggiungere questo obbiettivo, un framework deve automatizzare il più possibile i processi ripetitivi e deve aiutare lo sviluppatore nella gestione della complessità della soluzione che deve realizzare. Purtroppo i framework liberamente disponibili sono anche piuttosto generici in quanto devono soddisfare un po’ tutte le necessità degli sviluppatori e questo li rende meno utili del previsto. Per questo motivo noi di Garda Informatica abbiamo deciso di sviluppare un nostro framework pensato specificatamente per la realizzazione di Web Application Enterprise. Esempi di queste web application possono essere: gestionali per la fatturazione, per la contabilità, per la gestione del magazzino, ERP, CRM, MRP, ecc. Grazie al nostro framework riusciamo pertanto a creare questo tipo di applicazioni molto agilmente e quindi siamo in grado di proporre un servizio di sviluppo software su misura, solitamente costoso, a prezzi vantaggiosi.

Interfaccia di Gestione Utenti realizzata con il Framework di Garda Informatica e vista da uno smartphoneInterfaccia di Gestione Utenti realizzata con il Framework di Garda Informatica e vista da un PC desktop

Volendo raggiungere il top dell’innovazione possibile abbiamo operato una riscrittura completa del framework e nella sua terza versione abbiamo tentato di concentrare tutta la nostra esperienza fatta nel campo delle Web Application, delle Soluzioni Enterprise e delle App, in un unico prodotto.

Il risultato si è rivelato piuttosto soddisfacente. Tanto che in poco tempo abbiamo già realizzato tre progetti con esso di cui discuteremo in tre articoli dedicati. In questo articolo ci limiteremo a illustrare tutte le caratteristiche salienti del nostro framework e che vantaggi portano al Cliente sia dal punto di vista tecnico e di funzionalità sia dal punto di vista economico.

La terza versione del nostro framework nasce con le seguenti caratteristiche nel suo DNA:

  • Web: grazie a software come Gmail ormai ci si aspetta di poter accedere ai propri strumenti di lavoro ovunque ci sia una connessione internet e senza il bisogno di installare Client che vadano poi aggiornati. Il software deve sempre essere disponibile, non deve richiedere l’installazione di nulla e deve sempre essere aggiornato all’ultima versione. Questo è l’aspetto del Web che ci piace e che abbiamo voluto abbracciare durante lo sviluppo del nostro framework.

Esempio di Login Web con il Framework di Garda Informatica

  • Multiutente: molti software vengono venduti con un prezzo che varia in base al numero di postazioni o utenti che lo utilizzeranno. Anche questo aspetto appartiene al software di ieri. Il software di oggi non costa in base al numero di utenti, semmai ciò che può costare di più è il servizio di hosting a causa del maggior numero di accessi e dello spazio richiesto, ma non il fatto che il software venga utilizzato da 1, 10, 1000 utenti. Il nostro framework infatti non risente del numero di utenti contemporaneamente collegati e quindi per noi il numero di utenti non è un costo e di conseguenza non lo è per i nostri Clienti.

Dimostrazione del supporto a più utenti da parte del framework di Garda Informatica

  • Gestione Avanzata dei Permessi: uno dei fiori all’occhiello del nostro framework è proprio la gestione avanzata dei permessi legati ai profili utente. In base a come l’abbiamo progettato possiamo definire regole di accesso molto precise con una granularità che arriva alla gestione del singolo dato. Di seguito alcuni esempi:
    • L’utente A non vede i prezzi;
    • L’utente B vede solo i suoi Clienti;
    • L’utente C può modificare l’Ordine solo se in Stato Aperto;
    • L’utente D può modificare tutto tranne i Prezzi;
    • L’utente E può vedere tutti gli elementi, ma solo i Prezzi dei suoi;
    • L’utente F può modificare solo alcuni dei dati inseriti dall’utente G;
    • L’utente H può inserire elementi, ma una volta inseriti non li può più modificare;

Schermata del Framework di Garda Informatica che visualizza i ruoli degli utenti. Per ciascuno di essi è possibile impostare i permessi

  • Multidispositivo: ormai ciascuno di noi o quasi è dotato di smartphone o tablet. Per questo motivo abbiamo pensato il nostro framework in modo tale che con uno sforzo minimo possa funzionare su PC, tablet e smartphone, modificando pertanto la propria resa grafica in base alla risoluzione a disposizione. Es.: là dove sul PC si vedrà una griglia, su mobile si vedrà una lista con un tipo di interazione più adatto ad un dispositivo touch.

Interfaccia di Gestione Utenti realizzata con il Framework di Garda Informatica e vista da uno smartphoneInterfaccia di Gestione Utenti realizzata con il Framework di Garda Informatica e vista da un PC desktop

  • Multilingua: la globalizzazione richiede che il software, nel caso di servizi erogati tramite piattaforma web, parli la lingua dell’utente e per questo abbiamo integrato nel framework le migliori tecnologie e standard a supporto del multilingua e dei tool per le traduzioni come Poedit.

Menù di scelta lingua di un gestionale software realizzato con il Framework di Garda Informatica

  • AJAX: solitamente il software web viene associato mentalmente ad un’esperienza fatta di attese e caricamenti. Questo perché il software di ieri è stato sviluppato con l’idea che ad ogni click si debba ricaricare l’intera pagina quando magari vanno modificati solo due o tre campi. Per dare un’esperienza più vicina a quella dei software nativi abbiamo sviluppato tutto il nostro framework utilizzando la tecnologia AJAX e il concetto di Single Page Application: tutta l’applicazione viene disegnata da logiche che girano localmente al browser (Chrome, Firefox, IE, ecc.). L’unico scambio di dati che avviene col server è quello appunto dei dati, non delle interfacce. In questo modo la pagina non si ricarica mai e le attese sono ridotte al tempo minimo necessario per trasferire i soli dati di interesse. Detto in parole semplici: il nostro framework è velocissimo.

Dimostrazione della velocità del Framework di Garda Informatica nell'editing di elementi. Questo è possibile grazie alla tecnologia AJAX utilizzata.

  • UI/UX: l’aspetto dell’interfaccia utente (UI) e dell’esperienza utente (UX) poggiano sulle solide basi di Bootstrap, un framework sviluppato da Twitter per costruire Web Application dal design chiaro, pulito e moderno. I colori, i font, gli spazi, tutto è stato studiato per dare all’utente la massima usabilità e semplicità.

Interfaccia realizzata con il framework responsive Bootstrap

  • Cloud: grazie ai nuovi servizi di hosting basati su Cloud abbiamo voluto sfruttare i vantaggi offerti dalla tecnologia di Amazon S3 pensata per lo storage di grossi quantitativi di dati come foto o documenti in modo sicuro e a prezzi vantaggiosi rispetto all’hosting tradizionale. Per questo motivo il nostro framework si integra in modo trasparente con i servizi di hosting che offrono Amazon S3 come Aruba Cloud.

Esempio di upload di immagini sul cloud utilizzando il framework di Garda Informatica

  • App ready: un conto è poter accedere a un servizio tramite browser, un altro è avere l’App sul proprio iPhone o sul proprio Samsung Galaxy. Per questo motivo, grazie alle scelte progettuali fatte e allo sforzo di sviluppo, una volta realizzata una Web Application con il nostro framework, siamo in grado, con un piccolo sforzo, di realizzare la relativa App per iOS, Android e Windows Phone.

Icone delle tecnologie in cui è possibile realizzare le App con il framework di Garda Informatica

  • Enterprise ready: oltre alle caratteristiche elencate, il nostro framework supporta delle funzionalità pensate per il mondo Enterprise come l’esportazione e l’importazione dati nei formati CSV o Excel. L’esecuzione di elaborazioni complesse che impiegano diverso tempo, dette Elaborazioni Batch, senza bisogno che l’utente che le ha lanciate debba attendere il loro completamento. Il supporto per la modifica del database e del codice dell’applicativo senza interruzioni ovvero la possibilità di aggiornare il software senza bisogno di interrompere il lavoro degli utenti connessi.

Esempio di esportazione dati da un software Gestionale realizzato con il framework di Garda Informatica

Esempio di importazione smart di una web application realizzata con il framework di Garda Informatica

Di seguito vengono analizzati gli elementi costituenti il nostro framework ovvero i mattoncini con cui creaiamo le soluzioni per i nostri Clienti.

Griglie

Nella versione web per il desktop sono disponibili le così dette griglie o datatables. I dati delle tabelle vengono cioè rappresentati in strutture in cui sono presenti righe e colonne. Ogni riga è un record della tabella, ogni colonna è un campo della tabella. In questo modo è possibile visualizzare e operare su più record contemporaneamente.

Griglia di un gestionale realizzato con il framework di Garda Informatica che mostra le funzionalità di filtro, raggruppamento, trascinamento colonne, modifica visibilità colonne e totali e subtotali

Tutte le griglie del nostro framework hanno le seguenti caratteristiche.

Tutte le colonne sono:

  • Filtrabili con un filtro specifico per ogni tipo di dato es. Stringa, Intero, Decimale, Data, Booleano, Enumerato, Tag, Reference (Riferimento ad altra tabella).
  • Ordinabili in senso ascendente o discendente. Inoltre è possibile stabilire degli ordinamenti multipli es. Azienda, Anno, Numero Ordine.
  • Raggruppabili: è possibile fare dei raggruppamenti per una qualsiasi delle colonne presenti es. Clienti raggruppati per regione. Ogni gruppo calcola automaticamente i subtotali per le colonne numeriche come prezzi, quantità, ecc.
  • Visualizzabili: è possibile stabilire quali colonne siano visibili e quali invece vogliamo nascondere poiché non ci interessano.
  • Trascinabili nella posizione desiderata prima o dopo altre colonne.

Ogni griglia poi è Paginata in modo da poter gestire un numero illimitato di record senza perdere in prestazioni, con la possibilità di decidere il numero di record visualizzati per pagina (10, 25, 50 o 100).

Inoltre ogni griglia presenta in fondo delle Statistiche in base al tipo di colonna come il valore Massimo, il valore Minimo e il valore Medio. Utile per i costi, le quantità ecc.

In determinati contesti (es. Preventivi, Ordini, Fatture, Distinte, ecc.) è possibile collegare tra loro più griglie in modo da avere quelle che vengono dette relazioni Testata/Righe oppure Padre/Figlio oppure 1:N (Uno a Molti). Il collegamento è dato dal fatto che determinate griglie possono essere prefiltrate per i valori selezionati in altre. Quindi la griglia delle Righe delle fatture potrà essere prefiltrata in base alla Testata della fattura selezionata nella griglia delle Testate appunto.

Infine in ogni griglia ci possono essere dei bottoni con le seguenti funzionalità:

  • Nuovo: per creare un nuovo elemento della griglia.
  • Cancella: per cancellare uno o più elementi contemporaneamente.
  • Esporta: per esportare i dati della griglia in file CSV o Excel utili per fare ulteriori elaborazioni o per stampe. I dati esportati sono comprensivi di intestazioni, raggruppamenti, subtotali e statistiche.
  • Importa: per importare dati nella griglia secondo la funzionalità che abbiamo chiamato “Smart Import” in quanto in grado di mappare i campi di un file CSV generico sui campi del record della griglia.

Maschere dati

Su ogni record di una griglia sono presenti dei piccoli bottoni con le funzionalità di Modifica, Copia e Cancella. Modifica e Copia, assieme al bottone Nuovo, aprono quella che viene chiamata Maschera Dati ovvero una maschera con tutti i campi della griglia pronti per essere editati.

Maschera di inserimento dati di un gestionale realizzato con il framework di Garda Informatica

Ogni Maschera Dati del framework ha le seguenti caratteristiche:

  • Doppio controllo di correttezza dei dati inseriti lato Browser e lato Server sia per ridurre al minimo l’errore umano sia per impedire i tentativi di hacking del sistema da parte di malintenzionati.
  • Doppio controllo sui permessi lato Browser e lato Server per lo stesso motivo.
  • Filtri tra campi collegati es. Categoria e Sottocategoria. Se seleziono una Categoria, il campo Sottocategoria mi mostrerà le sole sottocategorie della categoria selezionata.
  • Trascinamenti tra campi collegati es. CAP, Città e Provincia. Se seleziono la Città automaticamente vengono completati i campi CAP e Provincia.
  • Autocompletamento per i campi che fanno riferimento ad altre tabelle es. Cliente.
  • Chiamata tramite smartphone per i campi che contengono numeri di telefono o cellulare.
  • Invio SMS tramite smartphone per i campi che contengono numeri di telefono o cellulare.
  • Invio Email per i campi che contengono indirizzi email.
  • Apertura pagine web per i campi che contengono indirizzi internet (link, URL).

Liste

Come accennato precedentemente, il nostro framework si adatta al dispositivo su cui viene visualizzato pertanto se sul desktop viene mostrata una griglia su smartphone verrà mostrata una lista. Tale lista, non avendo a disposizione lo spazio presente su un monitor, mostra solo un sottoinsieme dei dati disponibili, quelli più significativi, e non avendo la paginazione permette il caricamento dei dati successivi man mano che si scorre con il tocco.

Applicazione di filtri avanzati a una lista di elementi. La lista è realizzata con il framework per la creazione di App di Garda InformaticaCancellazione di elementi da una lista. La lista è realizzata con il framework per la creazione di App di Garda Informatica

I Filtri disponibili sulla griglia restano disponibili anche nella lista, richiamabili da un apposito bottone.

Un particolare caso di Liste è quello a cascata. Un esempio di tale modalità di navigazione dei dati potrebbe essere quello della selezione di una particolare versione, di un particolare modello, di una particolare marca di prodotto (es. automobili).

Esempio di navigazione a cascata di elementi di una lista. La lista è realizzata con il framework per la creazione di App di Garda Informatica

Così, in sequenza, nella prima lista seleziono la marca, nella seconda il modello e nella terza la versione.

Matrice/Foglio di calcolo

Esempio di Matrice o Foglio di calcolo realizzato con il framework per la creazione di gestionali web di Garda Informatica

Una caratteristica interessante del nostro framework è quella di riuscire a incorporare, dove richiesto o necessario, dei componenti a matrice utili per inserire grossi quantitativi di dati in modo rapido. L’esempio tipico è quello dei listini. Tipicamente un listino è fatto da diversi scaglioni e prezzi. In questo caso inserire i dati per entrambe questi attributi è più facile se si possono inserire uno di seguito all’altro senza dover cambiare schermata, come in un foglio Excel. Il nostro componente si comporta proprio in questo modo: combina i valori degli attributi di un elemento generando dinamicamente una matrice che può essere modificata e salvata nel suo insieme anche attraverso il Copia e Incolla direttamente da un foglio Excel.

Hai bisogno di una Web Application su misura con le caratteristiche illustrate in questo articolo? Chiedici un preventivo!.

Garda Informatica

Garda Informatica

Garda Informatica sviluppa software su misura nella forma di Web Application, App Ibride per iOS/Android/Windows Phone, Crawler Web, Gestionali Web o semplici Connettori per l'integrazione tra software di terze parti.
Garda Informatica

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Inviando i dati del form accetti le condizioni sulla privacy