Notes for release

13 Dec 2020

Upgrade Linx designer and server to .NET Framework 4.8

The designer and server have been upgraded to run on version 4.8 of the .NET Framework (previously it required version 4.7.1). If the Windows installation on your machine is up to date, you should already have version 4.8 of the framework installed. If not, the Linx installer (designer and server) will install the framework as part of the installation process. You can also manually install the framework if you want.

Renaming of entities

To better reflect the low-code principles on which Linx is built, the following entities have been renamed:

  • Process has been renamed to Function

  • Custom Type has been renamed to Type

  • Input has been renamed to Parameters

  • Output has been renamed to Result

  • Output tab has been renamed to Definition

designer layout rename menu rename server function rename server run rename

Allow debugger to step to end of function and loops

When debugging a function in the Linx designer, it was not possible to inspect the state of the debug values after the last function in a loop has executed.

end of loop

In the example above, you would not be able to see what the value of Counter was after the IncrementCounter function has executed. The same problem was present for the last function that is called. The original Process end reached logic helped in this case, but when debugging a service, the Process end reached logic was not present. To overcome this problem, it is now possible to step to the end of a loop or past the last function. You will see that the debugging location indicator (the red line) moves past the last function and allow you to inspect the relevant debug values.

debug value before debug value after

Change default layout of debugger windows

To make better use of the available space in the designer window, the existing debugger layout was changed by moving the Debug Values tab to the right during debugging. You still have the option to change the window layout if the new default layout does not suit your needs.

default layout

Refactor debugger execution statistics

To save on screen real estate, the debug execution statistics have been shortened to only include the number of executions and execution time. You can still obtain a more detailed breakdown by hovering over the execution statistics.

debug statistics

Add Call Stack panel to debugger

While debugging your function/service/event in the Linx designer, a call stack of the currently executing functions will be displayed, with the latest function at the top. You can navigate to the relevant function listed in the call stack by double-clicking on the relevant entry.

call stack

Allow copying of large debug values to the clipboard

To keep the UI responsive and reduce clutter, large debug values are truncated to a 1000 characters. This character limit was also imposed when copying debug values (to the clipboard). This version will copy the whole debug value to the clipboard.

copy big value

Add breaking changes logic to plugin upgrade screen

Most of the time, upgrading a plugin in the Linx designer requires no manual intervention from the user (apart from launching the upgrade). It can however happen that an upgrade requires some additional steps to be performed by the user (after the upgrade) to fix up the solution.

An example of this would be if there are name changes to the result of a function, e.g. a result property (on the relevant function) is renamed. In this case, any other functions that make use of the original result name (via an expression) will show a validation error. To fix the error, the user would have to go to the function and remap the old result name (in the expression) to the new result name.

Plugin upgrades that will require the user to perform additional steps after the upgrade will be highlighted with a breaking changes link that will provide the user with additional information on the required actions after the upgrade.

breaking changes

Fix bug: Recursive list structure used in nested loops did not load correctly

When using nested loops on a recursive list structure (e.g. a type that simulates a folder structure), Linx would create and save the structure correctly, but not be able to load it correctly.

nested loops

Fix bug: Trying to copy a setting throws an unhandled exception

When selecting a setting and using the copy/cut shortcut keys, an unhandled exception was thrown. Removed this functionality as copying a whole setting does not make sense. It is still possible to copy/paste the setting values.

Fix bug: String with a value that can be parsed as a datetime is interpreted as a datetime type in the type editor

When a string property in a custom type contained a value that could be parsed as a datetime value, the type editor would interpret the value as a datetime.

Various other GUI fixes, bugs and enhancements

Small fixes and GUI enhancements to ensure a better user experience.