Condizioni e regole in Windows Workflow Foundation

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

Rule Conditions

Le rule condition sono invece differenti dal tipo di condizioni appena visto, in quanto permettono la scrittura della logica propria della nostra condizione all'interno del designer offerto da Visual Studio, potendosi così avvalere del meccanismo dell'intellisense per la composizione della condizione stessa ed evitando la stesura di codice C# o VB.NET in favore di un linguaggio booleano di alto livello, quindi di facile comprensione.

L'unico vincolo, ormai ovvio anche ai nostri occhi, è quello che la composizione sintattica della nostra condizione deve ritornare un valore di verità o di falso, altrimenti l'attività che si basa su tale condizione non potrà effettuarne la valutazione e portare avanti il flusso di operazioni di base. In ogni caso, l'utente sarà comunque avvisato dal designer riguardo eventuali errori sintattici o logici.
In figura possiamo vedere l'utilizzo di una rule condition all'interno di una WhileActivity:

Utilizzo di una rule condition all'interno di una WhileActivity

e la stesura di una banale condizione all'interno dell'interfaccia offerta da Visual Studio 2008:

Editor per la scrittura di condizioni in linguaggio booleano

Una volta che abbiamo creato la nostra prima rule condition, possiamo notare che all'interno del "Solution Explorer" è stato creato un nuovo file (con estensione .rules) inserito direttamente sotto al file contenente la definizione del nostro workflow.
Tale file non è altro che la serializzazione in XML del RuleSet contenente tutte le regole che l'utente ha definito all'interno del relativo workflow e che possono essere utilizzate singolarmente da un'istanza di una delle quattro attività condizionali (in realtà viene utilizzata internamente, una classe speciale che serializza le regole in sintassi XAML). Vediamo, quindi, come la nostra semplice regola viene salvata all'interno del file .rules:

<RuleDefinitions xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow"> 
  <RuleDefinitions.Conditions> 
    <RuleExpressionCondition Name="Conto fino a 10"> 
      <RuleExpressionCondition.Expression> 
        <ns0:CodeBinaryOperatorExpression Operator="LessThanOrEqual" xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
          <ns0:CodeBinaryOperatorExpression.Left> 
            <ns0:CodePropertyReferenceExpression PropertyName="Count"> 
              <ns0:CodePropertyReferenceExpression.TargetObject> 
                <ns0:CodeThisReferenceExpression /> 
              </ns0:CodePropertyReferenceExpression.TargetObject> 
            </ns0:CodePropertyReferenceExpression> 
          </ns0:CodeBinaryOperatorExpression.Left> 
          <ns0:CodeBinaryOperatorExpression.Right> 
            <ns0:CodePrimitiveExpression> 
              <ns0:CodePrimitiveExpression.Value> 
                <ns1:Int32 xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">10</ns1:Int32> 
              </ns0:CodePrimitiveExpression.Value> 
            </ns0:CodePrimitiveExpression> 
          </ns0:CodeBinaryOperatorExpression.Right> 
        </ns0:CodeBinaryOperatorExpression> 
      </RuleExpressionCondition.Expression> 
    </RuleExpressionCondition> 
  </RuleDefinitions.Conditions> 
</RuleDefinitions>

La lettura di questo file è sicuramente complicata, ma è molto importante capirne l'essenza, in quanto un file .rules può essere utilizzato facilmente all'esterno di un workflow per effettuare la valutazione di una o più condizioni su oggetti custom.

5 pagine in totale: <<Indietro 1 2 [3] 4 5 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

IL CONTENUTO
TUTORIALS
TOP TEN ARTICOLI
ARTICOLI VIA E-EMAIL

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

MEDIA
IN EVIDENZA
MISC