2009-02-11 4 views
1

Je viens de commencer à travailler avec WF et ce que je trouve vraiment ennuyeux, c'est que vous devez nommer tant de choses. OMI, l'une des choses les plus difficiles qu'un programmeur traite chaque jour est de construire de bons noms pour les choses, et WF semble aller à l'extrême. Prenez l'activité WF IfElse par exemple. Si je code cela en C# brut (ne pas utiliser WF), il ressemblerait à quelque chose comme ceci:Comment éviter Name-itis dans Windows Workflow (WF)?

if(x == 0) 
{ 
    // ... 
} 
else if(x < 10) 
{ 
    // ... 
} 
else if(x < 100) 
{ 
    // ... 
} 
else 
{ 
    // ... 
} 

Maintenant, le code ci-dessus C# est simple et concis. En revanche, si je devais définir un Windows Workflow qui fait la même chose en utilisant l'activité IfElse, d'abord je devrais nommer chaque si bloc: par exemple.

  • ifXEquals0
  • ifXLessThan10
  • ifXLessThan100

En plus de cela, je dois nom chaque condition dans chaque instruction if: par exemple

  • xEquals0
  • xLessThan10
  • xLessThan100

Non seulement cela est fastidieux, mais difficile à maintenir (par exemple, si les conditions changent) et sujette aux erreurs (vous oubliez de changer le nom lors du changement de l'état) . Le problème (d'après ce que je peux dire) est que WF décompose chaque construction de programmation en propriétés du workflow, qui a besoin d'un nom.

Maintenant que j'apprends encore WF, et je ne veux pas avoir l'air de tout savoir ... Je veux vous demander à tous. Est-ce que je fais quelque chose de mal? Existe-t-il un moyen d'éviter ce nom, c'est-à-dire lors de la création de flux de travail WF? Est-ce quelque chose de spécifique à Windows WF, ou est-ce que d'autres moteurs de workflow souffrent de la même chose?

Répondre

1

Le problème (ce que je peux dire) est que WF se décompose chaque programmation construction dans les propriétés du flux de travail , qui a besoin d'un nom.

En fait, la raison pour laquelle vous avez besoin d'avoir des noms différents parce que chaque partie de cette if-else déclaration qui est représentée dans votre flux de travail est en fait un IfElseBranchActivity individuel, non seulement une propriété du flux de travail et doit donc être unique nommé.

En ce qui concerne la maintenance, jetez un œil à l'utilisation d'un jeu de règles pour vous aider à tester les booléens eux-mêmes. Cela pourrait le rendre plus facile à modifier à un moment ultérieur.

Questions connexes