Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Azra [Florent Santin]

.Net, X'Net, aucun lien de parenté V2.0

Actualités

  • MSN Alerts
    View Florent Santin's profile on LinkedIn
    MS Days - MSDN et TechNet Tour spécial Dev
Windows Workflow Foundation, exemple de workflow séquentiel

Il y'a quelque temps, je me suis lancé à la découverte de Windows Workflow Foundation. Il n'y a pas à dire, plus je passe du temps dessus, plus j'en découvre et plus j'ai envie d'en passer :)

Pour ceux qui veulent découvrir WF en douceur, j'ai décidé de aussi me lancer dans la rédaction de tutoriaux simples et illustrés.

Le premier de ces tutoriaux décrit  "pas à pas" les étapes de conception d'un workflow séquentiel très simple, vous pouvez le télécharger au format PDF ici, ainsi que les sources de l'exemple ici.

Bon, le PDF c'est vraiment pas top, il va maintenant falloir que je trouve un endroit pour héberger ça en html (et surtout le convertir proprement).

Et merci Cyril et Neodante pour la relecture !!!

Posted: jeudi 15 décembre 2005 21:58 par azra
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

ZeBobo5 a dit :

Enfin, quelqu'un qui se lance là dedans et qui nous fait un bon tutorial! Merci, je commencais à desespérer.
# décembre 16, 2005 09:04

bruno a dit :

Merci pour le pdf qui m'a permis de resoudre mon probleme ! C'est vrai que l'outil de microsoft est seduisant, il ne me permet cependant pas de gerer simplement mon probleme de deux etats qui evoluent de maniere concurrente et independante.
# janvier 9, 2006 11:13

azra a dit :

Au plaisir :)

Il y'a une activitee qui permet de faire ceci, je regarde et repond ce soir (pas de WWF sous la main :( ).

De memoire, cela permet de parralleliser deux sequences d'activitees.
# janvier 9, 2006 11:26

bruno a dit :

Cela ne correspond pas au problème soulevé. Dans les workflows de type StateWorkflow, la déclaration des états se fait à un autre niveau et l'utilisation d'une activité de parallelisme ne peut se faire que dans une partie EventDriven de handler d'evenement.

Mon besoin est de déclarer deux types de statut et les faire evoluer en parallèle et qu'a un moment il me faille deux valeurs précises pour continuer à avancer.

Je vois deux moyens pour gérer mon problème :

- Utiliser un workflow de séquence où je pose comme variable du workflow des états que je mets à jour avec des actions ce type Code ; comme les activités Code n'ont pas de paramètre, on est obligé de faire une fonction pour chaque changement de status escompté.

- Utiliser une matrice a n dimensions pour representer toutes les combinaisons d'etats dans un workflow de type StateWorkflow, mais ce serait une usine a gaz car pour un axe d'etat qui evoluerait seul il faudrait apporter une redondance dans la declaration des EventHandler.

Aucune de ces options ne me plait et me parait viable a long terme dans l'idee ou on veut faire evoluer fonctionnellement la liste des etats et ou on peut parametrer des sequencements d'etats en fonction des clients a deployer. Ca ressemble à une bidouille du genre de celles qu'on regrette une fois que les problèmes arrivent après la mise en production.
# janvier 10, 2006 12:45

azra a dit :

Bonjour,

Dans la theorie, je n'ai pas testé avec un exemple concret, juste un petit bout de code, mais pourquoi ne pas faire ça:

Un workflow sequentiel qui va, en parrallèle executer deux states machines à l'aide de l'activitée invokeWorkflow.
A la sortie de tout ca on ajoute une activitée bloquante ou une boucle conditionnelle pour verifier si l'état des deux states machines permet de continuer?
Le seul problème est que le invokeWorkflow est asynchrone (du coup le parrallélisme n'est pas vraiment utile, sauf pour clarté), donc il faut trouver quelque chose pour bloquer, mais on ne se retrouve plus qu'avec une seule activitée de code pour la verification de la condition.
# janvier 10, 2006 14:07

bruno a dit :

Oui, cela marcherait si la fin des workflows détachés dans les activités asynchrones était vraiment la fin des machines a etat ce qui n'est pas le cas.

Par exemple, modelisons les etats du trafic urbain avec des etats (fluide, encombre, bouchon), et celui d'un livreur de meubles qui est en train de livrer (manuter et de monter un meuble), en train de manger, en train de rouler. Les actions externes a mon workflow sont realisees :
- par le livreur qui me dit quand il est en train d'effectuer la livraison, quand il va manger et quand il commence a rouler
- par un service de trafic qui me donne l'etat du trafic

Comment detecter les moments ou le livreur est en train de rouler alors qu'il y a des bouchons.
# janvier 10, 2006 15:09
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Accès anonyme et les pages Forms / viewlsts.aspx... par Nicolas Humann le il y a 2 heures et 14 minutes

- l'Atelier 4 du coach C# est disponible par Bernard Fedotoff le il y a 3 heures et 49 minutes

- [WPF] Formatter l’affichage lors d’un binding, via StringFormat par Thomas Lebrun le il y a 8 heures et 51 minutes

- WSC08 : Le bilan, Les Photos, Les Webcasts à voir ou à revoir par Blog de Daniel TIZON [daniel] le il y a 17 heures et 59 minutes

- SharePoint et ses DB : Avez vous pensé à les "Tweaker" ? par The Mit's Blog le il y a 18 heures et 28 minutes

- NTttcp : Mesurer la vitesse d'un réseau par Blog d'Olivier Huet le il y a 18 heures et 52 minutes

- Un nouveau quizz par Matthieu MEZIL le il y a 21 heures et 36 minutes

- Webcast ADO.NET Data Services par Matthieu MEZIL le il y a 21 heures et 39 minutes

- edmx : mise à jour du modèle depuis la base par Matthieu MEZIL le 10-06-2008, 17:47

- Alternatif - Mono 2.0 est arrivé! par #Rui le 10-06-2008, 16:33