Applicazioni Web 2.0
Sviluppiamo per i nostri clienti applicazioni personalizzate
in ambiente Web 2.0. Questa tecnologia permette una maggior
interazione tra sito ed utente e rende la comunicazione tra
client e server più veloce e molto più interattiva.
L’utente utilizza l’applicazione Web 2.0 con un qualsiasi
browser su PC, tablet o cellulare come se fosse
un’applicazione locale e senza essere legato ad una
piattaforma hardware.
Design, User Interface (UI) e User Experience (UX)
L’interfaccia utente deve prima di tutto essere funzionale,
poi semplice ed affidabile, in fine piacevole. Per ciò, la
fase di design deve concentrarsi più sul perché, sugli
obiettivi e significati che sul come, sul modo di esecuzione
e sulle decorazioni.
L’interfaccia utente (UI) non è una semplice pagina web in un
browser. E’ ricca di componenti che ne migliorano l’ergonomia.
Fa uso intensivo della tecnologia AJAX e dei Web Services per
velocizzare l’accesso all’informazione. Con il ritorno di
esperienza (UX), l’interfaccia viene migliorata, arricchita di
nuovi componenti o semplificata, direttamente nel browser.
- Esempio 1: modifica dall’utente delle sue
preferenze (lingua, tema, …)
- Esempio 2: listbox caricata al volo per
scegliere in un’arborescenza modificata poi con drag & drop.
- Esempio 3: varie funzionalità di una
tabella in visualizzazione
- Esempio 4: inserzione in una tabella
Sviluppo Agile
I progetti Web 2.0 seguono il metodo di sviluppo Agile che
si basa su 4 principi fondamentali:
- Persone e interazioni piuttosto che
procedure e tool
- Software funzionale piuttosto che
documentazione completa
- Collaborazione con il cliente piuttosto
che negoziazione di contratti
- Reazione al cambiamento piuttosto che
seguimento di un piano rigido
Architettura Software
Le applicazioni software moderne sono organizzate in più
strati, che interagiscono fra di loro e, a ciascuno strato,
seguono dei pattern (MVC, MVVM, …), e delle regole di
sviluppo (Best practices). Tradizionalmente troviamo il Data
Access Layer (DAL), il Business Logic Layer (BLL) e il
Presentation Layer o Interfaccia utente (UI), ma spesso
troviamo anche altri strati più specifici (Services Layers)
per i Web Services, le traduzioni eseguite al volo o i
servizi di caching, …, oltre ai servizi trasversali relativi
alla gestione della sicurezza, alle comunicazioni, o ad
attività operative come registrazione, strumentazione o
gestione delle eccezioni.
Test Driven Developments (TDD)
I principi fondamentali Agile, non richiedono che lo
sviluppo sia preceduto dalla stesura di test automatici.
Tuttavia, l’interazione costante tra i vari attori del team
Agile e la velocità del cambiamento delle regole di gestione
rendono necessario un re-engineering permanente del codice e
indispensabile l’uso di test automatici, usati sia come
‘linguaggio’ per definire le specifiche, sia come strumento
per verificare la non regressione.
Informazione condivisa e social networks
Per le applicazioni Web 2.0, spesso si usano tecnologie di
programmazione particolari che permettono la pubblicazione
immediata di nuovi contenuti (CMS, post e commenti, sistemi
di valutazione che possono sfruttare i social networks, …) e
l’immediata indicizzazione nei motori di ricerca.
Questo avvantaggia moltissimo le piattaforme di e-commerce,
che beneficiano del feedback immediato del cliente e le
applicazioni aziendali (intranet, aree riservate), dove gli
utenti sono spesso gruppi di persone che lavorano sugli
stessi dati o sugli stessi documenti.
Content management systems (CMS)
Grazie alle tecnologie CMS è possibile realizzare
velocemente siti o intranet, anche complessi, che includono
l’interattività consentita dalle tecnologie Web 2.0 e
l’accesso alle basi dati aziendali.
ReteNova è in grado di consigliarvi sulla scelta di una
piattaforma CMS (Sitefinity, Umbraco, Orchard…), di definire
e di realizzare l’impianto grafico ed i componenti specifici
necessari.
|