Il viaggio è stato lungo, lunghissimo ma ne è valsa la pena ... almeno dal mio punto di vista.
Evitando i commenti sui ritardi delle ferrovie, con affanno ho agguantato la coincidenza che mi portava da Milano a Mestre, e proprio in quel treno mi hanno tenuto una picevole compagnia i fratelli Damiani.
Poi Andrea Dottor mi ha fatto da Cicerone per le strade, ehm traffico , di Mestre rimbalzando dall'albergo alla sala del meeting.
La sala era piena, intorno alle 35 presenze tra cui anche Davide, numeri "normali" per gli user group ... Ugi è considerato un'eccezione in tutta europa.
Andrea Boschin, gran maestro di XeDotNet , ha dato il via e io ho proseguito fino a tarda serata con tante cose, e mai abbastanza, su Workflow Foundation.
Ho registrato la "solita" delusione per il fatto che il Workflow sequenziale non ha niente a che fare con il Flowchart classico. Quasi tutti coloro con cui chiacchero o spiego WF restano delusi da questa apparente mancanza.
I concetti su cui ho posto maggiormente l'accento sono:
- Workflow è un DSL e usarlo in modo generico con le activity generiche è semplicemente sbagliato by design. Se fosse una infrastruttura per algoritmi generici, sarebbe un linguaggio GPL (Generic Programming Language) che invece non è. I due domini su cui si specializza WF sono il workflow sequenziale, che non ha nulla a che fare con la struttura classica del Flowchart, e le macchine a stati
- Le activity built-in non sono sufficienti e determinanti in un progetto di una certa dimensione. Le custom activity sono invece il cuore di un sistema ben costruito.
- I servizi di Workflow Foundation sono tra le motivazioni più forti per scegliere questo sistema sistema in luogo di una trdizionale logica sviluppata con codice c# o vb.net. In particolare la persistenza e il Tracking accorciano decisamente i tempi di sviluppo di molti progetti.
- WF è conveniente soprattutto quando la software house crea delle activity per verticalizzare il sistema, ossia creare delle activity specializzate per risolvere specifici task di un settore industriale, commerciale, etc. Ad esempio creare le activity per il mondo della logistica, dei trasporti, della sanità, dell'industria tessile, etc.
Fatto lo sforzo iniziale di costruire i mattoncini base nel settore verticale prescelto, Workflow permette di cambiare la struttura logica, adattandola da cliente e cliente, con estrema facilità.
- La personalizzazione della logica si costruisce principalmente in due modi: tenendo in hosting il designer all'interno della propria applicazione per far gestire ad un power user il flusso della logica applicativa con le custom activity pre-costruite; costruendo degli editor di ruleset personalizzati per eseguire cascate di "if <condizione> then <task1> else <task2>" all'interno di una policy.
- La scelta del processo di hosting è fondamentale. Nel meeting ho mostrato tutte le possibili combinazioni con scenari Winform/asp.net/WS/WCF/... La strada che preferisco è ovviamente quella di WF esposto da un servizio WCF, come nell'esempio che ho scorso super-rapidamente.
A mio avvisto questi sono i concetti da tenere a mente. Ovviamente abbiamo visto anche molte altre cose, compresi alcuni tecnicismi, ma le reputo meno importanti perché queste risorse sono più facili a reperirsi in articoli e blog su internet.
A fine serata siamo andati a "condividere il pane oltre che la conoscenza". E poi mi sono divertito a strapazzare un po' il nostro Igor, bonariamente si intende .
Ribadisco i complimenti a tutto lo user group di XeDotNet e in particolare a Andrea Boschin per l'organizzazione. So bene cosa significhi organizzare eventi e gestire una associazione (mica sono sempre stato sui newsgroup ) ed è per questo che allargo i complimenti a tutti coloro che fanno altrettanto in altri user group.