Adesh Kishore
Adesh Kishore

Reputation: 11

System.Activities.Presentation not supported in .net 5

Recently i migrated my wpf application from .net framework 4.7.2 to .net 5 with the help of upgrade assistant tool, but after upgrading System.Activities.Presentation is not supported in .net 5. Please suggest how can i proceed further.

Upvotes: 1

Views: 1796

Answers (1)

Panagiotis Kanavos
Panagiotis Kanavos

Reputation: 131730

.NET 5 is .NET Core 5, and WF was never migrated to .NET Core. The What's New page in .NET 5 page mentions this explicitly and suggests using an open source alternative , Elsa Workflow. There are other NuGet packages too, each with its own unique feature set

WF never really caught on outside Microsoft apps, for several reasons, and was essentially in maintenance mode by 2013. Even Microsoft products stopped using WF almost a decade ago - SharePoint replaced WF with Workflow Manager in 2013 and even that was replaced by Power Automate workflows. WF workflows were removed entirely in 2020

There are some attempts to port WF to .NET Core, eg by CoreWF by UiPath, an RPA vendor. The Github repo explains this is an experimental project though.

You should seriously evaluate migrating to a different workflow library sooner or later. The reasons WF was abandoned are still valid today:

  • WF was a workflow engine construction framework, not an actual workflow engine. You need to put a lot of effort to construct an actual workflow engine on top of it.
  • Too heavy for web applications
  • The XML format was too quirky to use - it was an object serialization format, not a workflow description, making it way too verbose to generate or edit with other tools.

The alternatives nowadays are:

  • Other .NET Workflow engines in NuGet, like WorkflowCore and Elsa Workflow to name just two popular packages.
  • Open source Workflow services in other languages. With Docker and containers, it's now easy to add a workflow service to your web farm, even on Windows Server
  • Cloud based workflow services.

What you migrate to will depend on the application type. If you need to embed a workflow engine to your desktop application, a workflow library is necessary. If the workflow needs to run on the server side you could use a workflow service or cloud service.

Upvotes: 4

Related Questions