Please support internal .NET Scripting

I realize EasyMorph supports PowerShell scripting internally, but it would be much better if it also supported C# / VB internally. I know you can run C# or VB as an external application, but the process is cumbersome and not convenient for passing variables and data structures back and forth between EasyMorph and C#. It’s also inconvenient to have to open Visual Studio, create a project, compile the project to an executable, then configure EasyMorph to run the executable, etc… all for a simple script that could much more easily be created and compiled internally to EasyMorph.

I use a simple clipboard manager program called ClipboardFusion, that supports running C# / VB scripts against data copied from the clipboard. The program includes a code editor, allows you to specify library references and essentially compiles and runs a full C# program internally. ClipboardFusion receives the data from the clipboard in a static class. It also includes a class to pass the processed data back to the clipboard. If a simple clipboard manager program can accomplish this, I’m sure EasyMorph could accomplish something similar without too much effort. Having the ability to run .NET scripts internally, would vastly increase the power and convenience of EasyMorph.

I’m using the free version at the moment, but would definitely buy a license if .NET scripting was built-in.

Hi Brad and welcome to the Community forum!

The current way of integrating with a custom C# code is cumbersome indeed. C# and F# scripting is something we’re already thinking about. Currently, our hands are busy with other tasks, but we’ll get back to this question as soon as we have time to think about what to do next.

Hi Dmitry,

Thank you for the fast and encouraging response. I’m looking forward to seeing what your team comes up with! Also, if you haven’t already, I’d suggest you check out how ClipboardFusion integrates with .NET. It’s really slick and super-convenient.

We will definitely have C# scripting added later this year. We envision it as follows:

  • A dedicated action in EasyMorph allows executing an embedded C# script. The script is abe able to:
    • Access input columns and cells
    • Generate output datasets (columns and cells) row by row.
    • Obtain settings of a Custom Connector (more on that below); set local variables in a custom connector
  • The C# script can be embedded in the action or can be imported automatically from EasyMorph Server (thus allows easy reuse and updates)
  • Besides a dedicated action, a special Custom Connector can be created in the connector repository:
    • The connector settings are arranged as general-purpose key-value pairs
    • A C# script can read the connector settings
    • A C# script can read and set temporary key-value pairs that will be discarded when the project finishes execution

How does that look to you? Any suggestions, recommendations, concerns about the written above?

Hi Dmitry,

It seems like you’re on the right track. I have a few comments and questions. Please see the following screenshot from Clipboard Fusion:

Notice the following features:

  • A full-fledged code editor with line numbers, syntax highlighting, etc…
  • A section where you can select your References.It includes a set of default References and also allows you to enter custom References. Custom References will be found automatically if they’re in the system folders, or you can enter the full path to a custom Reference.
  • A text area where you can enter sample input data
  • A Verify Function button, which attempts to compile the code and displays any syntax errors
  • A Run Function button which executes the compiled code against your sample input data and outputs the result.

In the case of EasyMorph, I guess you wouldn’t need to enter sample data, because it could just use the real data from your project. However, there should be a way to verify that the code compiles and display syntax errors. It would also be nice if there was an option to run the script against a subset of the project data and view the result immediately, instead of having to save the script, close the window and view the result in the EasyMorph data grid. Perhaps the user could specify how many rows to test it against. There should also be a setting where you can specify whether the script should run automatically or manually, for scripts that write to external resources.

Regarding the custom connector, are you suggesting we could create our own connector to access custom input/output resources? For example, creating a connector that imports from / exports to AWS DynamoDB? If so, that would be extremely powerful.

1 Like