Windows Workflow Foundation ( WF [2] ) es una tecnología de Microsoft que proporciona una API , un motor de flujo de trabajo en proceso y un diseñador rehospedable para implementar procesos de larga duración como flujos de trabajo dentro de aplicaciones .NET . La última versión de WF se lanzó como parte de la versión 4.5 de .NET Framework y se la conoce como (WF45). [3]
Un flujo de trabajo, tal como se define aquí, es una serie de pasos o fases de programación distintos. Cada paso se modela en WF como una actividad. .NET Framework proporciona una biblioteca de actividades (como WriteLine, una actividad que escribe texto en la consola u otra forma de salida). También se pueden desarrollar actividades personalizadas para obtener funciones adicionales. Las actividades se pueden ensamblar visualmente en flujos de trabajo mediante el Diseñador de flujo de trabajo, una superficie de diseño que se ejecuta dentro de Visual Studio . El diseñador también se puede alojar en otras aplicaciones.
Al encapsular la funcionalidad de programación en las actividades, el desarrollador puede crear aplicaciones más manejables; cada componente de ejecución se puede desarrollar como un objeto Common Language Runtime cuya ejecución será administrada por el entorno de ejecución del flujo de trabajo.
Versiones de Workflow Foundation
Workflow Foundation se lanzó por primera vez en la versión 3 de .NET Framework [4] y utiliza principalmente los espacios de nombres System.Workflow.Activities, System.Workflow.ComponentModel y System.Workflow.Runtime. Los flujos de trabajo de la versión 3 se crearon utilizando el modelo secuencial (en el que las actividades se ejecutan en orden, y la finalización de una actividad conduce a la siguiente) o el modelo de máquina de estados (en el que las actividades se ejecutan en respuesta a eventos externos). Microsoft SharePoint 2007 utiliza WF 3.
En .NET Framework 3.5, se introdujeron actividades de mensajería que integraban Workflow con Windows Communication Foundation (WCF). Con la nueva ReceiveActivity, los flujos de trabajo podían responder a los mensajes WCF entrantes. Las nuevas características de Workflow en la versión 3.5 utilizan el espacio de nombres System.ServiceModel. Microsoft SharePoint 2010 utiliza WF 3.5.
En .NET Framework 4, Windows Workflow Foundation se actualizó ampliamente y se agregaron nuevas funciones, como Data Contract Resolver, Flowchart y otras actividades de control de flujo. El flujo de trabajo en .NET 4 utiliza el espacio de nombres System.Activities. En particular, ya no existe un objeto Workflow Runtime en la versión 4; los flujos de trabajo se ejecutan directamente mediante WorkflowApplication o WorkflowInvoker.
Las actividades creadas en versiones anteriores de .NET Framework se pueden ejecutar mediante flujos de trabajo de .NET 4 mediante la actividad Interop.
Las futuras versiones y lanzamientos de Windows Phone incluirán una máquina de estados actualizada y una actualización dinámica.
Escenarios de uso del flujo de trabajo
Windows Workflow Foundation se utiliza para crear aplicaciones que ejecutan un proceso empresarial ordenado, como los pasos necesarios para aprobar un documento, contratar a un candidato para un puesto o realizar una compra. Estos procesos pueden ejecutarse en un breve período de tiempo, pero suelen ser de larga duración, en los que la aplicación deberá apagarse para conservar memoria entre los pasos. Normalmente, los procesos empresariales que se modelan como flujos de trabajo tienen las siguientes características:
Tener una lógica comercial específica que pueda necesitar cambiar periódicamente, como el cálculo de impuestos o envío necesario para determinar el precio de compra de un artículo, o la serie de pasos necesarios para aprobar una compra, contratación o proceso.
Tener varias entradas en el flujo de trabajo que pueden surgir con horas o días de diferencia
Tiene una lógica empresarial avanzada que podría requerir que la ejecución del flujo de trabajo recorra diferentes ramas dependiendo de diferentes circunstancias.
Necesita interactuar con otros sistemas, como una base de datos, un sitio web u otra aplicación cliente o servicio web.
Creación de flujos de trabajo
Los flujos de trabajo se crean definiéndolos en lenguaje de marcado de aplicaciones extensible XAML mediante el diseñador de flujos de trabajo o ensamblándolos programáticamente en un lenguaje .NET como C# o VB.NET. Si se utiliza el diseñador, las actividades se ensamblan en el lienzo del diseñador de flujos de trabajo arrastrándolas desde la caja de herramientas. Los argumentos y las variables del flujo de trabajo también se crean y asignan dentro del diseñador. Si un flujo de trabajo se ensambla en código, las actividades se instancian como otros objetos CLR y se ensamblan en colecciones de una sola actividad principal, generalmente una secuencia o un diagrama de flujo. La actividad principal única se ejecuta luego mediante WorkflowApplication o WorkflowInvoker y se ejecuta como un flujo de trabajo. El término "Flujo de trabajo" aquí generalmente se refiere a la actividad raíz que ejecuta el host. Los flujos de trabajo pueden utilizar actividades listas para usar y actividades personalizadas. Las actividades listas para usar incluyen actividades de control de flujo como DoWhile, actividades relacionadas con diagramas de flujo como FlowDecision, actividades de mensajería WCF como Send y actividades primitivas que realizan tareas simples como Assign y WriteLine. Las actividades personalizadas son objetos CLR creados por el usuario que se derivan de la clase System.Activities.Activity y proporcionan una funcionalidad declarativa al permitir que el desarrollador defina el comportamiento de ejecución de la actividad en el código. Las actividades personalizadas pueden beneficiarse de tener un diseñador de actividades personalizado asociado a ellas para mejorar la experiencia de creación visual en el IDE de Visual Studio.
Libros sobre flujo de trabajo
.NET Framework 3.0 y 3.5
Dharma Shukla, Bob Schmidt: Fundamentos básicos del flujo de trabajo de Windows , Addison-Wesley Professional, 13 de octubre de 2006, ISBN 0-321-39983-8
Michael Stiefel: Creación de aplicaciones con Windows Workflow Foundation (WF): Fundamentos de Windows Workflow Foundation (Digital Short Cut) , 5 de junio de 2007, Kindle, ISBN 0-321-51454-8
Brian Noyes: Desarrollo de aplicaciones con Windows Workflow Foundation (WF) (capacitación en video) , 7 de junio de 2007, Brian Noyes, ISBN 0-321-50313-9
Brian R. Myers: Fundamentos de la WF , Apress, 23 de octubre de 2006, ISBN 1-59059-718-4
Bruce Bukovics: Pro WF: Flujo de trabajo de Windows en .NET 3.0 , Apress, 19 de febrero de 2007, ISBN 1-59059-778-8
Todd Kitta: Professional Windows Workflow Foundation , Wrox, 12 de marzo de 2007, ISBN 0-470-05386-0
Kenn Scribner: Microsoft Windows Workflow Foundation paso a paso , Microsoft Press, 28 de febrero de 2007, ISBN 0-7356-2335-X
.NET Framework 4.0
Mark Collins: Introducción a WF: flujo de trabajo de Windows en .NET 4.0 , Apress, 19 de marzo de 2010, ISBN 978-1-4302-2485-3
Bruce Bukovics: Pro WF: Flujo de trabajo de Windows en .NET 4 , Apress, 29 de junio de 2010, ISBN 978-1-4302-2721-2
Andrew Zhu: Libro de recetas de Microsoft Windows Workflow Foundation 4.0 , Packt Publishing, 24 de septiembre de 2010, ISBN 978-1-84968-078-3
^ "Preguntas frecuentes sobre Windows Workflow Foundation (WF)". Microsoft. 22 de diciembre de 2018. Consultado el 25 de enero de 2021. WF es una abreviatura aceptable de Windows Workflow Foundation . WWF no es aceptable porque es una marca registrada del Fondo Mundial para la Naturaleza.