Ci sono tante cose che mi piacciono di Windows Workflow Foundation (ed anche qualcuna che non mi piace). Ho affrontato spesso discorsi di varia natura su WF sia in termini di utilizzo che di architettura. Ma oggi voglio parlare di una cosa che trovo estremamente COMODA durante lo sviluppo. In confronto a quello che Workflow Foundation è, è sicuramente una banalità ma spesso, le cose comode si nascondono dietro le banalità
.
Stò lavorando ad un Workflow abbastanza articolato. Non complesso ma articolato. Ci sono varie Activity e di vario tipo. Come buona abitudine, dopo uno schizzo su carta, ho iniziato a disegnare il Workflow nel designer, a spostare activity, ad aggiurgerne e toglierne. Quando sono stato soddisfatto del risultato, ho iniziato a sviluppare ma....se avete già fatto qualcosa con WF, saprete che non basta disegnarlo ma vanno implementate alcune cose, altrimenti non compila (giustamente). Se trascinate una una code activity ad esempio, ne dovrete implementare l'execute_code altrimenti....
Ma se volete implementare, compilare e testare pezzo per pezzo? Come fate?
Come si è sempre fatto: commentando il codice che non compila ovviamente!
Solo che nel designer, questa cosa è estremamente comoda. Vi bsta posizionarvi sull'activity da commentare (che può essere anche una composite activity che ne contiene molte altre), farci destromouse e selezionare la voce Disable. Il risultato sarà (volutamente illeggibile
):
Tutte le activity ombreggiate non verranno eseguite. In questo modo si potrà procedere ad implementare ogni singolo "pezzo", compilarlo e testarlo. Quando tutto funziona, si riabilitano altre activity e si procede.
Il comodo è che così non siete costretti a disegnare il Workflow pezzo per pezzo o ad andare nel codice a trovare le activity da commentare.
Unica eccezione a quanto detto sopra (e non capisco perchè) è per le activity di tipo HandleExternalEvent e CallExternalMethod quando sono incluse in una composite activity. Disabilitando la composite, tutte le activity si disabilitano tranne le due di sopra che, sebbene ombreggiate, vanno disabilitate a parte.
Insomma...non è nulla di eccezionale ma...quando svilupperete Workflow di una certa complessità (perchè lo farete un giorno
), vi renderete conto di quanto sia comodo
.
Good Workflowing 