Superficie attendibile di Gestione flusso di lavoro 1.0

 

Pubblicato: aprile 2016

Progettazione flussi di lavoro 1.0 introduce la nozione di superficie attendibile per la creazione di flussi di lavoro.Una superficie attendibile è costituita da un set di tipi e di attività attendibili che gli utenti possono usare per creare flussi di lavoro.I flussi di lavoro vengono creati in modo dichiarativo combinando i tipi e le attività disponibili.I tipi che è possibile usare sono limitati mediante un elenco contenente il set di tipi consentiti nel sistema.Quando la whitelist è attiva, in fase di caricamento vengono controllate le definizioni dei flussi di lavoro per verificare che siano usati solo i tipi consentiti.Di seguito viene presentata una panoramica della creazione di flussi di lavoro dichiarativi in base alla superficie attendibile di Progettazione flussi di lavoro 1.0.

Creazione di flussi di lavoro dichiarativi per Progettazione flussi di lavoro 1.0

I flussi di lavoro ospitati in Progettazione flussi di lavoro 1.0 sono interamente dichiarativi e vengono creati usando una superficie attendibile mediante Aggiornamento 4.0.3 per Microsoft .NET Framework 4 e Windows Workflow Foundation (WF4).Per creare un flusso di lavoro per Progettazione flussi di lavoro 1.0, vengono usate attività, espressioni e variabili della superficie attendibile.Le attività possono provenire dall'elenco di quelle approvate, ma è possibile usare anche attività XAML personalizzate composte da attività attendibili.Nella definizione di un flusso di lavoro ospitata in Progettazione flussi di lavoro 1.0 non sono consentite espressioni Visual Basic. Tuttavia, durante la creazione di flussi di lavoro è possibile usare attività relative a espressioni dello spazio dei nomi Microsoft.Activities.Expressions.Le espressioni vengono convertite in attività supportate prima che la definizione del flusso di lavoro venga caricata in Progettazione flussi di lavoro 1.0.Le variabili contenute nel flusso di lavoro sono vincolate ai tipi di dati della superficie attendibile.

Per creare flussi di lavoro è possibile usare Progettazione flussi di lavoro in Visual Studio, creando direttamente un file XAML mediante un programma di progettazione riallocato, oppure è possibile creare nel codice un'attività mediante la classe ActivityBuilder, che deriva da Activity e viene serializzata in XAML.Per esempi di Progettazione flussi di lavoro 1.0, vedere Esempi di Workflow Manager 1.0.

 Superficie attendibile di Progettazione flussi di lavoro 1.0

La superficie attendibile di Progettazione flussi di lavoro 1.0 è costituita da tipi e da attività di flusso di lavoro di .NET Framework versione 4, nonché da nuovi tipi introdotti in Progettazione flussi di lavoro 1.0.Sono supportati numerosi tipi e molte attività fornite con il programma.Nella tabella seguente sono elencati i tipi supportati,per ciascuno dei quali è riportato anche un set di attività per la modifica.

Tipo

Attività di supporto

String

Attività per le stringhe

Supporto delle date mediante DateTime e TimeSpan

Attività di supporto delle date

Supporto dei tipi numerici mediante Int32 e Double

Attività per i tipi numerici

Boolean

Attività per i valori booleani

Guid

Attività per i Guid

ICollection, incluso IList

Attività per le raccolte

IDictionary e KeyValuePair

IDictionary

DynamicValue

Attività per DynamicValue

Eccezione

Attività per le eccezioni

Uri

Attività per gli URI

Nota

Oltre ad attività in grado di supportare le espressioni e la modifica di tipi primitivi, Progettazione flussi di lavoro 1.0 introduce attività per il supporto di espressioni, messaggistica, sicurezza, modifica dei dati e configurazione.Per altre informazioni su queste attività, vedere Panoramica delle attività di Gestione flusso di lavoro 1.0.Queste attività fanno parte della superficie attendibile.

Oltre alle nuove attività introdotte in Progettazione flussi di lavoro 1.0, sono supportate anche le seguenti attività di WF4 dagli assembly dei flussi di lavoro e dai relativi spazi dei nomi elencati, con le eccezioni indicate.

  • System.Activities.dll

    • Tutte le attività ad eccezione di

      • InvokeMethod

      • InvokeMethod<T>

      • New<T>

      • Cast<T>

      • VisualBasicValue<T>

      • VisualBasicReference<T>

      • LambdaValue<T>

      • LambdaReference<T>

      • TransactionScope

      • Persist

      • La maggior parte delle attività di System.Activities.Expressions non è supportata, ma negli assembly di Microsoft.Workflow.* sono disponibili attività equivalenti.

        Sono supportati VariableValue<T>, VariableReference<T>, ArgumentValue<T> e ArgumentReference<T>.

Nota

Alcune attività riportate nell'elenco possono risultare poco note perché non vengono usate direttamente, ma solo quando le espressioni vengono convertite in attività.

System_CAPS_importantImportante

Anche se alcuni elementi come le espressioni Visual Basic non sono supportati, questo non significa che non sono utilizzabili nei flussi di lavoro,ma che non possono essere inclusi nelle definizioni dei flussi di lavoro ospitate in Progettazione flussi di lavoro 1.0.Prima di essere caricati in Progettazione flussi di lavoro 1.0, i flussi di lavoro devono essere convertiti.Tale processo consiste nella valutazione e nella conversione delle espressioni in modo da poter usare le attività supportate della superficie attendibile.

Nella tabella seguente sono riportate informazioni aggiuntive su alcune attività non disponibili nella superficie attendibile di Progettazione flussi di lavoro 1.0.

Attività

Descrizione

Motivo della mancata disponibilità

InvokeMethod/InvokeMethod<TResult>

Richiama un'istanza o un metodo statico pubblico in un tipo all'interno di un ambito.Il metodo può facoltativamente possedere un valore restituito.

Il metodo può contenere codice personalizzato dannoso o arbitrario.

New<TResult>

Crea una nuova istanza di un tipo.

Il costruttore può contenere codice dannoso.

> [!Note] > New<Uri> è supportato.

Cast<TOperand, TResult>

Converte un tipo in un altro tipo.

Ha come risultato la chiamata del costruttore nel tipo di risultatoche può contenere codice dannoso.

PropertyValue<TResult>

Richiama un metodo Get di proprietà.

Il metodo Get può contenere codice personalizzato dannoso o arbitrario.

PropertyReference<TResult>

Richiama un metodo Set di proprietà.

Il metodo Set può contenere codice personalizzato dannoso o arbitrario.

VisualBasicValue<TResult>

Valuta un'espressione Visual Basic che restituisce un valore.

Può eseguire codice Visual Basic arbitrario e potenzialmente dannoso.

VisualBasicReference<TResult>

Valuta un'espressione Visual Basic che restituisce un riferimento di percorso.

Può eseguire codice Visual Basic arbitrario e potenzialmente dannoso.

LambdaValue<TResult>

Valuta un'espressione lambda che restituisce un valore.

Può eseguire codice C# o Visual Basic arbitrario e potenzialmente dannoso.

LambdaReference<TResult>

Valuta un'espressione lambda che restituisce un riferimento di percorso.

Può eseguire codice C# o Visual Basic arbitrario e potenzialmente dannoso.