Einstieg zur Workflow Foundation 4 : Überblick zu Activities

by Gregor Biswanger 10. Dezember 2010 05:49

Bei diesem Blog-Post geht es darum einen groben Überblick von Activities zu gewinnen. Activities sind die Bausteine von Workflows. Somit spielen Sie eine zentrale Rolle. Ein Activity steht als Adapter für eigene Komponenten. Die anschließend wie Puzzleteile grafisch verwendet werden. Activities erwarten auch einen Datenstrom indem Daten hineinfließen (IN) und verarbeitet wieder herausfließen (OUT).

Trotzdem können Activities sich vom äußerlichen Verhalten enorm Unterscheiden. So dass man Sie in unterschiedliche Kategorien einordnen kann:

  • Atomic Unit of Work
  • Asynchronous Unit of Work
  • Long Running Unit of Work
  • Control Flow Activities
  • Infrastructure

 

Atomic Unit of Work

Diese Art von Activities führt die Logik im Workflow Thread synchron aus. Diese ist gegenüber anderen Activities gekapselt.

Eine solche Activity wird von der Basisklasse CodeActivity bereitgestellt.

Asynchronous Unit of Work

Diese Art von Activity ist dem “Atomic Unit of Work” sehr ähnlich. Er unterscheidet sich lediglich mit einer asynchronen Ausführung in einem getrennten Workflow Thread. Diese werden oft für Datenbankabfragen oder Datenzugriffe verwendet. Es ist für kurze Verarbeitungszeiten gedacht. Längere Verarbeitungszeiten die Tagelang andauern sollten vermieden werden.

Eine solche Activity wird von der Basisklasse AsyncCodeActivity bereitgestellt.

Long Running Unit of Work

Diese Activity ist für längere Zeiträume konzeptioniert. Oft spielt hierbei eine Abhängichkeit zu einer menschlichen Interaktion, die Tage andauern kann. Das kann zum Beispiel eine Fortsetzung der Bestellung sein. Dieses Activity wartet diesen Zeitraum ab und besetzt nicht den bestehenden Workflow Thread. Somit können in der Zwischenzeit auch andere Activities weiter agieren.

Eine solche Activity wird von der Basisklasse NativeActivity bereitgestellt.

Control Flow Activities

Diese Art von Activities kümmert sich um das Ausführen und Verwaltung von anderen Activities die in ihnen als Kinderelemente enthalten sind. Das von der WF4 bereitgestellte Sequence Activity ist eines von Ihnen. Die Verwaltung läuft zudem mit einem integrierten Zeitplan (schedule).

Eine solche Activity wird von der Basisklasse NativeActivity bereitgestellt.

 

Die Daten für Activities

Es gibt unterschiedliche Arten um Daten für Activities bereitzustellen und damit zu arbeiten. Für den Informationsaustausch unter einem Workflow werden Argumente (Arguments) und Variablen (Variables) verwendet.

 

Arguments

Argumente dienen als Input und Output für Activities und dienen als öffentliche Schnittstelle für deren Informationsaustausch. Input Argumente bestehen oft aus Parameter die beim starten der Workflow überreicht werden, oder Sie werden für eine Kommunikation unter den Activities selbst verwendet. Die generische Klasse InArgument<T> definiert Input Argumente.

Der Output steht für das verarbeitete Ergebnis das vom Activity geliefert wird. Der Output kann dann für eine weitere Verarbeitung an das nächste Activity überreicht werden oder durch den Workflow-Host den Wert an den Source-Code zurück geben. Die generische Klasse OutArgument<T> definiert Output Argumente.

 

(Beispiel zu Arguments: Einstieg zur Workflow Foundation 4 : Parameter übergeben)

 

Variables

Variablen dienen für Activities als interner Speicher. Daher können Variablen nur für Activities gesetzt werden. Bei “Control Flow Activities” können Variablen dann auch für Ihre Kinderelemente, dem nach für alle enthaltenen Activities dienen. Oft reicht allerdings bei der Implementierung ein Feld aus (bsp.: private _variable;). Die generische Klasse Variable<T> definiert eine Variable im Workflow-Thread.

(Beispiel mit der Verwendung von Variablen: Einstieg zur Workflow Foundation 4 : Activity selbst schreiben)



Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
kick it on dotnet-kicks.de

Kommentare

Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Über den Autor

Gregor Biswanger

Microsoft MVP für Client App Dev
XING

Gregor Biswanger (Microsoft MVP für Client App Dev) ist freier Consultant, Trainer, Autor und Speaker.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, agilen Prozessen und XAML. Er veröffentlichte vor kurzem seine DVD´s mit Video-Trainings zum Thema „Meine erste Windows 8 App“, „Windows Store Apps mit XAML und C#“ und „WPF 4.5 und Silverlight 5“ bei Addison-Wesley von video2brain.


Biswanger ist auch im Auftrag von Intel GmbH als Technologieberater für die Intel Developer Zone aktiv und ist Leader bei der Ingolstädter .NET Developers Group (INdotNET). 

 

Video über mich:
http://www.youtube.com/watch?v=mx_6SiiLxjk


Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)