다음을 통해 공유


Workflow Designer 호스팅

Windows Workflow Foundation 워크플로 비주얼 디자이너의 Visual Studio 버전이 있지만 Visual Studio 외부의 Windows 응용 프로그램에서 Workflow Designer를 호스팅할 수 있습니다. 사용자 지정 Windows 응용 프로그램에서 그래픽 기반 Workflow Designer를 호스팅할 수 있습니다. 사용자 지정 응용 프로그램은 미리 작성된 워크플로를 그래픽으로 표시하는 기능과 같은 기본 디자이너 기능이 포함된 간단한 형태의 Workflow Designer를 구현할 수 있습니다. 또는 사용자가 Visual Studio 버전의 디자이너와 유사한 더욱 강력한 기능 집합이 있는 Workflow Designer 버전을 구현할 수 있습니다.

Workflow Designer를 호스팅할 때 사용해야 하는 주 클래스는 다음과 같습니다.

  • 완전히 자체 포함된 디자인 화면을 제공하여 사용자가 디자이너로 인식하는 것을 구현하는 .NET DesignSurface 클래스

  • 워크플로 마크업에서 설명하는 워크플로의 시각적 표현을 표시하는 WorkflowView 클래스

  • Workflow Designer와 Workflow Designer 구성 요소의 사용자 지정 로딩을 지원하는 WorkflowDesignerLoader 클래스

  • 적절한 가상 메서드를 재정의하여 끌기 작업, 레이아웃 및 그리기 작업 등의 Workflow Designer 이벤트와 기타 디자이너 이벤트를 처리할 수 있는 사용자 지정 메시지 필터를 만들기 위해 파생시킬 수 있는 WorkflowDesignerMessageFilter 클래스

Basic Designer Hosting 샘플에서는 이러한 클래스를 사용하여 Windows 응용 프로그램에서 호스팅되는 간단한 버전의 Workflow Designer를 만드는 방법을 보여 줍니다.

Workflow Tracking Profile Designer의 일부인 WorkflowDesigner 컨트롤은 사용자 지정 Workflow Designer 호스팅 응용 프로그램의 좋은 시작 지점이 됩니다. WorkflowDesigner 컨트롤을 사용하여 호스트 응용 프로그램에서 Workflow Designer 기능을 쉽게 추가하고 확장할 수 있습니다.

메뉴 명령 기능 추가

Workflow Designer가 .NET Framework SDK의 기본 디자이너 클래스를 기반으로 하기 때문에 사용자 지정 응용 프로그램에서 메뉴 명령에 액세스하려면 MenuCommandService 클래스에서 파생시킨 다음 해당 멤버를 일부 재정의하고 워크플로 로더 개체에서 사용하는 디자이너 로더 호스트에 서비스로 추가해야 합니다.

다음 예제에서는 사용자 지정 MenuCommandService를 만드는 방법을 보여 줍니다. 이 예제에서는 ShowContextMenu가 호출되면 상황에 맞는 메뉴가 만들어집니다. GetSelectionMenuItems 메서드에서는 WorkflowMenuCommands 클래스를 사용하여 Workflow Designer에서 제공하는 적절한 메뉴 명령을 해당 텍스트와 연결합니다. 이 작업이 완료되면 명령이 선택될 때 해당 MenuCommand가 호출될 수 있도록 각 명령에 이벤트 처리기가 연결됩니다.

다음 예제에서는 WorkflowDesignerLoader에서 파생된 형식에 대해 재정의된 Initialize 메서드에서 디자이너 로더 호스트에 파생된 MenuCommandService 형식을 추가하는 방법을 보여 줍니다.

응용 프로그램에서 사용할 수 있는 기본적으로 구현된 명령은 다음과 같습니다.

WorkflowMenuCommandsStandardCommands의 나머지 명령은 사용자가 구현해야 합니다.

UndoMultiLevelUndo와 같은 명령의 경우 다음 인터페이스와 클래스에서 파생시키고 구현해야 합니다.

이러한 파생된 서비스 클래스를 만든 후 이 단원에서 이전에 설명한 재정의된 Initialize 메서드에 추가해야 합니다.

또한 AddCommand 메서드를 사용하여 사용자가 구현한 명령을 파생된 MenuCommandService 형식에 추가해야 합니다. 이렇게 하면 디자이너에서 명령에 액세스할 때마다 적절한 이벤트 처리기가 호출됩니다.

자세한 내용은 .NET Framework SDK에서 Extending Design-Time Support을 참조하십시오.

디자이너 호스팅 샘플

다음 샘플에서는 Workflow Designer를 호스팅하는 방법을 보여 줍니다.

  • Basic Designer Hosting - Windows 응용 프로그램에서 호스팅되는 Workflow Designer의 샘플 버전을 보여 줍니다.

  • Outlook Workflow Wizard - Windows Workflow Foundation 워크플로 개체 모델을 사용하여 Workflow Designer를 통해 시각화할 수 있는 워크플로 정의를 만드는 방법을 보여 주기 위해 WorkflowView 클래스를 사용합니다.

  • Workflow Monitor - Workflow Designer를 사용하여 워크플로 및 활동 상태 정보를 표시하기 위한 도구를 만드는 방법을 보여 줍니다.

  • Workflow Tracking Profile Designer - WorkflowDesigner 컨트롤을 사용하여 워크플로 정의에서 추적 프로필을 만드는 것을 지원하기 위한 도구를 만드는 방법을 보여 줍니다.

참고 항목

참조

WorkflowView
WorkflowDesignerLoader
WorkflowDesignerMessageFilter

기타 리소스

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

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.