# Dotnet > Gnral Dotnet > Windows Workflow Foundation >  Que pensez vous de cette architecture de workflow customise ?

## sauceaupistou

A votre avis, est il viable dans le contexte d'un petit service (2 devs 1 cp), de vouloir dvelopper sois mme une plateforme custom de gestion de workflows ? Les demandes que l'on nous fait contiennent pas mal de rgles de gestions inattendues.

Pour des raisons diverses, dont une tentative infructueuse sur MS WF, nous avons mis en uvre une telle solution dans mon service.

L'archi est  peu prs la suivante :

Tous les wkf, (aussi appels composants) et le wkf principale lui mme hritent d'une classe abstraite qui gre diffrentes choses dont : les erreurs, les logs et le passage de paramtres de composant  composant lorsqu'ils sont imbriqus.

Chaque composant hrite d'un membre de type 

```
Dictionary<string, T>
```

 qui sert  stocker ses propres paramtres mais aussi  recevoir les valeurs issues du wkf parent (issues du Dictionnary<> du wkf parent).

Chaque composant est accompagn d'un fichier de configuration XML contenant la dfinition des paramtres. 

Chaque composant n'expose qu'une seule mthode, 

```
Execute(){...}
```

, (le point d'entre du composant).

Lors de l'excution du wkf principal, le Dictionnary du wkf principal s'enrichit des valeurs retrourns par les wkf enfants.

Nous codons pas mal en copi coll ( ... ), il n'y a pas d'interface graphique comme dans un produit type WF ou jBPM. Entre deux composant on s'interdit donc l'appel de mthodes autres que Execute(){...} et la seule manire de transmettre la valeur des paramtre se fait via le membre Dictionnary<>. A dire vrai on est  des lieux de nos bons vieux concepts de POO.

Hormis les aspects graphiques et des choses pousss comme l'arret et la reprise d'un traitement sur des longues dures. Que pensez vous de cette archi ? Diffre t elle pas, peu ou beaucoup d'une archi WF ou jBPM ?

Merci beaucoup pour vos lumires.

Antoine.

----------


## CUCARACHA

C'est quasiment l'archi que j'ai mis en place pour une grosse plateforme de gestion de contenus media.

La diffrence est que j'utilisais K2 Comme moteur BPM et que ce que tu appelles des composants taient des Webservice WCF ou SOAP.

Le SI comptait un certain nombre d'outils qui avaient tous la mme signature.

appel
string requestXML

Bool result
string resultsetXML
string resultManifestXML

Ca permet de dsolidariser les flux des traitements.

Par contre j'ai du crer une sorte d'ETL pour fabriquer les requestXML.

J'ajoute que l'immense avantage de cette solution est la reprise sur incident puisqu'il suffit de stocker chaque fichier requestXML en base ou sur disque pour pouvoir reprendre un traitement  n'importe quelle tape.

Donc (pour ma part) je valide

++

Laurent
P.S. le projet est maintenant en prod, il permet de grer environ 100 Transcodeurs video pour diffuser la tlvision sur les box, IPHone, Youtube etc. et permettre la vido on demand 2  3 heures aprs la diffusion mais mon client s'engage  la fournir en 5 H. Le transcodage d'un fichier vido au format pro, c'est 250 Go  transcoder.

----------

