One Application to Control Many
I am new to the coding world, but with the help of Fiends and Books I have been able to get past every hurled put in front of me. Until Now...
I was tasked to create a “Shell” program that will control and manage other programs (modules). The “shell” application needs to connect to a file source (FTP or other file source) where it can download programs (modules) and install on the server where the “shell” program is running. I can not figure out how or what the “modules” need to be coded as/in so the “shell” application can install, manage and execute them. My first thought was compile them as DLL. Would this work?
More Info: The shell application will have 2 parts... First will be a Windows Service that runs executing specified “modules” per settings in a DB (XML, Jet, or MySQL). The second part will be the GUI front end for configuration. This GUI will have 4 parts. 1: A ListBox that pulls a list of “modules” from a file source (FTP or other source) that are not currently installed. 2: A Listbox that shows all installed “modules”. 3: A CheckListBox that allows a user to enable or disable “modules”. 4: Scheduling Tab, allowing users to configure the times each module is executed.
The following link is my first attempt at the configuration GUI form: http://www.fake-engineers.com/dotnet/form1.jpg
With the need to be able to add-in “modules” without touching the code of the “shell” application, what would I code the “modules” as?
Has anyone tackled a project like this? If so, any advice would be very greatly appreciated!
This sounds dangerous to me, because installing and running applications automatically via a Service from a configuration file is a potential security hazard. But there are no technical hurdles. You can FTP applications down to the server and run them with no problem using the Process component from within your Windows Service running on the server. You will need to ensure that any support files or DLLs required by these applications get downloaded and that any of those that are COM components get registered properly before the downloaded applications will run. If I were you, I'd keep a log of every action taken by the Windows Service and monitor that closely. I'd probably also add some further independent restriction that prevents the Windows Service from launching new applications until that restriction has been removed, such as (for example) having an administrator for the server "verify" the application through some action.
A. Russell Jones,
-- Android Development Center
-- Cloud Development Project Center
-- HTML5 Development Center
-- Windows Mobile Development Center