The past weeks I have been pretty busy working on one of the things I found really missing in the current version of windows Workflow Foundation. Windows Communication Foundation Input & output activities.

I thought it would be very useful and also a very nice exercise for me to create those activities the same way you see the current implementation on ASXM input output activities.

Last night I created a Project on Codeplex( where I decided to host my work, to share with all of you.

I did the first code drop by checking in my code in the Team Foundation Server behind Codeplex. You can now download the sources, but they are at this moment my first implementation that is only tested on my laptop at this moment.

Just be aware that the current implementation does not implements correlation to a running workflow instance yet. So you can use it for starting a workflow and returning data as result of running a workflow. The correlation is now unfinished and I will work on the next weeks.

I still am figuring out what would be the best way to do correlation.

Should I add a WCF server behavior that picks up a Custom SOAP Header (More technical correlation), a Behavior that can do an XPath against the input message to get the correlation information(More functional perhaps), or even a pluggable mechanism where you can plug in your own Correlation Provider? (Let me know what you think would work best for you)
It will probably be all of the above

The coming weeks I plan to do some more extensive testing and some additional efforts in making the code more readable and stable. But I thought it was good to share where I am now, for all of you also seeking a way to implement WCF contracts using Workflow. (I expect MS to provide them somewhere in the ORCAS timeframe but I haven’t seen anything yet that shows they will be there)

To give you a little bit of an idea how this looks in your workflow see the following screenshot on the workflow I have been using to test if it works.

The next few days I will also post more information on the design of the WCF activities.  Since I am using some more advanced techniques to implement, the code is not for the faint of heart J and you probably want to see the designs I created to get more understanding of the way things work. On of the things I do is e.g. generate code with an custom ActivityCodeGenerator.

Please let me know what you think and what you would like to see in the first actual released version.

Also if you feel you have some time on your hand to help out, please let me know and I can add you to the project as a contributor.