An industrial controller for controlling an industrial process, the industrial controller comprising a processor executing on the industrial controller: an operating system for managing hardware components of the industrial controller, the operating system being stored in non-transient memory; a loaded first application module for controlling at least a portion of the industrial process via the operating system, the first application module being stored in non-transient memory; and characterized in that: a module manager being stored in non-transient memory and configured to receive a second application module, the module manager is further configured to identify a dependency of the second application module on one of a plurality of resources of the industrial controller, the plurality of resources including the hardware components, the first application module and the operating system, and to bind the second application module to said one resource of the industrial controller to resolve the dependency and to place the second application module into service as a running application module; wherein the second application module is configured to extend or modify a functionality of the operating system while the first application module continues to control the at least a portion of the industrial process, and the module manager is further configured to determine whether an installation requirement is met before the second application module is permitted to extend or modify the functionality of the operating system. an operating system for managing hardware components of the industrial controller, the operating system being stored in non-transient memory; a loaded first application module for controlling at least a portion of the industrial process via the operating system, the first application module being stored in non-transient memory; and characterized in that: a module manager being stored in non-transient memory and configured to receive a second application module, the module manager is further configured to identify a dependency of the second application module on one of a plurality of resources of the industrial controller, the plurality of resources including the hardware components, the first application module and the operating system, and to bind the second application module to said one resource of the industrial controller to resolve the dependency and to place the second application module into service as a running application module; wherein the second application module is configured to extend or modify a functionality of the operating system while the first application module continues to control the at least a portion of the industrial process, and the module manager is further configured to determine whether an installation requirement is met before the second application module is permitted to extend or modify the functionality of the operating system. a module manager being stored in non-transient memory and configured to receive a second application module, the module manager is further configured to identify a dependency of the second application module on one of a plurality of resources of the industrial controller, the plurality of resources including the hardware components, the first application module and the operating system, and to bind the second application module to said one resource of the industrial controller to resolve the dependency and to place the second application module into service as a running application module; wherein the second application module is configured to extend or modify a functionality of the operating system while the first application module continues to control the at least a portion of the industrial process, and the module manager is further configured to determine whether an installation requirement is met before the second application module is permitted to extend or modify the functionality of the operating system.