Compartir a través de


Hospedaje de diseñadores de flujo de trabajo

Aunque existe una versión Visual Studio del diseñador visual de flujos de trabajo de Windows Workflow Foundation, el diseñador de flujos de trabajo puede hospedarse en aplicaciones de Windows externas a Visual Studio. Puede hospedar el diseñador de flujos de trabajo basado en gráficos en las aplicaciones personalizadas de Windows. Las aplicaciones personalizadas pueden implementar un formulario simple del diseñador de flujos de trabajo con una funcionalidad básica del diseñador, por ejemplo, la capacidad de mostrar gráficamente un flujo de trabajo antes de generarse o, puede implementar una versión del diseñador de flujo de trabajo con un conjunto de características más sólido, similar a la versión del diseñador de Visual Studio.

Las clases primarias que debe utilizar al hospedar un diseñador de flujos de trabajo son las siguientes:

  • La clase DesignSurface de .NET, que implementa lo que el usuario percibe como un diseñador proporcionando una superficie de diseño completamente autónoma.

  • La clase WorkflowView, que muestra una representación visual de un flujo de trabajo descrito en el marcado del flujo de trabajo.

  • La clase WorkflowDesignerLoader que admite la carga personalizada de un diseñador de flujo de trabajo y sus componentes.

  • La clase WorkflowDesignerMessageFilter, que puede derivarse, mediante la invalidación de los métodos virtuales adecuados, para crear un filtro de mensajes personalizado que puede controlar eventos del diseñador de flujos de trabajo, como operaciones de arrastre, operaciones de diseño y pintura, así como otros eventos del diseñador.

El ejemplo Basic Designer Hosting muestra cómo utilizar estas clases para crear una versión simple del diseñador de flujos de trabajo hospedado en una aplicación de Windows.

El control de WorkflowDesigner que forma parte del Workflow Tracking Profile Designer proporciona un buen punto de partida para una aplicación de hospedaje de diseñador de flujo de trabajo personalizada. El control de WorkflowDesigner proporciona una manera fácil de agregar y extender la funcionalidad del diseñador de flujo de trabajo en una aplicación host.

Agregar la funcionalidad de comandos de menú

Dado que el diseñador de flujo de trabajo se generó a partir de clases básicas del diseñador en .NET Framework SDK, para acceder a los comandos de menú de la aplicación personalizada debe derivar de la clase MenuCommandService, invalidar algunos de sus miembros, y agregarla como servicio al host del cargador de diseñadores utilizado por el objeto del cargador de flujo de trabajo.

En el siguiente ejemplo se muestra cómo crear un MenuCommandService personalizado. En este ejemplo, se crea un menú contextual cuando se llama a ShowContextMenu. En el método GetSelectionMenuItems, la clase WorkflowMenuCommands se utiliza para asociar los comandos de menú apropiados proporcionados por el diseñador de flujos de trabajo con su texto correspondiente. Una vez finalizado, se asocia un controlador de eventos a cada comando de modo que cuando se seleccione, se invoque el MenuCommand adecuado.

En el ejemplo siguiente se muestra cómo agregar el tipo MenuCommandService derivado a un host del cargador de diseñadores en un método Initialize invalidado de un tipo derivado de WorkflowDesignerLoader.

A continuación, se muestran comandos con implementaciones predeterminadas que puede utilizar en la aplicación:

Debe implementar el resto de los comandos de WorkflowMenuCommands y StandardCommands.

Para comandos como Undo y MultiLevelUndo, debe derivar e implementar las siguientes interfaces y clases:

Una vez creadas estas clases de servicio derivadas, agréguelas al método Initialize invalidado descrito anteriormente en esta sección.

Además, agregue cualquier comando implementado por el usuario al tipo MenuCommandService derivado mediante el método AddCommand, para que siempre que se acceda al comando en el diseñador se llame al controlador de eventos apropiado.

Para obtener más información, vea Extending Design-Time Support en .NET Framework SDK.

Ejemplos de hospedaje del diseñador

Los ejemplos siguientes muestran cómo hospedar el diseñador de flujos de trabajo:

  • Basic Designer Hosting- Muestra una versión simple del diseñador de flujos de trabajo hospedado en una aplicación de Windows.

  • Outlook Workflow Wizard - Utiliza la clase WorkflowView para mostrar cómo puede utilizar el modelo de objetos del flujo de trabajo de Windows Workflow Foundation para crear una definición de flujo de trabajo que pueda visualizarse utilizando el diseñador de flujos de trabajo.

  • Workflow Monitor- Muestra cómo crear una herramienta para mostrar información acerca del flujo de trabajo y el estado de la actividad mediante el diseñador de flujos de trabajo.

  • Workflow Tracking Profile Designer- Muestra cómo crear una herramienta para admitir la creación de perfiles de seguimiento desde las definiciones de flujo de trabajo mediante el control de WorkflowDesigner.

Consulte también

Referencia

WorkflowView
WorkflowDesignerLoader
WorkflowDesignerMessageFilter

Otros recursos

Basic Designer Hosting
Outlook Workflow Wizard
Workflow Monitor
Workflow Tracking Profile Designer

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.