Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Workflowentwicklung in .NET Framework 4.6.1 verwendet Konzepte, die für einige Entwickler möglicherweise neu sind. In diesem Thema werden einige der Konzepte und deren Implementierung beschrieben.
Workflows und Aktivitäten
Ein Workflow ist eine strukturierte Sammlung von Aktionen, die einen Prozess modelliert. Jede Aktion im Workflow wird als Aktivität modelliert. Ein Host interagiert mit einem Workflow, indem er WorkflowInvoker verwendet, um einen Workflow aufzurufen, als wäre es eine Methode, und WorkflowApplication bietet eine explizite Kontrolle über die Ausführung einer einzelnen Workflowinstanz sowie WorkflowServiceHost für nachrichtenbasierte Interaktionen in Szenarien mit mehreren Instanzen. Da die Schritte des Workflows als eine Hierarchie von Aktivitäten definiert sind, kann gesagt werden, dass die oberste Aktivität in der Hierarchie den Workflow selbst definiert. Dieses Hierarchiemodell ersetzt die expliziten SequentialWorkflow- und StateMachineWorkflow-Klassen aus früheren Versionen. Aktivitäten selbst werden als Sammlungen anderer Aktivitäten (unter Verwendung der Activity Klasse als Basis, in der Regel mithilfe von XAML definiert) entwickelt oder individuell mithilfe der CodeActivity Klasse erstellt, welche die Laufzeit für den Datenzugriff verwenden kann, oder mithilfe der NativeActivity Klasse, die den Umfang der Workflow-Laufzeit für den Aktivitätsautor zugänglich macht. Mit CodeActivity und NativeActivity entwickelte Aktivitäten werden mit CLR-kompatiblen Sprachen wie C# erstellt.
Aktivitätsdatenmodell
Aktivitäten speichern und freigeben Daten mithilfe der in der folgenden Tabelle gezeigten Typen.
| Typ | BESCHREIBUNG |
|---|---|
| Variable | Speichert Daten in einer Aktivität. |
| Streitpunkt | Verschiebt Daten in und aus einer Aktivität. |
| Ausdruck | Eine Aktivität mit einem erhöhten Rückgabewert, der in Argumentbindungen verwendet wird. |
Workflowlaufzeit
Die Workflowlaufzeit ist die Umgebung, in der Workflows ausgeführt werden. WorkflowInvoker ist die einfachste Möglichkeit zum Ausführen eines Workflows. Der Host verwendet WorkflowInvoker für das Folgende:
So rufen Sie einen Workflow synchron auf.
Bereitstellen von Eingabedaten bzw. Abrufen von Ausgabedaten eines Workflows
Hinzufügen von Erweiterungen für Aktivitäten
ActivityInstance ist der threadsichere Proxy, den Hosts für die Interaktion mit der Laufzeit verwenden können. Der Host verwendet ActivityInstance für das Folgende:
Abrufen einer Instanz durch Erstellen oder Laden aus einem Instanzspeicher
Aktivieren von Benachrichtigungen bei Instanzlebenszyklusereignissen
Um die Workflowausführung zu steuern.
Bereitstellen von Eingabedaten bzw. Abrufen von Ausgabedaten eines Workflows
Um eine Workflowfortsetzung zu signalisieren und Werte an den Workflow zu übergeben.
Um Workflowdaten zu persistieren.
Hinzufügen von Erweiterungen für Aktivitäten
Aktivitäten erhalten Zugriff auf die Workflow-Laufzeitumgebung mithilfe der entsprechenden von ActivityContext abgeleiteten Klasse, wie z. B. NativeActivityContext oder CodeActivityContext. Sie verwenden dies zur Lösung von Streitigkeiten und Variablen, zur Planung von Kinderaktivitäten und für viele andere Zwecke.
Dienste
Workflows bieten eine natürliche Möglichkeit, lose gekoppelte Dienste mithilfe von Messagingaktivitäten zu implementieren und darauf zuzugreifen. Messagingaktivitäten basieren auf WCF und sind der primäre Mechanismus zum Abrufen von Daten in und aus einem Workflow. Sie können Messagingaktivitäten zusammen verfassen, um jede Art von Nachrichtenaustauschmuster zu modellieren, die Sie wünschen. Weitere Informationen finden Sie unter Messaging-Aktivitäten. Workflowdienste werden mithilfe der WorkflowServiceHost Klasse gehostet. Weitere Informationen finden Sie unter "Übersicht über Hosting-Workflowdienste". Weitere Informationen zu Workflowdiensten finden Sie unter Workflowdienste
Persistenz, Entladen und langfristige Workflows
Windows Workflow vereinfacht die Erstellung von reaktiven Programmen mit langer Ausführung, indem Folgendes bereitgestellt wird:
Aktivitäten, die auf externe Eingaben zugreifen.
Die Möglichkeit zur Erstellung von Bookmark-Objekten, die von einer Host-Listeneranwendung übernommen werden können.
Die Möglichkeit, die Daten eines Workflows zu speichern, den Workflow zu entladen und ihn dann erneut zu laden und zu reaktivieren, als Reaktion auf die Wiederaufnahme von Bookmark-Objekten in einem bestimmten Workflow.
Ein Workflow führt kontinuierlich Aktivitäten aus, bis keine weiteren Aktivitäten ausgeführt werden sollen, oder bis alle derzeit ausgeführten Aktivitäten auf Eingabe warten. Im letzteren Fall befindet sich der Workflow im Leerlauf. Es ist üblich, dass ein Host Workflows entlädt, die im Leerlauf verlaufen sind, und sie erneut laden, um die Ausführung fortzusetzen, wenn eine Nachricht eingeht. WorkflowServiceHost stellt Funktionen für dieses Feature bereit und stellt eine erweiterbare Unload-Richtlinie bereit. Für Ausführungsblöcke, die flüchtige Zustandsdaten oder andere Daten verwenden, die nicht beibehalten werden können, kann eine Aktivität einem Host mitteilen, dass sie nicht mithilfe des NoPersistHandle beibehalten werden sollten. Ein Workflow kann seine Daten mithilfe der Persist Aktivität auch explizit auf einem dauerhaften Speichermedium speichern.