[WF] Property ou Argument
Pour qu'une activité expose des propriétés, deux choix s'offrent à nous :
- Property : Une propriété CLR classique.
- Argument : Une activité sur laquelle on définit une direction IN, OUT ou IN/OUT.
La raison pour laquelle on doit prendre l'une ou l'autre n'étant pas évidente, voici un petit récapitulatif des situations qui vous feront choisir l'une ou l'autre :
1. L'information est fixée lors sur design, elle ne change pas lors de l'exécution
Il faut utiliser alors une property
. L'argument devant être exécuté pour fournir sa valeur, vous évitez ainsi d'utiliser inutilement trop des ressources.
2. L'information change lors de l'exécution
Si l'information fournie à votre activité doit être le fruit d'un travail préalable, il faut utiliser un InArgument<T>
ou un InOutArgument<T>
. Seuls les arguments peuvent contenir le fruit d'une Variable<T>
. De la même manière, seuls les arguments peuvent interpréter une expression (Vb ou C#) lors de l'exécution.
3. L'information doit sortir de votre activité.
Seuls OutArgument<T>
ou InOutArgument<T>
peuvent sortir des valeurs de votre activité, pour que l'activité hôte de celle-ci puisse les récupérer dans une Variable<T>
. On peut toujours envisager d'utiliser des ActivityFunc<T>
ou ActivityAction<T>
, mais ceci est vicieux et ne facilite pas la compréhension de votre activité par votre collègue (ou client) qui définit les workflows.
J'espère que ce petit récapitulatif vous sera utile ;)