Un concetto base in Workflow Foundation è quello di Activity che definisce una particolare azione da eseguire durante l'esecuzione di un workflow.

In .Net 3.0 è presente già una ricca libreria di Activity tra cui le due speciali SequentialWorkflowActivity e StateMachineWorkflowActivity che

di fatto rappresentano le due tipologie di workflow supportate.

Per definire un proprio workflow basta semplicemente estendere una di queste due classi, ad esempio:

class MyFirstWorkflow : SequentialWorkflowActivity

{

}

Un SequentialWorkflowActivity è anche un CompositeActivity cioè un Activity che può contenere altre Activity,

possiamo così descrivere cosa deve fare il workflow attraverso la definizione di Activity in esso contenute.

Ad esempio possiamo usare una CodeActivity cioè un activity che non fa altro che eseguire un pezzo di codice.

class MyFirstWorkflow : SequentialWorkflowActivity

{

public MyWorkflow()

{

CodeActivity code1 = new CodeActivity();

code1.ExecuteCode += delegate

{

Console.WriteLine( "execute activity" );

};

this.Activities.Add( code1 );

}

}

Adesso non ci resta che eseguire il workflow e per farlo ci serviremo del WorkflowRuntime, semplicemente:

WorkflowRuntime runtime = new WorkflowRuntime();

WorkflowInstance workflow = runtime.CreateWorkflow( typeof( MyFirstWorkflow ) );

workflow.Start();

Facile no?