Windows Workflow Foundation, Coming to .NET Core?

I am a big fan of Windows Workflow Foundation (WF).  After deciding not to use it 6 years ago on a project and seeing the resulting mess of a dictionary based workflow system, I was convinced there had to be a better way. So when we started a new project to build an order processing workflow I knew we had to try it.  It wasn’t all rainbows and unicorns but we worked through issues and found immense value from the framework. My friend and Birmingham .NET Meetup co-founder Blake Helms has many great posts about Workflow on his blog if you are interested:

http://code-coverage.net/

One of his WF intro posts does a great job of highlighting the big benefits of WF:

  • It’s visual
  • It naturally lends itself to testability
  • It’s great for long running processes
  • It’s  built into the .NET framework
  • You’re not locked in

The visual aspect of WF is the biggest benefit I see.  It is so much easier to see complex workflows visually.  These visualizations make it infinitely easier to share how a system works with the business, customers and/or anyone not familiar with the code.  Even the developers that built our new system find it much easier to jump back into the logic with WF after working on other projects and coming back.  We really believe its one of the hidden gems in .NET.  Apparently, we are not alone.

.NET Core

The newest version of .NET (Core) is open source, cross-platform and much faster but it doesn’t contain all the same framework bits as previous versions.  The .NET team started with the most used APIs and is expanding it further over time based on interest from the community.  One of the major ways they are accepting that feedback is through issues on Github.  There are 4,908 closed and 1,322 open issues as I’m writing this.  These are a mix of bugs and feature requests but if you filter the list to issues with the “port-to-core” label there are 115 closed and 27 open.

https://github.com/dotnet/corefx/issues?q=is%3Aissue+sort%3Acomments-desc+label%3Aport-to-core+is%3Aopen

Last July Gutemberg Ribeiro opened an issue to ask how he could help port WF to .NET Core.   Since then more than 40 people have provided 132 comments showing support and/or discussing the possibility of porting WF to Core.  This makes it the most commented open issue currently on the dotnet/corefx repo and the third most commented issue of all time.

image

image

So what’s the Status?

If you have the time to read all 132 posts, its actually very interesting to see the challenges involved with porting WF to Core, all the great ideas from the community and the responsiveness from the .NET team.  I will attempt to summarize the situation. 

Windows Workflow was originally released with .NET 3 and had a significant update (rewrite) in .NET 4.  It is coupled to much of the .NET framework (Transactions, WCF, Serialization, and XAML) thus for it to be ported to Core its dependencies must be ported or replaced.  The biggest dependency issue is XAML.  WF is tightly coupled to XAML and XAML has not been ported to Core but it also has its own active issue with 108 comments.  Part of the discussion on this issue has been whether XAML should be ported to Core or if WF on Core should use an alternative design language.  XAML does have some issues, namely it is hard to merge XAML changes, the designer can be frustrating/buggy at times and its difficult to build visualizations/designers outside of VisualStudio.  The primary suggestions have been to use XML, HTML or JSON instead.   

Dustin Metzgar (the PM for WF at Microsoft) and team released an unofficial port of the WF runtime for .NET Core on Github.  It’s missing several features (XAML integration, debugger, transactions, C# expressions) but has basic functionality.  Checkout the repo for more details:

https://github.com/dmetzgar/corewf

The latest comments on the thread are from more legacy WF users asking when/if it will be supported but we have still not heard any official word from Microsoft yet.

Call to Action

Dustin clarified how we can get the decision makers’ attention and make the case to port WF to Core, participate in the conversation!

image

You can add a comment showing your support, like the comments that you agree with and subscribe to the issue so you can see updates to the conversation. 

If you aren’t using .NET Core yet, WF is a great framework for building workflow in .NET.  Give it a try and then help us get Microsoft to support it in .NET Core.

13 thoughts on “Windows Workflow Foundation, Coming to .NET Core?”

  1. Pingback: Dynamic Business Rules | Jamie Maguire

  2. ROFL Microsoft Creates Crapola

    The only thing Microsoft knows how to do is create some big piece of shit crapola, and then create some new piece of bigger crapola that does not support previous piece of shit crapola, and then no longer support the previous piece of shit crapola. You see Microsoft favorite pastime is sticking their unit inchers up a goats ahole.

    1. DotNet Developer

      The .NET Core is an amazing achievement so far. The performance on a project that I am working on has increased over 50% for in memory processing.

      Porting workflows would be ideal for a piece of work coming up too.

  3. Hi, what is microsofts ‘future’ approach? I’m about to begin a big build and am considering using workflow, but if it’s about to be dropped I may need to look elsewhere

    1. I just got back from Microsoft’s BUILD conference a couple weeks ago and asked this question while I was there. The answer was full .NET Framework is not going anywhere and will be supported for a long time. So if you don’t need the benefits of .NET Core (crossplat, speed, portable install) its still safe to use the full .NET Framework and Windows Workflow for the foreseeable future. We have used Windows Workflow for several years and really love it.

  4. Thanks for sharing this information. I’ve read a lot of negative feedback about WF but I totally disagree with them. I’ve been using this in an automation project for more than 5 years now and it was wonderful. I’m looking forward to see WF to be fully supported in .Net Core because supporting cross-platform is our company direction. Please continue to post updates on your blog on the latest happening. Thanks a bunch.

  5. We have a Solution based on WF. We are creating a steps of activities using WF and this workflow will be delivered to all subscribers and they will process the actions based on WF. We love WF to much. supporting cross-platform is our company direction. We are very interested to have WF on .NET CORE.

  6. This needs to be ported to .net core. Our company has invested in this technology and making it cross platform helps growing its user base.

  7. Very important to port WF to .NET Core! It’s absence is the last thing that stops me from migrating big web project to it. Everything else i’ve already rewrote and optimized, all runs extremely fast, non blocking sessions in asp.net core are amazing, but all stops when it comes to massive part of WF related code thas is tightly coupled to project(

Leave a Reply