.NET to KNIME Command Line Interface Helper

Hi KNIME community,

this is less a question rather than an announcement of a small helper I created to orchestrate KNIME workflow executions (for maintainability my KNIME workflows are very small and specific like a micro service) via the command line interface (I hope this ok so far). As a student that is closely tied to the free-for-educational-purpose-M$ product spectrum I looked for a way to combine existing .NET/C# software fragments with the possibilities that KNIME offers for unattended workflow runs ("headless" mode). More precisely it helps me to

  • dynamically create the command line arguments (for me especially interesting when I need to provide a few often changing workflow variables whose content is dynamically computed/requested from existing software),
  • start/stop the KNIME workflow execution (completely unattended and in asynchronous manner, so that I am able to retain control during execution),
  • access the KNIME data streams (standard error/output) and add event based behavior to my .NET application.

It is mainly a .NET-ish way of wrapping a functionality like Javas Runtime.Exec() command. I know this might only be applicable for a niche with certain preconditions (e. g. developers biased to .NET with no access to KNIME Server license that hold most of their logic like ETL in .NET and want KNIME to do only special machine learning tasks). But it was fun coding it and maybe it is also useful for somebody else :).

The code together with examples is hosted on GitHub and there is also a NuGet package.