Salut à tous,
J'ai quelques soucis avec les workflows combiné au versioning d'assembly et à la persistance.
Pour aller droit au but : Comment peut-on maintenir des workflows dont l'assembly d'origine a changé ?
Imaginons que j'ai dans mon assembly Core un modèle de workflow de type State Machine. Mon projet client a un WorkflowRuntime afin de lancer des instances de mon Workflow provenant de l'assembly Core. J'ai ajouté le service de persistance afin que mes workflows soient sauvegardés dans une base de données.
Je lance donc l'application avec mon assembly en version 1.1, je crée une instance de workflow et j'arrête l'application pour que le workflow soit sérialisé en base de données. Ensuite, je change le numéro de version de mon assembly Core (ça fonctionne aussi si je change le schéma de mon workflow) et je relance mon application avec la nouvelle version de l'assembly Core. Et là BOUM, impossible de récupérer mon workflow vu que l'assembly n'est plus la même, logique.
Alors sur MSDN, je trouve la réponse pour gérer ce problème : http://msdn2.microsoft.com/en-us/lib...75(vs.85).aspx
Ok, je veux bien créer un assembly resolver... Donc j'imagine que c'est une classe qui pourra nous donner un objet Assembly. Exemple, je dis :If you want to use the V1 version of the workflow for the V1 persisted instances, you can use an assembly resolver to help you handle this situation.
Est-ce que je me trompe ?
- Je veux mon assembly Core en version 1.1
- Maintenant, je veux mon assembly Core en version 1.2
Ensuite, j'ai mon objet Assembly, mais comment est-ce que je peux relier cet objet à la récupération d'une instance d'un workflow qui se trouve en base de données ?
Comme vous voyez, il me manque quelques briques que je n'arrive pas à trouver sur google
Partager