Will Microsoft open source Workflow Foundation?


I’m curious to know if Microsoft plans to open source Workflow Foundation?


Me too.
WF is a amazing technology for long-running server-side apps.


Looks like a good chunk of it was open sourced in February… https://github.com/Microsoft/referencesource/commit/c697a4b9782dc8c85c02344a847cb68163702aa7


It is source-opened, not open-source.


Hi Knat

My understanding is that the previously released reference source was not under an open source license, but what gets moved to the github reference source repository is indeed open source, see https://github.com/Microsoft/referencesource/blob/master/LICENSE.txt




@gary_b That’s correct. There are effectively three levels of openness that we have with .NET source:

The biggest reason for the Microsoft/referencesource repo to exist is to make it easier for the Mono project to take .NET Framework source to improve Mono. They’ve been taking boat-loads of the source.

I’ll see if I can get someone to comment on WF OSS.


I’d like to see a new WF based on .NET Core, cross-platform, modern, like the new WCF client.


The WF team is talking about it. Agreed that it is similar to the WCF client that you mention. That’s also the example I mentioned to them. We’ll see where they land with that.


I had made a start on a browser based workflow designer - really a side project to help me learn AngularJs.

Note that the sluggish performance when dropping Activities to the canvas should be easily resolved (it’s due to a template being requested from the server, shouldn’t happen a 2nd time for that same Activity type.) So far I’ve tested it on Chrome - I’ve been told dragging and dropping specifically doesn’t work in Opera.

Locally I also have an early implementation of code completion support (similar to csharppad.com though not as good) and for de-serialization of xaml.

Live: http://gary-b.github.io/WF4JSDesigner/
Code: https://github.com/gary-b/WF4JSDesigner


@knat, thanks for the feedback. Can you please share what WF features you are looking for to be available on .NET core, ideally, in a preference order? If you have some targeted scenarios in mind, it will be great if you can share too.

@gary_b, it’s really cool to see what you have. It can enable some interesting scenarios. I assume you implemented your own serialization of xaml with js?


Yeah, I have one big killing feature :smiley:. IMHO, the WF designer sucks, it’s a toy for serious programmers, so I’ve created an experimental project for WF “vNext”, Metah.W: A Workflow Metaprogramming Language, which provides an alternative way of composing activities to the WF designer.

What is the roadmap of workflow foundation

@zhenlan We use workflow foundation’s WorkflowApplication, Host Extensions (for email, data access layer, security, kernel, licensing) and TrackingProfile. This is connected to a database where the XAML of the Workflows is stored, they are dynamically loaded via DynamicActivity (using AppDomain’s AssemblyResolve with Assembly.Load to load any dependency assemblies).

Our server application uses the workflows to push data around, start the optimization process, retrieve the results, send emails about status and so on. We provided a re-hosted workflow designer to our clients with new activities in dynamically loaded DLLs so that they can extend and modify their workflows. Ideally, we would want this to be functional on .Net Core. This would remove our dependency on Windows servers for the application server (calculation servers run on Win or Lin - Calculations are done in Fortran anyway).

A web hosted workflow designer would be nice, but it’s not a primary focus for me at this point. That said, congrats @gary_b, you did some excellent work on your designer already.


Most of System.Activity has been opened (I believe enough to be usable), however the one piece that is required that isn’t open is System.Xaml. I have a request in to the WPF team to open it, but I’m not convinced it will happen. For some reason they seem reluctant. Not sure why - there doesn’t seem to be much secret sauce in it.


The published code has no xaml support. Locally I have started work on a very basic deserializer for xaml based workflows (js based - using the browsers DOM). It is not in anyway sophisticated.


@EWin Thanks for sharing the information. Just to make sure I understand, between WF server features and re-hostable WF designer, you are more interested to see WF server pieces available on .NET Core, correct? Will it still be useful to you if Xaml dependent WF features are not available?

@gary_b I see. Thanks.


Our use case is WF execution on the server in .Net core.

We use XAML dependent features to load the workflow in:

// workflowXAMLinStringReader is the Workflow XAML loaded into a StringReader (from a DB CLOB) 
System.Activities.XamlIntegration.ActivityXamlServicesSettings settings = new System.Activities.XamlIntegration.ActivityXamlServicesSettings { CompileExpressions = true };
DynamicActivity act = System.Activities.XamlIntegration.ActivityXamlServices.Load(workflowXAMLinStringReader, settings) as DynamicActivity;

If the .Net core does not have an equivalent feature to load a workflow from a human readable serialization to an executable activity directly, then it is not as useful to us.


Would it be possible to start working now with dnxcore50 and system.activities ?

Even if that meant taking the whole System.Activity from the reference source and trying to compile it against dnxcore50 - cutting out what is currently unavailable. Is there a way for us to get a primary version of WF (even if incomplete) into dot net core?

Edit: I noticed [Contribution] Port Workflow Foundation to CoreFx/CoreCLR #2394 on the CoreFX page.

.NET Foundation Website | Blog | Projects | Code of Conduct