Sviluppare workflow sequenziali con WF

di Giuseppe Marchi, in Windows Workflow Foundation,

Dopo aver parlato dell'importanza dei workflow a stati, presenti all'interno del framework di workflow targato Microsoft, vediamo l'altra parte della medaglia: i workflow sequenziali.

Riprendendo la definizione di workflow visto come un modello di processi umani o di sistema, definito da un insieme di attività, un workflow sequenziale vede queste attività poste una di seguito all'altra in modo tale da formare un flusso di operazioni con un inizio e una fine ben definite, flusso che non può considerarsi concluso fin quando tutte le operazioni poste al suo interno non vengono completate.

Definizione di un workflow sequenziale

E' questo sicuramente un modello di workflow molto più semplice rispetto al modello a stati e lo dimostra sia il facile utilizzo, ma soprattutto i vari contesti applicativi che prediligono sequenze di operazioni al posto di caratteristiche quali la persistenza delle informazioni nel tempo o la gestione delle operazioni tramite cambi di stato.

Come nei workflow a stati, anche in questo caso il flusso di operazioni non deve per forza seguire un percorso ben definito, ma può dividersi in differenti rami creati dal risultato di condizioni poste lungo il tragitto o da attività che dividono l'albero in rami eseguiti in parallelo. Per capirci meglio con un esempio, ognuna delle attività di business dette "Human activities" può essere rappresentata perfettamente attraverso un workflow sequenziale.

Ogni passo di questi flussi, che corrispondono esattamente al modello di esecuzione procedurale, è rappresentato da una singola attività, e allo stesso modo un singolo workflow sequenziale è descritto da un'istanza della classe SequentialWorkflowActivity.

namespace HelloSequentialWorkflow
{
    public sealed partial class Workflow1: SequentialWorkflowActivity
    {
          //...
      }
}

Per essere più precisi però, un workflow all'interno del framework di Windows Workflow Foundation (WF), può essere scritto anche in formato XOML (estensione .xoml). Tale formato permette la creazione di workflow in via totalmente dichiarativa avvalendosi del markup XAML, il nuovo linguaggio introdotto all'interno della versione 3.0 del .NET Framework. In questo modo, un workflow sequenziale, può essere dichiarato con un elemento xml, che deve fare da elemento root del file .xoml rappresentante il workflow stesso:

<SequentialWorkflowActivity
     x:Class="HelloSequentialWorkflow.Workflow2"
     x:Name="Workflow2"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">
   ...
</SequentialWorkflowActivity>

All'interno di tale elemento, possiamo inserire tutti i vari sotto-elementi che rappresentano le attività inserite all'interno del workflow sequenziale.

Nota: Il designer di Visual Studio .NET 2005 crea, a seconda delle nostre preferenze, codice C#/VB.NET o XAML, in base al tipo di workflow che abbiamo deciso di sviluppare e alle varie attività poste al suo interno. E' possibile avvalersi del supporto per lo sviluppo a design-time di oggetti del framework di workflow, scaricando ed installando le estensioni per Visual Studio .NET 2005 di Windows Workflow Foundation. In Visual Studio 2008 il supporto è già incluso.

4 pagine in totale: 1 2 3 4

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti