# Dotnet > Gnral Dotnet > Windows Workflow Foundation >  Workflow simple pour UI

## giova_fr

Bonjour.

Je suis  la recherche d'une solution simple et productive pour dfinir une Machine  etat qui pilote le comportement d'une fenetre.

J'ai fais une tentative avec WF, et je dois dire que j'ai t plutot dcu. Sans doute je m'y prend mal, mais j'ai trouv que tres vite, ce qui etait cenc rendre mon code simple et lisible, s'est transform en vritable usine  gaz.

Par exemple, si je veux ajouter un couple evenement/action  un etat, qui active simplement un bouton, je suis oblig de crer un dlguer et une callback dans ma form, juste pour faire un MyButton.Enable = true

Ceci parceque ma form, et mon workflow sont dans des threads spars.

Je pourrai configurer ma form pour tolrer les actions inter-thread, mais je trouve ca dangereux.

Du coup, je me suis fais ma propre machine  etat, simple et efficace, mais sans designer.

Je me dis que j'ai du mal m'y prendre, auriez vous des articles en tete qui dmontrent que piloter une winform depuis un workflow, c'est simple et efficace?

En vous remerciant d'avance pour votre contribution.

----------


## Louis-Guillaume Morand

je suis pas sr que ca soit fait pour cela.

Imagine que le workflow c'est comme un tapis roulant d'usine (comme la soupe aux choux). tu lui donnes un objet, et il ressort au bout du tunnel transform. Cet objet, t'es pas cens y toucher directement. si tu veux changer la couleur, alors t'appuies sur un bouton qui va dire au workflow de lui changer sa couleur. 

toi tu essaie de faire un workflow qui va changer quelque chose d'extrieur  celui-ci, or c'est pas son but. D'autant plus que, comme tu le dis,  cause des threads spars, tu ne peux pas modifier le comportement des contrles directement.

workflow foundation c'est pour simuler des processus mtiers, toi tu t'en sers pour diriger une interface, c'est pas du tout pareil. WF c'est trs bien et trs puissant mais on peut pas s'en servir pour tout et n'importe quoi  :;): 
de la mme faon, c'est comme si tu utilisais WF pour contrler des pages Web, c'est une aberration :/

----------


## giova_fr

je crois comprendre ce que tu dis.

Mais que suis je cenc faire alors?

J'aimerai shematiser le comportement de ma Winform, faciliter sa maintenance et volution. un diagramme d'etat me parai(ssai)t etre une bonne solution.

j'avoue etre un peu perdu l...

*Concretement*, je vais justement devoir faire un wizard: un UI avec  chaque fois une ou plusieurs question, et un bouton Next, selon la rponse j'affiche tel ou tel page par la suite.

Et Demain, j'aurai peut etre  rajouter des questions sur certaines pages, inserer d'autres page (la maintenance quoi); j'aimerai viter l'usine  gaz  ::):

----------


## Louis-Guillaume Morand

et un tabcontrol sans tabs ne suffirait-il pas?
le composant wizard utilise quasiment ce principe.

tes tabs, tu les crs soit en statique, soit  la vole mais c'est l'tape stock en base qui dcide de l'onglet sur lequel tu te trouves. pas la peine d'avoir un vrai workflow surtout si tu ne stockes que "l'tape" o il en est

----------


## giova_fr

Merci pour ta promptitude Louis-Guillaume.

Je ne suis cependant (surement  tord) pas convaincu, que la solution propose suffise.

Comment dire...

Je pense que quand j'aurai 50 pages avec 10 possibilits de redirection par page; une photographie de la logique me sera alors indispensable.

Que cette photographie soit toujours  jours
qu'on puisse zoomer dzoomer dedans pour passer d'une vue globale  un focus prcis.

D'ou l'idee d'un designer graphique de machine d'etat...

Tout article sur ce sujet (architecture) est le bienvenue; j'ai sans doute besoin que l'on m'ouvre les yeux.

EDIT : voila une image qui est reprsentative  : 
cette vision est celle que j'attend, en un clin d'oeuil, je vois tout de suite quel est le comportement de mon UI; c'est pour moi, bien plus lisible que du code  parcourir...

----------


## Louis-Guillaume Morand

un workflow d'interactions de boutons ne m'est jamais venu  l'ide d'tre reprsent mais je peux comprendre dans un cas complexe. Mais bon, je je ne ferais pas autrement que par un diagramme de squence voire de cause--effet si je devais le faire.

en tout cas, je te confirme, je ne pense pas que workflow foundation soit adapt  ton besoin dans le cas prsent  ::(: 
ca t'apporterait rien et si tu penses que ca representerait graphiquement chaque event, tu te mprends  ::(: 

si ton projet se complexifie, tu fais plusieurs forms ou plusieurs usercontroles.

----------


## Samuel Blanchard

> Imagine que le workflow c'est comme un tapis roulant d'usine (comme la soupe aux choux)


L'aile ou la cuisse non ?  ::):

----------


## Louis-Guillaume Morand

> L'aile ou la cuisse non ?


tutafay! avec les salades. ma mmoire de vieux me joue des tours  ::):

----------


## B.AF

> workflow foundation c'est pour simuler des processus mtiers, toi tu t'en sers pour diriger une interface, c'est pas du tout pareil. WF c'est trs bien et trs puissant mais on peut pas s'en servir pour tout et n'importe quoi 
> de la mme faon, c'est comme si tu utilisais WF pour contrler des pages Web, c'est une aberration :/


En mme temps, un activity, ce n'est jamais qu'une classe encapsule. 
Moi j'ai essay WF 4 pour driver une IHM, a marche trs bien.

Et heureusement d'ailleurs. Ce serait inquitant d'avoir un outils qui "componentise" le code mais qui ne fonctionne pas partout ? ::aie::

----------


## Bluedeep

> je crois comprendre ce que tu dis.
> 
> Mais que suis je cenc faire alors?


De manire gnral, la WF n'est pas outille pour les workflow "humain". C'est  dire que pour en faire, cela rclame un souvent long dveloppement.

Pour ce type de workflow, je prfre utiliser K2 BlackPearl. (outil de workflox bas sur WF et destin au BPM).

----------


## B.AF

> De manire gnral, la WF n'est pas outille pour les workflow "humain". C'est  dire que pour en faire, cela rclame un souvent long dveloppement.
> 
> Pour ce type de workflow, je prfre utiliser K2 BlackPearl. (outil de workflox bas sur WF et destin au BPM).


Laquelle ? Parce que la 4 est trs bien pense dans ce sens je trouve.

----------


## Bluedeep

> Laquelle ? Parce que la 4 est trs bien pense dans ce sens je trouve.


Tu as sans doute raison, mais je travaille actuellement avec la 3.5 (peut diffrente de la 3.0 - premire version de WF) 
Pour la 4, le problme c'est VS 2010 qui est actuellement incompatible avec les dveloppement CF. Donc, comme je ne veux pas utiliser deux plateforms de dev. diffrentes (une pour les serveurs et stations et l'autre pour les mobiles), je reste pour le moment sur VS 2008/3.5.

Et si j'ai regard un peu le FW 4.0, je ne me suis pas spcialement pench sur la partie WF.

----------


## B.AF

Moi j'ai fait l'inverse. Aprs avoir essay de faire certaines choses avec WF dont des workflows mtier, j'ai abandonn vite et je m'y suis remis avec le 4. 

Qui en mon sens est bien meilleur car plus lger et mieux dlimit.

----------

