Have you ever wanted to run a C# or VB.NET program like a script? Have you ever wanted to coordinate the actions of multiple components running together on the same machine or across multiple machines? Can you build simple or complex components using a familiar programming language just as if it was a scripting language? Can you update a running component when a new version of the component is available without taking down the whole system?
ComponentManager is a runtime environment for building C# and VB.NET applications with the ease of running a script from the command line. ComponentManager creates a powerful solution for managing source code files and provides a powerful runtime system to get the source code compiled and running. ComponentManager handles all the details of compiling, adding references to external DLLs, and keeping an eye on your running components. ComponentManager provides each component with the ability to run as a console application or as a service.
How Does it Work?
ComponentManager loads one or more C# or VB.NET source code files and prepares them for compiling. Next, ComponentManager loads the required DLL files and user created support files (more DLL files) needed by the component. Once the DLLs are loaded, user created settings are loaded into memory to customize the runtime environment. These user created settings can be used and modified as needed by each component. Finally, ComponentManager starts the program on its own thread protected by its own application domain which provides a protective shell around each running component.
Components can call upon ComponentManager to manage long running components and remove them from memory. Each component can check for a newer source code version of itself and load it on demand into memory.
ComponentManager has a local and remote communication channel that allows components to use and update local or remote settings. Components can easily execute locally or on a remote computer. ComponentManager also provides for easy to use communications using Microsoft Message Queues.
Communication Channels: Commands, Data and Component Flows
ComponentManager supports the flow of commands, data and software components across the WCF channels. ComponentManager can move software components between any number of remote ComponentManager systems. So if a solution requires the deployment of a series of components, ComponentManager can easily move some or all components across the network with only a few lines of code.
ComponentManager provides a powerful runtime environment for small and medium sized components that require the ease of running a script, with the power of a fully capable programming language. Simple “glue” logic applications can be designed quickly using your favorite .NET language, or more powerful multi-component applications can be designed with the ability to unload and load new components as needed.