다음을 통해 공유


Windows Workflow Foundation의 새로운 기능

.NET Framework 4의 Windows WF(Workflow Foundation)는 이전 버전의 여러 개발 패러다임을 변경합니다. 이제 워크플로에서 많은 새로운 기능을 보다 쉽게 작성, 실행, 유지 관리 및 구현할 수 있습니다. 최신 버전을 사용하기 위해 .NET Framework 3.0 및 .NET Framework 3.5 워크플로 애플리케이션을 마이그레이션하는 방법에 대한 자세한 내용은 마이그레이션 지침을 참조하세요.

워크플로 활동 모델

이제 SequentialWorkflowActivity 또는 StateMachineWorkflowActivity 클래스를 사용하는 대신 활동이 워크플로를 만드는 기본 단위로 사용됩니다. Activity 클래스는 워크플로 동작에 대한 기본 추상화를 제공합니다. 활동 작성자는 기본 사용자 지정 활동 기능에 대해 CodeActivity를 구현하거나 다양한 런타임을 사용하는 사용자 지정 활동 기능에 대해 NativeActivity를 구현할 수 있습니다. Activity는 사용자 지정 개발되었거나 기본 활동 라이브러리에 포함되어 있는지 여부에 관계없이 활동 작성자가 다른 NativeActivity, CodeActivity, AsyncCodeActivity 또는 DynamicActivity 개체에 대해 새 동작을 선언적으로 표현하는 데 사용하는 클래스입니다.

풍부한 복합 활동 옵션

Flowchart는 작성자가 임의 루프 및 조건 분기를 모델링할 수 있도록 하는 강력한 새 제어 흐름 활동입니다. Flowchart는 이전에는 StateMachineWorkflowActivity를 사용해서만 구현 가능했던 이벤트 구동 프로그래밍 모델을 제공합니다. 절차적 워크플로에서는 TryCatchSwitch<T>과 같은 기존 흐름 제어 구조를 모델링하는 새로운 흐름 제어 활동을 활용합니다.

확장된 기본 제공 활동 라이브러리

활동 라이브러리에는 다음과 같은 새로운 기능이 있습니다.

명시적 활동 데이터 모델

.NET Framework 4에는 데이터 저장 또는 이동을 위한 새로운 옵션이 있습니다. Variable을 사용하여 활동에 데이터를 저장할 수 있습니다. 활동 내부 또는 외부에서 데이터를 이동할 때 특수 인수 유형을 사용하여 데이터가 이동하는 방향을 결정합니다. 이러한 유형은 InArgument, InOutArgumentOutArgument입니다. 자세한 내용은 Windows Workflow Foundation 데이터 모델 개요를 참조하세요.

향상된 호스팅, 지속성 및 추적 옵션

.NET Framework 4에서는 지속성이 다음과 같이 향상되었습니다.

  • WorkflowServiceHost, WorkflowApplication, WorkflowInvoker 등과 같은 더 많은 워크플로 실행 옵션이 있습니다.

  • Persist 활동을 사용하여 워크플로 상태 데이터를 명시적으로 유지할 수 있습니다.

  • 호스트에서 ActivityInstance를 언로드하지 않고 유지할 수 있습니다.

  • 워크플로에서 유지할 수 없는 데이터로 작업할 때 비지속성 영역을 지정할 수 있습니다. 그러면 비지속성 영역이 있는 동안 지속성이 연기됩니다.

  • TransactionScope를 사용하여 트랜잭션을 워크플로로 전달할 수 있습니다.

  • TrackingParticipant를 사용하여 보다 쉽게 추적할 수 있습니다.

  • EtwTrackingParticipant를 사용하여 시스템 이벤트 로그를 추적합니다.

  • 이제 보류 중인 워크플로 다시 시작이 Bookmark 개체를 사용하여 관리됩니다.

간편한 WF Designer 환경 확장 기능

새 WF Designer는 WPF(Windows Presentation Foundation)를 기반으로 작성되어 Visual Studio 외부에서 WF Designer를 다시 호스트할 때 사용할 수 있는 간편한 모델을 제공할 뿐만 아니라 사용자 지정 활동 디자이너를 만드는 간편한 메커니즘을 제공합니다. 자세한 내용은 워크플로 디자인 환경 사용자 지정을 참조하세요.