# Windows Workflow Foundation

Windows Workflow Foundation (WF, früher auch WWF und WinWF) ist eine Programmbibliothek innerhalb der .Net-Framework-Programmierumgebung von Microsoft. Sie dient der einfacheren Entwicklung von programmgesteuerten, komplexen Arbeitsabläufen (engl. Workflows). Diese Art von Software wird auch als Workflow-Anwendungssoftware bezeichnet.
Die Windows Workflow Foundation ermöglicht eine deklarative Programmierung. Hierbei wird eine grafische Beschreibung des Ablaufes erstellt, anstatt ihn in Form von Programmcode zu modellieren. Die WF schafft damit höhere Abstraktionsebenen, die den Entwickler weg von der Codierung und näher zu den fachlichen Geschäftsprozessen rückt.
Dabei unterstützt sie den Entwickler einerseits durch vorgefertigte Klassen und Konstrukte, die typische Knoten und Aktivitäten eines Ablaufdiagramms repräsentieren, und andererseits durch einen grafischen Editor in Microsoft Visual Studio, in dem die Abläufe gestaltet werden können.
Die Windows Workflow Foundation trennt zwischen der Logik des Prozesses und den technisch notwendigen Programmierungen für die einzelnen Arbeitsschritte innerhalb dieser Logik. Eine Aktivität (Terminus: Activity) kann dabei von profanen Anweisungen (z. B. „Drucke Text auf Bildschirm“) bis hin zu komplexen Programmen (z. B. „Berechne kürzesten Weg von A nach B“) reichen. Zudem kann eine Aktivität in sich selbst wieder aus einem Arbeitsablauf mit anderen Aktivitäten bestehen.
Eine laufende Aktivität kann jederzeit unterbrochen und gesichert werden, um zu einem späteren Zeitpunkt wieder aufgenommen zu werden.
Die Windows Workflow Foundation ist ein Teil von .NET ab der Version 3.0. In der Version 4.0 von .NET wurden alle für die Windows Workflow Foundation relevanten Aspekte deutlich überarbeitet und verbessert.

## Nutzen innerhalb der Microsoft-Produktfamilie

Die Windows Workflow Foundation ist ein zentraler Baustein von Microsoft, um seine Software für Geschäftskunden mit einer Schnittstelle für die individuelle Anpassung (Customizing) zu versehen. Folgende Produkte bieten in unterschiedlicher Form eine Unterstützung für die Windows Workflow Foundation an, sei es durch eingebaute Editoren oder eine API zur Integration in andere Workflow-Systeme:
* SharePoint (Ab 2007)
* Microsoft Speech Server (Ab 2007)
* Microsoft Forefront Identity Manager (Ab 2010)
* Microsoft Dynamics CRM (Ab Version 4.0)
* Microsoft Dynamics AX (Ab 2009)
* Team Build (Ab 2010, nur für Build-Prozess)

## Beispiel

Mit der Windows Workflow Foundation kann das gleiche Programm mit verschiedenen Darstellungsmöglichkeiten implementiert werden.
Mögliche Implementierungen eines einfachen Zahlratespiels :
| Sequenzdiagramm | Flussdiagramm | Endlicher Automat |

## Versionen

* .NET 3.0: Erstmalige Veröffentlichung der Windows Workflow Foundation
* .NET 3.5: Erweiterung der Windows Workflow Foundation durch Aktivitäten für Nachrichtenaustausch über die Windows Communication Foundation
* .NET 4.0: Großflächiges Update, mit neuen Funktionen, wie dem Flowchart Designer und den dazugehörenden Aktionen. Alle bisherigen Workflow-Elemente erben nun von der Basisklasse Activity., was das Arbeiten deutlich vereinfacht
* .NET 4.5: Update mit zusätzlichen Möglichkeiten, wie Endlichen Automaten und der Möglichkeit, C# für Ausdrücke zu verwenden.

## Aufnahme

Die Windows Workflow Foundation wurde von Entwicklern und Fachpresse zunächst als eine inhomogene, komplexe und im Vergleich zu anderen Teilen des .NET Frameworks schwer zugängliche Bibliothek angesehen. Ein Hauptgrund hierfür ist, dass ihr Einsatz neben einem guten Verständnis für die theoretische Seite der Prozesssteuerung auch fundierter praktischer Kenntnisse von .NET im Allgemeinen und der Konzepte der Windows Workflow Foundation im Speziellen bedarf. In Version 3.0 hatten Entwickler zudem mit vielen Programmfehlern zu kämpfen. Die Implementation ist bis heute noch nicht fehlerfrei.
Neben der hohen Lernschwelle, bedingt durch die Komplexität, war ein großer Kritikpunkt in der Version 3.0 auch die langsame Verarbeitungsgeschwindigkeit, die Microsoft mit der Version 4.0 aber deutlich erhöhen konnte. Diese Version hat zudem gegenüber ihren Vorgängern deutlich an Qualität und Konsistenz gewonnen.
Trotzdem wird die Windows Workflow Foundation gerade bei Anwendungen in Unternehmen als gutes Werkzeug angesehen, um die Komplexität der Software zu mindern. Sie erreicht dies durch die oben genannte Trennung zwischen dem Ablauf des Geschäftsprozesses und der Codierung der einzelnen Schritte. Dies gilt besonders für Prozesse, die sich durch äußere Umstände oftmals ändern.