L’objectif de ce tutoriel, associé au premier cours, est d’apprendre à utiliser le designer de WF. Le but aussi est de passer des informations au workflow comme arguments en entrée et recevoir le résultat comme argument de sortie. Le but du workflow est de faire la somme de deux nombres.
Etape 1 – Création de la solution
L’objectif de cette étape est de créer une application console « Workflow ».
- Lancer VS 2012
- Cliquez sur « Fichier à Nouveau à Projet »
- Choisissez le template « Application Console Workflow »
- Appelez la solution « SommeWorkflow »
- Cliquez sur « OK »
Etape 2 : Création du workflow
L’objectif de cette étape est d’utiliser le designer du workflow pour ajouter les différentes activités. Les arguments et les expressions seront aussi déclarés dans le designer.
- Remarquez dans l’explorateur de solutions que la solution contient « Program.cs » et « workflow1.xaml »
- Renommez « workflow1.xaml » en « SommeActivity.xaml »
- Cliquez sur la zone blanche du « Designer »
- Dans la fenêtre de propriété, affectez « SommeActivity » à la propriété « Name »
- En dessous du designer, cliquez sur « Arguments », la grille de saisie des arguments apparait.
- Entrez trois arguments de type « Int32 » appelés respectivement : « Nombre1 » , « Nombre2 » et « Resultat »
- Les deux premiers arguments doivent être de type « In » et le dernier de type « Out »
- A partir de la barra à outils, glissez une activité « WriteLine »
- Dans la zone « Text » entrez « Bienvenue à la formation WF4.5 » (inclure les guillemets)
- Faites glisser une autre activité de type « WriteLine » juste en dessous de la première
- Dans la zone Text, entrez l’expression suivante :
string.Format("Vous avez entré {0} et {1}", Nombre1, Nombre2)
- Remarquez qu’une activité de type « Sequence » s’est automatiquement créée et contient les deux activités
- En dessous du deuxième « WriteLine » faites glisser une activité de type « Assign »
- Dans la zone « To », entrez « Resultat »
- Dans la deuxième zone, entrez Nombre1 + Nombre2
- Remarquez la présence d’Intellisense dans le designer
using System.Collections.Generic;
Etape 3 : Exécution du workflow et passage d’informations
Dans cette étape nous allons passer deux nombre en entrée au workflow après nous récupèrerons et afficherons le résultat.
- Le passage d’information peut se passer directement en utilisant des propriétés créées par le designer. Mais une autre façon est de créer un dictionnaire indexé par les chaînes de caractères et qui contient des objets. Le dictionnaire a comme clé le nom de la variable et pour valeur, le contenu de cette variable.
- Dans la zone des « using », ajoutez un «using » pour l’espace de noms System.Collections.Generic
using System.Collections.Generic;
- Juste avant l’invocation créez un dictionnaire indexé par « String » et contenant des objets « Object » appelé « entree »
- En utilisant la méthode « Add », ajoutez deux nombres (25,26) indexés par les noms de variable « Nombre1 » et « Nombre2 »
var entree = new Dictionary<string, object>();
entree.Add("Nombre1", 26);
entree.Add("Nombre2", 25);
- Changez l’invocation de la méthode « Invoke » en récupérant son résultat dans une variable de type « IDictionary<string,object> » appelée « sortie »
- Affichez le résultat en accédant à la variable indexée par « Resultat » dans le dictionnaire « sortie »
- Le code complet de la fonction « Main » devrait être comme celui-ci :
static void Main(string[] args)
{
Activity workflow1 = new SommeActivity();
var entree = new Dictionary<string, object>();
entree.Add("Nombre1", 26);
entree.Add("Nombre2", 25);
IDictionary<string,object> sortie = WorkflowInvoker.Invoke(workflow1, entree);
Console.WriteLine(sortie["Resultat"]);
Console.ReadKey();
}
- Le ReadKey de la fin sert à suspendre la console pour pouvoir voir les résultats
- Exécutez l’application en appuyant sur « F5 »