Windows Workflow Foundation im .Net Framework 3.0

Seite 3: Mit der IDE konstruieren

Inhaltsverzeichnis

Ein Workflow zur Flugbuchung im WF-Designer in Visual Studio 2005 (Abb. 2).

Zur grafischen Modellierung der Workflows existiert ein kostenloses Add-in für Visual Studio 2005 mit dem Namen „Visual Studio 2005 Extensions for Windows WF“. Zentrales Element der Extensions ist ein grafischer Designer (siehe Abbildung 2). Ebenso enthalten sind Projekt- und Elementvorlagen. Im Gegensatz zu den VS-Erweiterungen für WPF und WCF liegt die WF-Erweiterung als endgültige Version vor. Der Designer ist Teil der WF-Bibliothek selbst; daher können Entwickler die Workflows auch in eigenen Anwendungen anzeigen und deren Erstellung durch Endanwender ermöglichen.

VS gestattet das Debugging inklusive der schrittweisen Abarbeitung von Workflows. Hier kann der Entwickler einen Haltepunkt für jede Aktivität im Diagramm festlegen. Zusätzlich kann er beliebig viele Haltepunkte im Programmcode festlegen. Die jeweils aktuelle Aktivität beziehungsweise aktuelle Codezeile stellt die IDE mit einem gelben Rahmen dar, übliche Debugger-Fenster (Lokalfenster, Direktfenster) sind verfügbar.

Das Windows 6.0 SDK umfasst zwei Kommandozeilenwerkzeuge zur Workflow-Kompilierung (wfc.exe) und Generierung von typisierten Datenaustauschaktivitäten (wcirca.exe).

WF bietet zwei Grundtypen von Aktivitäten: einfache „Baseclass Activity“ und zusammengesetzte „Baseclass CompositeActivity“. Letztere können andere einfache oder zusammengesetzte Aktivitäten enthalten. Durch das Zusammensetzen entsteht ein Aktivitätsbaum. Damit entspricht das WF-Objektkonzept dem Konzept von WinForms: Aktivitäten entsprechen den Steuerelementen in WinForms, und genau wie Formular eine Spezialisierung eines Steuerelements darstellt, ist Workflow eine spezielle Form einer Aktivität.

Die von Microsoft in der ersten Version von WF mitgelieferten Aktivitäten sind eher einfach gehalten und bilden aus Programmiersprachen bekannte Grundkonstrukte ab (siehe gleichnamige Tabelle).

Neben der klassischen datenbankbasierten Transaktion kennt WF das Konzept der Kompensation. Es beinhaltet, dass bei einem langlebigen Workflow, bei dem eine Datenbanktransaktion nicht so lange offen gehalten werden kann, auf die Datenbanktransaktion verzichtet wird. Im Fehlerfall versucht man die ausgeführten Schritte in umgekehrter Reihenfolge rückgängig zu machen.

Wer mit diesen Grundelementen nicht weiterkommt, kann über CodeActivity beliebigen .Net-Code im Rahmen des Workflow ausführen. Ziel ist es aber, den direkten Einsatz von Code im Workflow auf ein Minimum zu reduzieren. Da hilft es, dass man eigene Aktivitäten mit höherem Abstraktionsniveau entwickeln kann, die direkt Geschäftsprozesse wie Datenerfassung, Prüfung, Genehmigung und Ausführen repräsentieren.