Thursday, 11 September 2008

Versioning Workflows

A while ago i had a project where i used Windows Workflow Foundation. Fantastic tool but i hit several issues with it that put me off using it since. One of these issues was the complexities of hosting in iis and the other was the versioning of workflows. At the time i could not find any information to help me with this so did what i though was best at the time.

Today i noticed a blog post which covers the perfect solution to workflow versioning. You can read it here over at the problem solvers blog.

Here was my solution to compare - which wasnt ideal but sufficed at the time.

What i thought i needed to do was create a new copy of the workflow (at design time) and deploy both versions. This was fine but the next issue i had was how do i copy a workflow and make some changes. Heindsight says this was a bad move but it didnt jump out at me at first. Anyway.. I ended up copying the workflow xaml xml and changing the xaml to a new type - V2. And this actually worked!

Now i had old and new versions of the workflow and could make my changes and deploy.

The next issue i came across was code that was hooked into the workflow, i.e. any services/classes that made use of the workflow. You had to change the code to tell it what version of workflow to create, that was easy but then if you had referred to the workflow at any point in your classes, and this had been removed/changed then it would obviously break.

No comments: