워크플로 관리자 1.0 신뢰할 수 있는 표면

 

게시: 2016년 4월

Workflow Manager 1.0에는 워크플로를 만들기 위해, 신뢰할 수 있는 표면이라는 개념이 도입되었습니다.신뢰할 수 있는 표면이란 사용자가 자신의 워크플로를 작성하는 데 사용할 수 있는 신뢰할 수 있는 유형과 작업의 집합입니다.워크플로 작성자는 이러한 유형과 작업을 사용하여 선언적인 워크플로를 만듭니다.허용 유형은 시스템의 허용 유형 집합이 포함된 허용 유형 목록을 사용하여 제한됩니다.허용 목록이 사용되면 허용 유형만 사용되도록 하기 위해 워크플로 정의가 로드 타임에 확인됩니다.이 항목에서는 Workflow Manager 1.0 신뢰할 수 있는 표면을 사용하여 선언적 워크플로를 만드는 방법에 대해 간략히 설명합니다.

Workflow Manager 1.0의 선언적 워크플로 작성

Workflow Manager 1.0에서 호스팅된 워크플로는 완전히 선언적인 워크플로로, 신뢰할 수 있는 표면을 사용하고 Update 4.0.3 for Microsoft .NET Framework 4Windows Workflow Foundation(WF4)을 사용하여 만들어집니다.Workflow Manager 1.0 워크플로 작성에는 신뢰할 수 있는 표면의 작업, 표현식 및 변수가 사용됩니다.사용된 작업은 허용된 작업 목록의 작업일 수 있으며 신뢰할 수 있는 작업으로 구성되는 사용자 지정 XAML 작업이 사용될 수 있습니다.Visual Basic 표현식은 Workflow Manager 1.0에서 호스팅된 워크플로 정의에 허용되지 않습니다. 그러나 Microsoft.Activities.Expressions 네임스페이스의 표현식 작업은 워크플로 작성에 사용할 수 있습니다.표현식은 워크플로 정의가 Workflow Manager 1.0에 업로드되기 전에 지원되는 작업으로 변환됩니다.워크플로의 변수는 신뢰할 수 있는 표면의 데이터 유형으로 제한됩니다.

워크플로는 Visual Studio의 워크플로 디자이너를 사용하거나, 리호스팅된 디자이너를 통해 XAML을 직접 작성하거나, ActivityBuilder를 사용하여 작업에서 파생되어 Xaml로 직렬화되는 작업을 만드는 코드 방식으로 작성할 수 있습니다.Workflow Manager 1.0 샘플은 워크플로 관리자 1.0 샘플을 참조하세요.

 Workflow Manager 1.0 신뢰할 수 있는 표면

Workflow Manager 1.0의 신뢰할 수 있는 표면은 .NET framework 버전 4의 유형 및 워크플로 작업을 비롯하여 Workflow Manager 1.0에 도입된 새로운 유형으로 구성됩니다.여러 가지 유형과 대부분의 기본 제공 작업이 지원됩니다.다음 표에는 지원되는 유형이 나와 있습니다.이러한 지원 유형 각각에는 해당 유형을 조작할 수 있는 작업 집합이 있습니다.

Type

지원 작업

문자열

문자열 작업

DateTime 및 TimeSpan을 사용한 날짜 지원

날짜 지원 작업

Int32 및 Double을 사용한 숫자 지원

숫자 유형 작업

Boolean

부울 작업

Guid

Guid 작업

IList를 포함한 ICollection

컬렉션 작업

IDictionary 및 KeyValuePair

IDictionary

DynamicValue

DynamicValue 작업

예외

예외 작업

Uri

Uri 작업

참고

표현식 및 기본 유형을 조작할 수 있는 작업 이외에, Workflow Manager 1.0는 표현식, 메시징, 보안, 데이터 조작 및 구성을 지원하는 작업을 제공합니다.이러한 작업에 대한 자세한 내용은 워크플로 관리자 1.0 작업 개요를 참조하세요.이러한 작업은 신뢰할 수 있는 표면의 일부입니다.

Workflow Manager 1.0에 도입된 새 작업 이외에, 나열된 워크플로 어셈블리 및 각 네임스페이스의 WF4 작업이 다음과 같이 언급된 사항을 제외하고 지원됩니다.

  • System.Activities.dll

    • 다음을 제외한 모든 작업

      • InvokeMethod

      • InvokeMethod<T>

      • New<T>

      • Cast<T>

      • VisualBasicValue<T>

      • VisualBasicReference<T>

      • LambdaValue<T>

      • LambdaReference<T>

      • TransactionScope

      • Persist

      • System.Activities.Expression의 대부분의 작업은 지원되지 않지만 이에 해당하는 작업이 Microsoft.Workflow.* 어셈블리에 있습니다.

        VariableValue<T>, VariableReference<T>, ArgumentValue<T> 및 ArgumentReference<T>가 지원됩니다.

참고

이 목록의 작업 중 일부는 직접 사용되지 않고 표현식이 작업으로 변환될 때 사용되므로 워크플로 작성자에게 익숙하지 않을 수 있습니다.

System_CAPS_important중요

Visual Basic 표현식과 같은 일부 항목은 지원되지 않지만 그렇다고 해서 워크플로에 사용할 수 없는 것은 아닙니다.즉, 이러한 항목은 Workflow Manager 1.0에서 호스팅되는 워크플로 정의의 일부가 될 수 없습니다.워크플로는 Workflow Manager 1.0에 업로드되기 전에 변환되어야 합니다.변환은 표현식을 평가하여 신뢰할 수 있는 표면의 지원 작업을 사용할 수 있도록 변환하는 과정입니다.

다음 표에는 Workflow Manager 1.0 신뢰할 수 있는 표면에 해당되지 않는 몇몇 작업에 대한 추가 정보가 포함되어 있습니다.

작업

설명

신뢰할 수 있는 표면으로 사용할 수 없는 이유

InvokeMethod/InvokeMethod<TResult>

범위의 유형의 인스턴스 또는 정적 public 메서드를 호출합니다.선택적으로 메서드에는 반환 값이 있을 수 있습니다.

메서드에 악성/임의의 고객 코드가 포함될 수 있습니다.

New<TResult>

유형의 새 인스턴스를 만듭니다.

구성자에 악성 코드가 포함될 수 있습니다.

> [!Note] > New<Uri>가 지원됩니다.

Cast<TOperand, TResult>

한 유형을 다른 유형으로 변환합니다.

결과 유형의 구성자의 호출이 반환됩니다.결과 유형의 구성자에는 악성 코드가 있을 수 있습니다.

PropertyValue<TResult>

속성 getter를 호출합니다.

getter에 악성/임의의 고객 코드가 있을 수 있습니다.

PropertyReference<TResult>

속성 setter를 호출합니다.

Setter에 악성/임의의 고객 코드가 있을 수 있습니다.

VisualBasicValue<TResult>

값이 반환되는 Visual Basic 표현식을 평가합니다.

임의의 잠재적인 악성 Visual Basic 코드가 실행될 수 있습니다.

VisualBasicReference<TResult>

위치 참조가 반환되는 Visual Basic 표현식을 평가합니다.

임의의 잠재적인 악성 Visual Basic 코드가 실행될 수 있습니다.

LambdaValue<TResult>

값이 반환되는 lambda 표현식을 평가합니다.

임의의 잠재적인 악성 C# 코드나 Visual Basic 코드가 실행될 수 있습니다.

LambdaReference<TResult>

위치 참조가 반환되는 lambda 표현식을 평가합니다.

임의의 잠재적인 악성 C# 코드나 Visual Basic 코드가 실행될 수 있습니다.