Secondo me ci stanno abituando un gran bene:
ci sono alcune notifiche all’utente che hanno bisogno di “essere invasive senza essere invasive” :-), probabilmente fine a qualche anno fa una situazione del genere sarebbe stata gestita con un fastidiosissimo MessageBox. Il sistema adottato da IE, e anche da molti altri software, è comodissimo perchè è decisamente ben visibile e fastidioso (quindi attira l’attenzione) ma per nulla invasivo, un MessageBox sarebbe bloccante.
Queste buoni abitudini però possono ritorcersi contro di noi perchè il nostro caro utente fa dei confronti tra il nostro software e quello degli altri e si accorge delle differenze.
Ecco che Wpf diventa un vero santo salvatore perchè la tennologia <cit.> permette cose che altrimenti avrebbero costi decisamente alti. Ma non è solo Wpf che fa la differenza perchè ci vuole anche un sistema di comunicazione degno del suo nome, o il mio MessageBroker (pubblicità occultissima :-))
n.d.r.
Occhio che la gestione dei messaggi via Broker/Event Aggregator non è prerogativa delle Composite UI, la logica è applicabile a qualsiasi tipologia di applicazione, anche non Wpf-based.
Quindi di tutto ciò che ce ne facciamo? Ad esempio questo:
- L’utente esegue una ricerca che ritorna una lista di risultati “detached” nel senso che sono una projection sui dati non delle vere entità di dominio, ma è un dettaglio poco rilevante;
- Sempre l’utente fa un bel doppio click su uno degli elementi e avvia una sessione di editing;
- fa un po’ di modifiche e poi pigia “Save”;
- Adesso i dati della ricerca sono “stale”;
- Il servizio di persistenza però broadcasta al mondo che “qualcosa è cambiato” <cit.>;
- Il ViewModel dei risultati della ricerca reagisce…
…e scopiazza IE :-)
Tutto ciò semplicemente per dire che l’accoppiata buona architettura, M-V-VM in questo caso, e tecnologia per il presentation che spacca, Wpf evidentemente :-), ci possono permettere di realizzare qualcosa che è in linea con la UX a cui i nostri utenti sono abituati facendo si che anche durante l’uso delle nostre applicazioni abbiano una experience di qualità elevata e consistente con quella del resto dell’ecosistema, il tutto con un effort decisamente contenuto.
.m