Übersicht über Windows-Workflow
Bei einem Workflow handelt es sich um eine Reihe von elementaren Einheiten (so genannten Aktivitäten), die als den tatsächlichen Prozess beschreibendes Modell gespeichert sind. Mit Workflows können die Reihenfolge der Ausführung sowie abhängige Beziehungen zwischen kurz- und langfristiger Arbeit beschrieben werden. Diese Arbeit durchläuft das Modell vom Anfang bis zum Ende, und Aktivitäten werden unter Umständen von Personen oder Systemfunktionen ausgeführt.
Workflowruntime-Engine
Jede ausgeführte Workflowinstanz wird von einer prozessinternen Runtime-Engine erstellt und verwaltet, mit dem der Hostprozess durch eines der folgenden Objekte interagiert:
Ein WorkflowInvoker-Objekt, der den Workflow wie eine Methode aufruft.
Ein WorkflowApplication-Objekt für die explizite Kontrolle über die Ausführung einer einzelnen Workflowinstanz.
Ein WorkflowServiceHost-Objekt für meldungsbasierte Interaktionen in Szenarien mit mehreren Instanzen.
Jede dieser Klassen umschließt die Kernaktivitätslaufzeit, die als ActivityInstance dargestellt wird und für die Aktivitätsausführung zuständig ist. Es kann mehrere ActivityInstance-Objekte innerhalb einer Anwendungsdomäne geben, die gleichzeitig ausgeführt werden.
Jede der vorausgehenden drei Hostinteraktionsobjekte wird aus einer Aktivitätsstruktur erstellt, die als Workflowprogramm bezeichnet wird. Mithilfe dieser Typen oder eines benutzerdefinierten Hosts, der ActivityInstance umschließt, können Workflows innerhalb eines beliebigen Windows-Prozesses ausgeführt werden, einschließlich Konsolenanwendungen, formularbasierten Anwendungen, Windows Services, ASP.NET-Websites und Windows Communication Foundation (WCF)-Diensten.
Workflowkomponenten im Hostprozess
Interaktion zwischen Workflowkomponenten
Im folgenden Diagramm wird dargestellt, wie Workflowkomponenten miteinander interagieren.
Im vorangehenden Diagramm wird die Invoke-Methode der WorkflowInvoker-Klasse verwendet, um mehrere Instanzen eines Workflows aufzurufen. WorkflowInvoker wird für einfache Workflows verwendet, die keine Verwaltung durch den Host benötigen. Workflows, die eine Verwaltung durch den Host erfordern (z. B. eine Bookmark-Wiederaufnahme), müssen stattdessen mithilfe von Run ausgeführt werden. Es ist nicht erforderlich, auf den Abschluss einer Workflowinstanz zu warten, bevor ein weiterer Workflow aufgerufen wird. Die Runtime-Engine unterstützt die Ausführung mehrerer Workflowinstanzen gleichzeitig. Die aufgerufenen Workflows sind:
Eine Sequence-Aktivität, die eine untergeordnete WriteLine-Aktivität enthält. Variable der übergeordneten Aktivität wird an InArgument der untergeordneten Aktivität gebunden. Weitere Informationen zu Variablen, Argumenten und Bindung finden Sie unter Variablen und Argumente.
Eine benutzerdefinierte Aktivität mit dem Namen
ReadLine
. Ein OutArgument derReadLine
-Aktivität wird an die aufrufende Invoke-Methode zurückgegeben.Eine benutzerdefinierte Aktivität, die von der abstrakten CodeActivity-Klasse abgeleitet wird. CodeActivity kann auf Laufzeitfunktionen (z. B. Nachverfolgung und Eigenschaften) mit dem CodeActivityContext zugreifen, der als Parameter über die Execute-Methode verfügbar ist. Weitere Informationen zu diesen Laufzeitfeatures finden Sie unter Workflownachverfolgung und Ablaufverfolgung und Workflowausführungseigenschaften.