Skip to content



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.

Runtime.config format

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:

  1. Name - which shall be the fully qualified name of the .NET class implementing the plugin

  2. Type - which defines the type of plugin. The value shall be the fully qualified name of the .NET interface that the plugin implements

  3. 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

Runtime.config editing

The editor

Deploy files

How to add a tool

How to add a product

Alternative config-files

Shell command-line argument