Plugin Hosting Mechanism Replaced in External Processes
Tags:
In order to ensure better isolation of plugins from libraries that are not part of the API, as well as to expand functionality, plugin execution will be performed using a new host process Resto.Front.Api.Host.exe (instead of Resto.CashServer.OutOfProcHost.exe). For plugins under V2 and V3, backward compatibility has been implemented, and starting from V4, a number of changes are introduced.
Key changes:
- logging has become part of the API (no longer should the library
log4netinstalled for SyrveFront be used directly or throughResto.Framework); - message queue processing has been disabled (if a plugin wants to display windows, it must create a UI thread and run a
Dispatcheror another message processing loop implementation itself); - starting from V4, access to API services can be obtained from anywhere in the plugin code by referring to the static members of the
PluginContextclass (there is no longer a need to pass service references throughout the code); - starting from V4, the
IFrontPlugininterface does not contain theInitmethod (the plugin class must still have a public constructor without arguments, where all initialization should be performed); - the requirement to inherit the plugin class from
MarshalByRefObjecthas been removed; - there is now the possibility of convenient debugging of the plugin without restarting the SyrveFront application;
- some bugs have been fixed (for example, it is now possible to split the configuration file into several parts).