Condividi tramite


Novità in Windows Workflow Foundation

Windows Workflow Foundation (WF) in .NET Framework 4 modifica diversi paradigmi di sviluppo dalle versioni precedenti. I flussi di lavoro sono ora più facili da creare, eseguire e gestire e consentono di implementare un host della nuova funzionalità. Per altre informazioni sulla migrazione di applicazioni del flusso di lavoro .NET Framework 3.0 e .NET Framework 3.5 per l'uso della versione più recente, vedere Linee guida sulla migrazione.

Modello di attività del flusso di lavoro

L'attività è ora l'unità di base della creazione di un flusso di lavoro in sostituzione delle classi SequentialWorkflowActivity o StateMachineWorkflowActivity. La classe Activity fornisce l'astrazione di base del comportamento del flusso di lavoro. Gli autori di attività possono implementare CodeActivity per sfruttare la funzionalità di base delle attività personalizzate oppure NativeActivity per sfruttare la funzionalità delle attività personalizzate che usa l'intera gamma del runtime. Activityè una classe usata dagli autori di attività per esprimere nuovi comportamenti dichiarativi in termini di altri NativeActivityoggetti , , AsyncCodeActivityCodeActivityoDynamicActivity, indipendentemente dal fatto che siano sviluppati o inclusi nella libreria attività predefinita.

Opzioni delle attività composite avanzate

Flowchart è una nuova e potente attività del flusso di controllo che consente agli autori di creare modelli di cicli arbitrari e di branching condizionale. Flowchart fornisce un modello di programmazione basato sugli eventi che in precedenza era disponibile solo con StateMachineWorkflowActivity. I flussi di lavoro procedurali traggono profitto dalle nuove attività di controllo del flusso che modellano le strutture tradizionali di controllo del flusso, ad esempio gli oggetti TryCatch e Switch<T>.

Libreria di attività incorporata estesa

Le nuove funzionalità della libreria di attività includono:

Modello di dati delle attività esplicite

.NET Framework 4 include nuove opzioni per l'archiviazione o lo spostamento dei dati. I dati possono essere archiviati in un'attività tramite l'oggetto Variable. Quando si spostano dati all'interno e all'esterno di un'attività, i tipi di argomento specializzati vengono usati per determinare in quale direzione si stanno spostando i dati. Questi tipi sono InArgument, InOutArgument e OutArgument. Per altre informazioni, vedere Windows Workflow Foundation Data Model.

Opzioni migliorate di hosting, persistenza e rilevamento

.NET Framework 4 contiene miglioramenti di persistenza, ad esempio quanto segue:

  • Sono disponibili più opzioni per l'esecuzione dei flussi di lavoro, inclusi gli oggetti WorkflowServiceHost, WorkflowApplication e WorkflowInvoker.

  • I dati relativi allo stato del flusso di lavoro possono essere resi persistenti in modo esplicito usando l'attività Persist.

  • Un host può rendere persistente un oggetto ActivityInstance senza scaricarlo.

  • Un flusso di lavoro può specificare aree di non persistenza durante l'uso di dati che non possono essere resi persistenti in modo che la persistenza venga posticipata finché l'area di non persistenza non viene chiusa.

  • Le transazioni possono essere propagate in un flusso di lavoro tramite l'oggetto TransactionScope.

  • Il rilevamento viene portato a termine più facilmente usando l'oggetto TrackingParticipant.

  • Il rilevamento nel registro eventi di sistema viene fornito tramite l'oggetto EtwTrackingParticipant.

  • La ripresa di un flusso di lavoro in sospeso è ora gestita usando un oggetto Bookmark.

Estensione più semplice dell'esperienza dell'utilità di progettazione di WF

La nuova finestra di progettazione WF è basata su Windows Presentation Foundation (WPF) e offre un modello più semplice da usare durante il rehosting della finestra di progettazione WF all'esterno di Visual Studio e offre anche meccanismi più semplici per la creazione di progettazione attività personalizzate. Per altre informazioni, vedere Personalizzazione dell'esperienza di progettazione del flusso di lavoro.