This document focuses on how to use and modify the runtime.config file to tailor make the Shell appearance.
The document will describe in detail, the format and meaning of the tags in the XML file as well as the procedures for creating and modifying the file.
What is runtime.config?¶
The MIKE OPERATIONS Platform is a highly configurable platform that can be extended in numerous ways – through custom made tools, views, explorers and job tasks. Although the platform can be used as an application on its own, its primary purpose is to serve as a framework for making specialised applications by adding custom tools, job tasks, views, explorers, modules and extensions to the Platform’s user interface shell.
All the functionality provided by the Platform comes as plugins. Plugins are much more than custom-made components, they are in fact carriers for all of the functionality that comes with the Platform or the application created on top of the Platform.
Plugins are loaded by the Platform based on their presence in the runtime.config configuration file which is located in the application’s installation folder. The only way to load it is to have it listed in the runtime.config file.
The overall structure of the runtime.config is depicted in Figure 1.
Figure 1: Runtime.config structure
Note the following from the figure:
Plugins are grouped in products where a product typically compares to a Platform manager as e.g. the Time series Manager
Each product can contain multiple plugins
Conventionally all plugins that do not belong to one of the standard managers, will be placed under the CustomPlugins product node – as shown in red in Figure 1 above.
Each plugin is described through three parameters:
Name - which shall be the fully qualified name of the .NET class implementing the plugin
Type - which defines the type of plugin. The value shall be the fully qualified name of the .NET interface that the plugin implements
Assembly - which defines the assembly hosting the plugin. The value shall be the name of the assembly.
Table 1 below defines the possible basic plugin types.
Note: the interface specified as Type in the runtime.config plugin definition will match or inherit one of these entries.
|Plugin interface Type name||Description|
|DHI.Solutions.Generic.IDataViewControl||Designates a plugin that acts as a view|
|DHI.Solutions.Generic.IDTO||IDTO is strictly speaking not a plugin, but rather an identification of a class that holds mapping information between tables in the database and .NET classes|
|DHI.Solutions.Generic.IExplorerControl||Designates a plugin that shall act as an explorer|
|DHI.Solutions.Generic.IMenu||Designates a plugin that shall act as a menu|
|DHI.Solutions.Generic.IModule||Designates a plugin that shall act as a business layer module|
|DHI.Solutions.Generic.IPropertiesControl||Designates a plugin that shall act as a property control|
|DHI.Solutions.Generic.IShellExtension||Designates a plugin that shall act as a shell extension, i.e. extending the functionality of the Platform’s UI shell|
|DHI.Solutions.Generic.ITool||Designates a plugin that shall act as a tool|
|DHI.Solutions.Generic.IToolStrip||Designates a plugin that shall act as a tool strip|
Table : Plugin types
How to add a tool¶
How to add a product¶
Shell command-line argument