Nel mese di settembre dell'anno 2005 sono stato assunto a tempo pieno come sviluppatore presso la Banca del Gottardo di Lugano.
Il mio lavoro consisteva principalmente nello sviluppare portali web che avevano l'obiettivo di mostrare online un gran quantitativo di dati di diverso tipo. Nella maggior parte dei casi l'obiettivo di questi applicativi web era quello di permettere la visualizzazione e l'interazione con dati presenti su database SQL Server, Oracle e SAS.
Visto che i diversi applicativi web tendevano ad avere sempre le stesse funzionalità di base ho deciso di cominciare ad implementare una struttura di base che potesse essere facilmente riutilizzabile. All'inizio questa struttura consisteva semplicemente in una serie di file ASP che contenevano il codice di base necessario a svolgere determinate funzioni quali la generazione di una tabella di dati in HTML a partire da una query sql e la messa in funzione di una sezione di filtraggio dei dati che permettesse agli utenti di selezionare unicamente i dati interessati.
Con il tempo ho continuato a rifinire e completare questa struttura aggiungendo man mano nuove funzionalità richieste nei progetti che mi venivano assegnati. Ad un certo punto ho deciso di implementare un sistema di parametrizzazione che mi permettesse di personalizzare l'output generato da questi file semplicemente impostando i valori di alcune variabili all'interno di una serie di file di configurazione. A questo punto decisi di presentare al mio superiore le caratteristiche e le funzionalità di questo sistema. Il progetto fu accolto molto bene e mi fu permesso di continuare con lo sviluppo. Il progetto prese il nome di Tabula (tabella in latino).
Il prossimo passo fu quello di creare un applicativo client che permettesse di gestire e configurare i diversi progetti da un unico applicativo. L'obiettivo finale era quello di creare uno strumento per lo sviluppo di siti web che fosse facilmente utilizzabile anche da persone senza particolari conoscenze di programmazione.
Oggi lo sviluppo di Tabula è in corso da quasi due anni e quello che prima era solo un insieme di file di funzioni ora è diventato un vero e proprio applicativo di sviluppo che viene utilizzato attivamente presso la Banca del Gottardo di Lugano.
Tabula è un applicativo per lo sviluppo di siti web. L'obiettivo di questi siti è quello di fornire ad una serie di utenti un'interfaccia web per la visualizzazione e la gestione dei dati presenti su un database. I siti generati con Tabula permettono agli utenti, oltre che a visualizzare i dati del database, di applicare dei filtri per selezionare unicamente i dati interessati e di assegnare dei commenti ai singoli dati.
I siti generati con Tabula permettono agli utenti di interagire con i dati presenti su un database.
I siti dispongono anche di una sezione di amministrazione che permette agli amministratori di gestire le impostazioni del sito, le utenze e i privilegi di accesso. Gli amministratori hanno anche la possibilità di inviare dei messaggi agli utenti tramite un sistema dedicato di messaggeria.
???
L'applicativo permette di sviluppare i siti in modo visuale e non sono quindi richieste conoscenze di programmazione particolari. Tabula permette comunque di accedere direttamente al codice in modo da aggiungere caratteristiche particolari in base delle esigenze funzionali di cui dovrà disporre il sito.
L'interfaccia di Tabula è suddivisa in una serie di pannelli da cui è possibile controllare tutti gli aspetti e le caratteristiche del sito.
Una volta creato un nuovo progetto le prime cose da fare sono impostare le caratteristiche principali del sito e la connessione verso il database che conterrà i dati.
???
In seguito nel pannello "Gestione pagine" possiamo creare le diverse pagine del sito.
???
Normalmente ogni pagina visualiza una tabella di dati. Per ogni tabella sarà possibile modificare le funzionalità di base e impostare i metadati delle colonne. Sarà inoltre possibile impostare i privilegi di accesso ai dati in modo da servire all'utente unicamente i dati di sua competenza.
???
Nella sezione "Pagine aggiuntive" è possibile includere nel progetto pagine che non devono necessariamente visualizzare una tabella di dati come ad esempio un formulario che l'utente deve completare, un report o un file pdf.
???
Una volta preparato il progetto basterà selezionare la voce di menu Genera e Tabula si occuperà di generare automaticamente tutto il sito web pronto per essere rilasciato su un server. Se in futuro sarà necessario apportare delle modifiche al sito basterà aprire il progetto, eseguire le modifiche e selezionare nuovamente Genera; le modifiche verranno automaticamente riportate all'interno del sito web.
Le tabelle generate da Tabula mettono a disposizione una serie di caratteristiche interessanti quali da esempio la possibilità di modificare l'ordine dei dati e di eseguire dei filtri utilizzando le apposite celle di filtri sopra le colonne.
???
L'ottimizzazione del codice e l'implementazione di un sistema di scambio di dati asincrono tra il server e il client (simile ad Ajax) permette all'utente di filtrare i dati della tabella in tempo reale mentre sta scrivendo nelle caselle dei filtri. Questa funzionalità è stata interamente implementata in HTML e JavaScript e non necessita l'installazione di componenti particolari. Gli utenti hanno inoltre la possibilità di memorizzare i filtri in modo da poterli riutilizzarle in un secondo tempo.
I dati vengono automaticamente suddivisi in sottopagine in modo da permettere la visualizzazinone di tabelle con un gran numero di dati.
Tabula permette anche di abilitare un meccanismo di gestione dei commenti. Una volta abilitata, questa funzionalità permette agli utenti di assegnare uno o più commenti ad ogni singolo record della tabella.
???
Tabula supporta la localizzazione in diverse lingue. L'utente ha la possibilità di passare da una lingua all'altra in un qualsiasi momento tramite il menu principale. Durante la fase di sviluppo è possibile generare in modo automatico una documentazione di traduzione che conterrà l'elenco di tutti i testi nelle varie lingue con il riferimento esatto della posizione del testo all'interno del sito (file > numero linea > numero carattere). Questo documento permetterà di facilitare la fase di traduzione e di controllo dell'ortografia.
???