Con questo post vorrei provare a spiegare cos’è Prism, detto anche Composite Application Library . Prism nasce da un progetto rilasciato nel 2005, la Composite Application Block. Si trattava di una serie di librerie per la creazione di applicazioni client modulari che impiegava come tecnologia base Windows Forms. Non ho impegato molto CAB, e l’ho trovato piuttosto complesso, sia da utilizzare, sia per sviluppare, forse perchè la tecnologia Windows Forms si prestava poco a realizzare ciò che CAB professava, ovvero Separation of Concerns, Modularity, UI Composition.
Dalle “lesson learned” di questo progetto, e dall’osservazione che per sviluppare in modo efficace dei rich-client con WPF fosse necessario un framework robusto, è stato creato Prism. Ciò che ne è uscito è veramente molto interessante.
Si tratta ancora di librerie, fornite dal gruppo Patterns & Practices di Microsoft, assieme a tutto il codice sorgente che lo compone: no “black box”, quindi! Grazie all’impiego del “Prism Framework” è possibile affrontare lo sviluppo di applicazioni piuttosto complesse orientandosi ad un approccio compositivo e modulare, piuttosto che ad un approccio monolitico. Questa attitudine ha diversi pregi, fra i quali la possibilità di suddividere il lavoro in modo molto semplice attraverso vari team di sviluppo, parallelizzando lo sviluppo e riducendo quindi i tempi di rilascio. In un ambiente come quello di WPF, questo stile di sviluppo è praticamente obbligatorio, in quanto la parte grafica DEVE essere nettamente separata dalla parte di programmazione, in quanto spesso i designers non sono programmatori, e viceversa.
L’approccio composito, inoltre, permette il testing isolato delle singole features (Moduli) e consente una chiara separazione dei vari ruoli delle componenti orizzontali dell’applicazione (Logging, Autenticazione). Viene promosso il riutilizzo di codice attraverso i vari moduli e lo sviluppo “ragionato” delle applicazioni. Infine, permette di realizzare interfacce che aggreghino dati provenienti da sistemi legacy, web services, web sites ed altre applicazioni in un unica “user experience.”
Ultime buone notizie: Prism permette di creare sia applicazioni Desktop basate su WPF, sia RIA basate su Silverlight. Questa è una delle cose più interessanti e sicuramente fa intuire come l’investimento nella conoscenza di questa piattaforma pagherà in termini di capacità di sviluppo di applicazioni di nuova generazione da qui a molti anni.
Scaricate Prism qui.