Sempre in tema di MVVM, continuo i miei pensieri sull’utilizzo di tale pattern. Dall’esperienza che ho accumulato in questi anni di lavoro, vi sono essenzialmente 2 tipi di applicazioni client:
- Le applicazioni “Labor Intensive”
- Le applicazioni “Casual Users”
Nel primo caso ci troviamo di fronte alle classiche applicazioni Windows Forms con treeview, griglie e controlli molto sofisticati. Sono spesso applicazioni scritte da tecnici per tecnici (non necessariamente da programmatori per programmatori, ma anche da programmatori per professionisti o per personale amministrativo); comunque solitamente si tratta di applicazioni dedicate al mondo dell’azienda, mondo in cui si dà per scontato che il personale possa trarre beneficio da interfacce più ricche e sofisticate.
Nel secondo caso ci troviamo di fronte al fenomeno rappresentato dal non sapere chi userà la nostra applicazione, la quale deve obbligatoriamente essere semplice da approcciare ed utilizzare. Dobbiamo in pratica abbassare il livello di complessità dell’applicazione, innalzando contemporaneamente il suo livello di usabilità. In pratica, l’applicazione deve essere “a prova di utente”. Questa caretteristica spesso viene ignorata, a favore di interfacce più ricche ma meno usabili.
In questo scenario, WPF e MVVM rappresentano veramente l’accoppiata vincente. WPF consente di modellare l’applicazione “Casual User” in modo che risulti accattivante e semplice da utilizzare. D’altro canto, MVVM consente di modellare le User Stories in modo estremamente lineare, in modo da arrivare al risultato di formare un vero e proprio percorso che guidi l’utente attraverso l’uso dell’applicazione stessa.
L’unico accorgimento che bisogna avere è il seguente: non bisogna utilizzare controlli “complessi”, ovvero tutta l’accessibilità deve essere “basic”:
- pressione di pulsanti
- selezioni da liste
- navigazione “wizard-style” tra pagine
Un esempio di eccellenza? Prendiamo la dashboard di XBox 360:
- è un’applicazione “Casual-User”;
- deve poter essere usata da tutti, anche da bimbi di 3 anni;
- Il controller permette di selezionare e muoversi attraverso liste e pulsanti;
- Ogni azione di selezione viene istanziata con il pulsante verde, mentre ogni azione di annullamento con il tasto rosso.
- Le azioni portano l’utente a percorrere una sequenza di “pagine” che lo guidano attraverso il percorso di selezione
- Dopo dieci minuti di utilizzo, chiunque sa impiegarla per arrivare ad ottenere il risultato desiderato
Concludo questa osservazione rimarcando il fatto che con MVVM si possono fare ANCHE applicazioni “labor intensive”… ma per le applicazioni “casual user” questo pattern non ha rivali, e l’accoppiata con WPF lo pone su di un livello di manutenibilità e produttività che con Win32 era praticamente inarrivabile.