Sunday, January 08, 2006 - Posts

Windows Workflow Foundation - A New Chapter, Part I

   It seems that my projects from last year and most of this year are focused around some type of workflow structure.  Last year I built an application that interfaced to Project Server. Project Server did not have a custom process for tracking a projects flow, so I was tasked with creating a particular flow for project tracking. I decided to take it a step further. Not only did I want to separate my workflow logic, I also wanted it to be dynamic and able to accommodate other possible workflows. After I built the engine, I realized the power and importance of workflow when the client wanted changes to the initial workflow they had created. Since my engine was separate, I could make changes on the fly with minimal code changes which meant most of the time without recompiling. It was at this point I decided to focus on building applications utilizing workflow methodology. This year we are building a workflow application that will be tied in to Sharepoint. Although the workflow mechanics should not be to difficult, I was hoping to utilize WWF, however the RTM is still to far down the road for our deployment of the solution. I first saw Windows Workflow Foundation technology when it was unveiled, last September at the PDC. I realized the power, and now I have decided to concentrate on helping others leverage the framework. 
   Most applications that are designed follow some type of workflow. We might not think of them as workflows, because we usually relate workflows to human processes and/or data that is being processed over a given amount of time. For example, hiring a new employee(interview, benefits, getting resources ordered like computer, setting up email) or like my Project Server app above that tracks projects (projects are setup to follow certain stages and must have required data for each phase). These examples follow a certain flow, however a simple application that might not be considered workflow, follow a certain flow as well. For example, a simple app that reads in data in, verifies the data is correct, maybe even makes corrections to the data, and then commits the data to the database. The point to remember is, workflow processing can be instantaneous and/or be processed over time, Human and/or System processes.