Skip to main content

Starting Windows Workflow v4.0

Today I've started learning about Windows Workflow v4.0, I'm hoping that it will help out with a current project. The original requirement was for mapping real world business processes to what would normally be complex long running computer tasks. Whilst investigating what it could do I'm beginning to think there could be real value using it for any task that requires process flow logic, even extremely short lived ones. This could be controlling page flow through a web application, or even defining the complex logic that can sometimes end up making MVC controller actions fatter than they really should be.

For getting me started a really good starting point has been the MSDN WF4.0 videos under the beginners guide, if you have a PluralSite subscription, Matt Milner presents some really useful stuff too.

As well as just learning the basics of Workflow; what really interests me is how it should be architected in a real world LOB application; taking into account the usual "-bility" issues, Scalability, Maintainability and Reliability.

  • The biggest challenge will probably be understanding how to manage multiple long running workflows that have many external dependencies inside a service that can paused, stopped, restarted and on a server that can obviously be rebooted or even crash. How does the server restart and reload all the workflows it was managing.
  • Building from that, how would this all work in a load balanced environment where you may even have 2 or more of these services running sharing the load - maybe a workflow that is started on one server will be persisted / unloaded when it becomes idle and then restarted on another server.
  • How can a workflow task be passed between different layers of a system, so it may be started on as part of a web request from a user and passed to a service to be completed a long running task.
As I start investigating each of these issues I'm hoping that this group of MSDN articles might be a good starting point.

Comments

Popular posts from this blog

Why do my Android Notification only appear in the status bar?

I'm definitely getting back into Android development, I'm remembering that feeling of 'Surely this should be easier than this!'. All I wanted to do was to schedule a local notification which behaved similar to a push notification pop-up. That is, as well as showing the small icon in the status bar I wanted it to pop up on screen to notify the end user. All seems fairly easily, I found this code for how to schedule a notification. That all worked perfectly, apart from the notification would only appear in the status bar. Searching around I found loads of different answers / solutions, mostly all saying the same thing:It only worked if you used 'NotificationCompat.Builder' in place of 'Notification.Builder', orYou had to set the priority to 'NotificationCompat.PRIORITY_HIGH'As usually happens, none of these solutions worked for me until I added in the missing piece of the jigsaw:- '.setDefaults(Notification.DEFAULT_ALL)'. For me this…

Do "Task Hours" add anything in Scrum (Agile)?

What do task hours add to the overall process in scrum?This was a question that has arisen from all team members in both instances that I've helped teams switch over to scrum. The benefits of artifacts like the comparative story point estimation, the 2 week sprints, stand-ups and the end of sprint demo have been self evident to the team, but as one I think every team member has expressed dismay when it comes to task planning and estimating each task in hours. Left unchecked there is a natural tendency for people to actually begin to dread the start of each sprint purely due to the task planning session.In my current role we've been lucky to investigate this further as a team.The team sat down to discuss the problems it was experiencing with estimating tasks in hours and the following common themes appeared:It is hard: Maybe it shouldn't be, but time estimation is hard! Story points are comparative and abstracted making them easier to determine, but time estimate is gen…

IPhone hangs when running from XCode

I've had this happen a couple of times now and the first time was a little worrying that I'd bricked my iPhone. Basically I was running an application on my phone via XCode and when rebuilding an updated version it failed with a "busy" error message. Stopping XCode and unconnecting my phone had no effect, the phone was stuck displaying the loading screen of the application and wouldn't respond to any key commands. To fix you have to hard reboot, holding the power and home button until the phone reboots - doesn't lose any of the data you have on your phone (a concern the first time I did it).