Wat is er nieuw in Windows Workflow Foundation?
Windows Workflow Foundation (WF) in .NET Framework 4 wijzigt verschillende ontwikkelingsparadigma's van eerdere versies. Werkstromen zijn nu eenvoudiger te maken, uit te voeren en te onderhouden en implementeren van een groot aantal nieuwe functies. Zie Migratierichtlijnenvoor meer informatie over het migreren van .NET Framework 3.0- en .NET Framework 3.5-werkstroomtoepassingen voor het gebruik van de nieuwste versie.
Werkstroomactiviteitsmodel
De activiteit is nu de basiseenheid voor het maken van een werkstroom, in plaats van de SequentialWorkflowActivity of StateMachineWorkflowActivity klassen te gebruiken. De Activity-klasse biedt de basisabstractie van werkstroomgedrag. Auteurs van activiteiten kunnen vervolgens CodeActivity implementeren voor basisfunctionaliteit voor aangepaste activiteiten of NativeActivity voor aangepaste activiteitsfunctionaliteit die gebruikmaakt van de breedte van de runtime. Activity is een klasse die wordt gebruikt door auteurs van activiteiten om nieuw gedrag declaratief uit te drukken in termen van andere NativeActivity, CodeActivity, AsyncCodeActivityof DynamicActivity objecten, ongeacht of ze zijn ontwikkeld of opgenomen in de Built-In activiteitsbibliotheek.
Uitgebreide opties voor samengestelde activiteiten
Flowchart is een krachtige nieuwe controlestroomactiviteit waarmee auteurs willekeurige lussen en voorwaardelijke vertakkingen kunnen modelleren. Flowchart biedt een gebeurtenisgestuurd programmeermodel dat voorheen alleen kon worden geïmplementeerd met StateMachineWorkflowActivity. Procedurele werkstromen profiteren van nieuwe stroombeheeractiviteiten die traditionele structuren voor stroombeheer modelleren, zoals TryCatch en Switch<T>.
Uitgebreide Built-In-activiteitsbibliotheek
Nieuwe functies van de activiteitenbibliotheek zijn onder andere:
Nieuwe stroombeheeractiviteiten, zoals DoWhile, Pick, TryCatch, ForEach<T>, Switch<T>en ParallelForEach<T>.
Activiteiten voor het bewerken van lidgegevens, zoals Assign en verzamelingsactiviteiten zoals AddToCollection<T>.
Activiteiten voor het beheren van transacties, zoals TransactionScope en Compensate.
Nieuwe berichtenactiviteiten zoals SendContent en ReceiveReply.
Expliciet activiteitsgegevensmodel
.NET Framework 4 bevat nieuwe opties voor het opslaan of verplaatsen van gegevens. Gegevens kunnen worden opgeslagen in een activiteit met behulp van Variable. Bij het verplaatsen van gegevens in en uit een activiteit worden gespecialiseerde argumenttypen gebruikt om te bepalen welke richtinggegevens worden verplaatst. Deze typen zijn InArgument, InOutArgumenten OutArgument. Zie Windows Workflow Foundation-gegevensmodelvoor meer informatie.
Verbeterde opties voor hosting, persistentie en tracering
.NET Framework 4 bevat persistentieverbeteringen, zoals de volgende:
Er zijn meer opties voor het uitvoeren van werkstromen, waaronder WorkflowServiceHost, WorkflowApplicationen WorkflowInvoker.
Werkstroomstatusgegevens kunnen expliciet worden bewaard met behulp van de Persist-activiteit.
Een host kan een ActivityInstance bewaren zonder het te verwijderen.
Een werkstroom kan niet-persisterende zones specificeren bij het werken met gegevens die niet bewaard kunnen worden, zodat de persistentie wordt uitgesteld totdat de niet-persisterende zone wordt verlaten.
Transacties kunnen met behulp van TransactionScopein een werkstroom worden gestroomd.
Bijhouden is eenvoudiger met behulp van TrackingParticipant.
Voor het bijhouden van het systeemgebeurtenislogboek wordt gebruikgemaakt van EtwTrackingParticipant.
Het hervatten van een werkstroom die nog in behandeling is, wordt nu beheerd met een Bookmark-object.
Eenvoudigere mogelijkheden om WF Designer-ervaring uit te breiden
De nieuwe WF Designer is gebouwd op Windows Presentation Foundation (WPF) en biedt een eenvoudiger model om te gebruiken bij het opnieuw hosten van de WF Designer buiten Visual Studio en biedt ook eenvoudigere mechanismen voor het maken van aangepaste activiteitontwerpers. Zie De ontwerpervaring voor werkstromen aanpassenvoor meer informatie.