Nel mio precedente post ho manifestato un certo entusiasmo per il Composite UI Application Block dopo aver scritto una piccola applicazione di prova. Continuando nei test ho fatto crescere il programma e sta diventando qualcosa di serio. La cosa interessante ( IMHO ) è che con uno sforzo pressochè nullo sono riuscito a organizzare una applicazione estendibile con un modello plug-in, e on comandi/eventi e servizi aggiungo nuove funzionalità senza modificare l'applicazione root. Un service aggiuntivo permette ai plug in di decorare i menu e le toolbar con nuovi item, ottenendo così un ulteriore disaccopiamento tra UI e codice. Immaginando di sviluppare un applicazione siffatta in un gruppo di lavoro, tutti i partecipanti allo sviluppo dovrebbero leggere-scrivere un documento centrale in cui si scrivono i servizi disponibili e poi, ogni release, tutti i nuovi componenti sviluppati si mettono insieme e si mette in distribuzione il pacchetto. Niente codice condiviso, solo qualche assembly in cui definire le interfacce base con cui vive la nostra applicazione. Visto che sono orgoglioso della mia nuova creatura posto su qualche screenshot:
Si tratta di una applicazioncina per fare analisi tecnica dei mercati finanziari utilizzando i dati di yahoo finance ( ma ovviamente la fornitura dati è un plug-in :) ). Altre tecnologie utilizzate:NPlot libreria in GNU Public license, SQL Express. Il tutto è stato sviluppato con Visual C# Express.