Il design di un’applicazione è sempre importante. Nel caso di sviluppo modulare con Prism, diventa ancora più importante e può definire la buona riuscita o il fallimento dell’applicazione stessa.
Vi sono essenzialmente due aspetti di design da tenere in considerazione:
- Separazione delle attività
- Progettazione degli “spazi operativi”
Con separazione delle attività, intendiamo la separazione e l’isolamento di alcune funzionalità all’interno di un modulo, piuttosto che all’interno di un altro, oppure la progettazione di componenti condivisi tra i vari moduli. Per esempio, il servizio di accesso ai dati ad una sorgente dati condivisa tra i vari moduli dovrebbe essere progettato per essere condiviso tra i vari moduli, mentre se un particolare modulo deve accedere a dei dati di un legacy database, probabilmente sarebbe meglio isolare tale funzionalità all’interno del modulo.
La separazione delle attività consiste anche nella separazione delle funzionalità di interazione uomo-macchina, ovvero nella suddivisione delle azioni a disposizione dell’utente. Queste azioni potrebbero essere la pressione di un tasto (Command) lo scorrimento e la selezione di un record (Binding), la modifica di dati di una entità ed il suo salvataggio.
Assieme a tutte queste azioni, dovrebbero essere definiti anche gli eventi pubblicati da ciascuno di questi “micro-programmi”, in modo che possa essere efficientemente implementata una collaborazione tra i micro-programmi stessi.
La progettazione degli “spazi operativi” è altrettanto importante in un’applicazione modulare, e consiste nella definizione di un layout operativo efficace, che consenta una interazione uomo-macchina facile ed intuitiva. Questa progettazione deve essere realizzata con in mente l’usabilità, e la modularità ci può venire in aiuto; pensate infatti ai moduli come una sorta di mattoncini Lego che possano essere assemblati “a piacimento” in modo da ottenere il risultato desiderato.
Nell’incontro di Venerdì 7 Maggio a Mestre presso il Novotel Castellana, con XeDotNet, tratterò questi temi. Se siete interessati allo sviluppo modulare delle applicazioni client con WPF e Silverlight non potete mancare!