La crescente complessità nel realizzare applicativi web oriented utilizzando librerie di terze parti ci ha indotto a progettare un sistema che permette la generazione automatica di un qualunque applicativo partendo dalla struttura dei dati praticamente senza scrivere codice. L’occasione è arrivata da una commessa della soc. HTS Group che aveva bisogno di un applicativo in ambiente web per la gestione di pratiche automobilistiche, polizze assicurative fatturazione ecc.
Il progetto WUIC è stato pensato come un framework per la creazione dinamica di applicativi web-oriented, minimizzando la scrittura di codice da parte dello sviluppatore che potrà così dedicarsi a fornire funzionalità avanzate ai propri utenti.
Il framework è dotato di uno “scaffolding-engine” che, una volta esaminato lo schema di un database, genererà una serie di metadati che poi verranno utilizzati dal “gui-engine” per produrre una vera e propria applicazione completamente personalizzabile da parte dello sviluppatore stesso. L’interfaccia dell’applicazione generata in maniera automatica, potrà essere modificata, utilizzando menu contestuali e funzionalità drag-drop.
Vengono messi a disposizione numerosi widget adatti alle varie tipologie di dato che è possibile gestire, da semplici datetime picker a grid, treeview, html editor, slider. E’ possibile definire regole e condizioni sui dati ed associare a queste “Rule” degli stili ed ottenere così dei template condizionali per la visualizzazione dei dati, usando semplici handler javascript e classi css. E’ possibile profilare i singoli utenti dell’applicazione con un notevole livello di granularità definendo semplicemente a quali route / action possono accedere, ma anche quali campi delle singole tabelle possono visualizzare e/o editare. Sono state previste funzioni per la gestione di tabelle reticolari, gestione di problematiche di concorrenza ottimistica sui dati, modulo CMS, creazione di semplici workflow.
L’applicazione generata è compatibile con tutti i maggiori browser: IE 8+, Chrome, Firefox, Safari.