Dopo aver trattato i concetti di design, cerchiamo di capire quali sono gli aspetti prettamente tecnici che contraddistinguono una Prism Application. Quando si realizza una Prism Application è infatti necessario seguire un “iter” piuttosto ben formalizzato, che consiste nei seguenti passi:
- Creazione del progetto di Shell
- Definizione della “Shell Window”
- Definizione delle regioni contenitore
- Creazione del BootStrapper
- Definizione dell’infrastruttura del progetto
- Definizione degli Eventi condivisi e dei Comandi Condivisi
- Creazione di un Modulo
- Creazione della View
- Creazione del ViewModel
- Creazione dei Servizi
Il passo 3 può essere iterato al bisogno, ovvero se ci servono 3 moduli, dovremo andare a realizzare solo quelli, e non la shell ed il bootstrapper. In pratica il concetto di applicazione composita è molto simile a quello rappresentato dai più famosi CMS, presenti ormai da anni sul web (Sharepoint, DotNetNuke, PHPNuke, RainbowPortal, etc.).
Quindi I concetti tecnici di cui ci occuperemo sono i seguenti:
- Shell, per la creazione del progetto ospite e dell’aspetto grafico
- Bootstrapper, per la configurazione e lo startup
- Modulo, per l’infrastruttura e l’offerta delle funzionalità end-user
- Servizi, per accedere a sorgenti dati (locali o remote) o implementare servizi in genere (logging, autenticazione etc.)
- View e ViewModel, per un approccio Model-View-ViewModel alla creazione dei moduli
- Eventi, per comunicare tra moduli
- Comandi, per intervenire sul comportamento dei moduli
Uno dei concetti chiave di Prism è la separazione dei compiti. Ogni concetto, pertanto, può essere studiato e compreso singolarmente, ma singolarmente non porta da nessuna parte: solo l’unione di tutti i concetti ci consentirà di creare un’intera Modular Application. Nei prossimi post affronteremo i vari concetti e cercheremo di comprendere come ciascuno si incastri in una visione più generale che permette di creare applicazioni modulari.