Panoramica sul flusso di lavoro di Windows
Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.
Un flusso di lavoro è un set di unità elementari chiamate attività che sono archiviate come un modello che descrive un processo reale. I flussi di lavoro forniscono un metodo per descrivere l'ordine di esecuzione e le relazioni dipendenti tra porzioni di lavoro di breve o lunga durata. Questo lavoro passa attraverso il modello dall'inizio alla fine e le attività possono essere eseguite da persone o da funzioni del sistema.
Motore di runtime del flusso di lavoro
Ogni istanza del flusso di lavoro in esecuzione viene creata e gestita da un motore di runtime in-process con il quale il processo host interagisce tramite uno degli elementi seguenti:
Un oggetto WorkflowInvoker, che richiama il flusso di lavoro come metodo.
Un oggetto WorkflowApplication per il controllo esplicito sull'esecuzione di una singola istanza del flusso di lavoro.
Un oggetto WorkflowServiceHost per le interazioni basate su messaggi in scenari con più istanze.
Ognuna di queste classi esegue il wrapping del runtime di attività principale rappresentato come oggetto ActivityInstance responsabile dell'esecuzione di attività. In un dominio dell'applicazione possono essere in esecuzione contemporaneamente diversi oggetti ActivityInstance.
Ognuno dei tre precedenti oggetti di interazione host viene creato da una struttura ad albero delle attività definita programma di flusso di lavoro. Utilizzando questi tipi o un host personalizzato che esegue il wrapping dell'oggetto ActivityInstance, i flussi di lavoro possono essere eseguiti all'interno di un qualsiasi processo di Windows, incluse applicazioni console, applicazioni basate su form, servizi per Windows, siti Web ASP.NET e servizi per Windows Communication Foundation (WCF).
Interazione tra componenti del flusso di lavoro
Nel diagramma seguente viene illustrata la modalità di interazione tra i componenti del flusso di lavoro.
Nel diagramma precedente il metodo Invoke della classe WorkflowInvoker viene utilizzato per richiamare diverse istanze del flusso di lavoro. La classe WorkflowInvoker viene utilizzata per flussi di lavoro semplici che non richiedono la gestione da parte dell'host. Tali flussi di lavoro (ad esempio la ripresa Bookmark) devono essere eseguiti utilizzando invece il metodo Run. Non è necessario attendere il completamento di un'istanza del flusso di lavoro prima di richiamare un altro; il motore di runtime supporta l'esecuzione simultanea di più istanze del flusso di lavoro. Di seguito sono riportati i flussi di lavoro richiamati:
Attività Sequence contenente un'attività WriteLine figlio. Un oggetto Variable dell'attività padre viene associato a un oggetto InArgument dell'attività figlio. Per ulteriori informazioni su su variabili, argomenti e associazione, vedere Variabili e argomenti.
Attività personalizzata denominata ReadLine. Un oggetto OutArgument dell'attività ReadLine viene restituito al metodo Invoke chiamante.
Attività personalizzata che deriva dalla classe astratta CodeActivity. L'oggetto CodeActivity può accedere a funzionalità in fase di esecuzione (ad esempio rilevamento e proprietà) tramite l'oggetto CodeActivityContext disponibile come parametro del metodo Execute. Per ulteriori informazioni su queste funzionalità in fase di esecuzione, vedere Rilevamento e traccia del flusso di lavoro e Proprietà di esecuzione del flusso di lavoro.
Vedere anche
Altre risorse
BizTalk Server 2006 or WF? Choosing the Right Workflow Tool for Your Project