Blog utile?

Se desiderate ricevere in email gli abstract dei miei post, ho attivato un servizio che trovate qui oppure nella colonna a sinistra del mio blog sotto il logo della mia certificazione.

E' una semplice procedura: inserite l'email, digitate il codice di controllo antispam e fino alla fine dei tempi riceverete una mail ogni volta che pubblicherò un post.

Poi, se proprio non ce la fate, potete sempre eliminare la sottoscrizione... :-)

Grazie!

L'arte di lavorare con Workflow Foundation - #1

Dopo aver definito e disegnato un workflow, lo poniamo in esecuzione. Immaginiamo di aver creato un workflow che ci permette di prendere le prenotazioni per mandare un nostro pony express in giro per la città a fare consegne.

Il nostro workflow tiene conto dell'orario di arrivo della richiesta, quindi gira al pony l'elenco, in ordine di arrivo, degli indirizzi a cui recarsi. Se volessimo rendere più ottimizzato il workflow potremmo inserire uno step intermedio (activity) che mette in ordine di vicinanza/lontananza gli indirizzi e fornisce una stima del tempo di arrivo del pony al cliente.

Il workflow è in esecuzione, ma grazie alla classe WorkflowChanges possiamo aggiungere a runtime la nuova activity senza dover interrompere nulla.

InvokeWorkflowActivity newWorkflow = new InvokeWorkflowActivity(); WorkflowChanges changes = new WorkflowChanges(this); Type type = typeof(ReservationWorkflow); newWorkflow.Name = "NewReservationWF"; newWorkflow.TargetWorkflow = type; DelayActivity delay = changes.TransientWorkflow.Activities["delay1"] as DelayActivity; delay.Parent.Activities.Add(newWorkflow); this.ApplyWorkflowChanges(changes);

Ci sono però delle restrizioni riguardo ai cambiamenti che possono essere compiuti su un workflow in esecuzione:

  • Le activities possono essere aggiunte o rimosse da un WF ma le proprietà di una attività esistente (regole escluse) non possono essere modificate;
  • Una activity composita non può avere al suo interno delle sotto-attività aggiunte o rimosse dinamicamente;
  • Una activity con una o più istanze nello stato di Executing, Fault, Canceling o Compensating non può essere rimossa da una istanza di un workflow in esecuzione.

Nei prossimi post scruteremo, con il passare del tempo sempre più in dettaglio, le numerose features di questo nuovo 'framework nel framework'.

[OT] Google Maps non si accontenta...

...e arriva a farti la foto.

Francamente mi sembra che iniziano ad esagerare.

Fonte: La Repubblica

«gennaio»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910