Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Werkstroomontwikkeling in .NET Framework 4.6.1 maakt gebruik van concepten die mogelijk nieuw zijn voor sommige ontwikkelaars. In dit onderwerp worden enkele concepten beschreven en hoe ze worden geïmplementeerd.
Werkstromen en activiteiten
Een werkstroom is een gestructureerde verzameling acties die een proces modelleert. Elke actie in de werkstroom wordt gemodelleerd als een activiteit. Een host communiceert met een werkstroom door WorkflowInvoker een werkstroom aan te roepen alsof het een methode betreft, WorkflowApplication voor expliciete controle over de uitvoering van een enkel werkstroomexemplaar, en WorkflowServiceHost voor interacties op basis van berichten in scenario's met meerdere exemplaren. Omdat de stappen van de werkstroom zijn gedefinieerd als een hiërarchie van activiteiten, kan de bovenste activiteit in de hiërarchie worden gezegd om de werkstroom zelf te definiëren. Dit hiërarchiemodel krijgt de plaats van de expliciete SequentialWorkflow en StateMachineWorkflow klassen uit eerdere versies. Activiteiten zelf worden ontwikkeld als verzamelingen van andere activiteiten (met behulp van de Activity klasse als basis, meestal gedefinieerd met behulp van XAML) of worden aangepast gemaakt met behulp van de CodeActivity klasse, die de runtime voor gegevenstoegang kan gebruiken, of door de NativeActivity klasse te gebruiken, die de breedte van de werkstroomruntime blootstelt aan de auteur van de activiteit. Activiteiten die zijn ontwikkeld met behulp van CodeActivity en NativeActivity worden gemaakt met behulp van CLR-compatibele talen zoals C#.
Activiteitsgegevensmodel
Activiteiten slaan gegevens op en delen met behulp van de typen die worden weergegeven in de volgende tabel.
| Typologie | Beschrijving |
|---|---|
| Veranderlijk | Slaat gegevens op in een activiteit. |
| Argumentatie | Hiermee verplaatst u gegevens naar en van een activiteit. |
| Uitdrukking | Een activiteit met een verhoogde retourwaarde die wordt gebruikt in argumentbindingen. |
Workflow-omgeving
De werkstroomruntime is de omgeving waarin werkstromen worden uitgevoerd. WorkflowInvoker is de eenvoudigste manier om een werkstroom uit te voeren. De host gebruikt WorkflowInvoker voor het volgende:
Een werkstroom synchroon aanroepen.
Voor het bieden van invoer aan, of het ophalen van uitvoer uit een werkstroom.
Extensies toe te voegen die door activiteiten gebruikt worden.
ActivityInstance is de thread-veilige proxy die hosts kunnen gebruiken om te communiceren met de runtime. De host gebruikt ActivityInstance voor het volgende:
Een instantie verkrijgen door deze te maken of te laden vanuit een instantieopslag.
Om op de hoogte te worden gesteld van levenscyclusgebeurtenissen van exemplaren.
Werkstroomuitvoering beheren.
Voor het bieden van invoer aan, of het ophalen van uitvoer uit een werkstroom.
Om een vervolg van een werkstroom aan te geven en waarden door te geven aan de werkstroom.
Werkstroomgegevens behouden.
Extensies toe te voegen die door activiteiten gebruikt worden.
Activiteiten krijgen toegang tot de workflow-runtimeomgeving door gebruik te maken van de juiste afgeleide klasse, zoals ActivityContext of NativeActivityContext. Ze gebruiken dit voor het oplossen van argumenten en variabelen, voor het plannen van kinderactiviteiten en voor veel andere doeleinden.
Diensten
Werkstromen bieden een natuurlijke manier om losjes gekoppelde services te implementeren en te openen met behulp van berichtenactiviteiten. Berichtenactiviteiten zijn gebaseerd op WCF en zijn het primaire mechanisme dat wordt gebruikt om gegevens in en uit een werkstroom te halen. U kunt berichtenactiviteiten samenstellen om elk gewenst type berichtuitwisselingspatroon te modelleren. Zie Berichtenactiviteiten voor meer informatie. Werkstroomservices worden gehost met behulp van de WorkflowServiceHost klasse. Zie Overzicht hostingwerkstroomservices voor meer informatie. Zie Workflow Services voor meer informatie over werkstroomservices
Persistentie-, los- en Long-Running-werkstromen
Windows Workflow vereenvoudigt het ontwerpen van langlopende reactieve programma's door het volgende te bieden:
Activiteiten die toegang hebben tot externe invoer.
De mogelijkheid om Bookmark objecten te maken die door een host-listener kunnen worden voortgezet.
De mogelijkheid om de gegevens van een werkstroom op te slaan en deze uit te laden en vervolgens opnieuw te laden en opnieuw te activeren bij hervatting van Bookmark objecten in een bepaalde werkstroom.
Een werkstroom voert continu activiteiten uit totdat er geen activiteiten meer zijn die moeten worden uitgevoerd of totdat alle momenteel uitgevoerde activiteiten wachten op invoer. In deze laatste staat is de werkstroom niet actief. Het is gebruikelijk dat een host werkstromen die niet actief zijn gegaan, verwijdert en deze opnieuw laadt om door te gaan met de uitvoering wanneer een bericht binnenkomt. WorkflowServiceHost biedt functionaliteit voor deze functie en biedt een uitbreidbaar beleid voor het uitladen. Voor uitvoeringsblokken die vluchtige statusgegevens of andere gegevens gebruiken die niet kunnen worden bewaard, kan een activiteit aangeven aan een host dat deze niet mag worden bewaard met behulp van de NoPersistHandle. Een werkstroom kan de gegevens ook expliciet op een duurzaam opslagmedium bewaren met behulp van de Persist activiteit.