Link to home
Start Free TrialLog in
Avatar of CAMSYSTEMS
CAMSYSTEMSFlag for United Kingdom of Great Britain and Northern Ireland

asked on

C# Module Based Application

I am looking at the possibility of creating a "base application" that simply acts as a framework to hold other applications inside, hence the user only has to run one exe regardless of if they have purchased one of our products or ten!

I am proposing to do this along the lines of the "base application" connecting to a web service to find out what products they are licenced to run and then dynamically populating a list of these applications on screen, when a user selects an item the "base application" simply loads in a control from a specific dll inside its own window.

Has anyone else got an experience of designing an application in this way or got any recommendations of how this can work?
Avatar of DanSo1
DanSo1
Flag of Poland image

Hi
I have similar situation - one base app with 15 modules. But those modules are exe not an dll's. All modules are build in one solution. My base application with just one form simply use namespaces of  all modules. Then, when user selects one module I'm showing main form for that module. Something like that:
frmSomething = new frmSomethingABC();
frmSomething.ShowDialog();
Off course variable frmSomething is declared before:
private frmSomethingABC frmSomething;
For every module we are sending to the customer their licence key which we holding in DB. Only modules with correct licence key are allowed to run. So far there is no problems with that.
Regards
  Danso
Avatar of CAMSYSTEMS

ASKER

Yeah that sounds pretty similar to our requirements, although ideally we are looking to send out the base application without any module dlls, the modules dlls are just shipped to the customer when they purchase the licence and each dll is dynamically loaded in to the base application.

Hence we are thinking of setting up something along the lines of the following.....

Each module has a StartingControl (UserControl) that implements an interface, hence when you click on a module the base application simply loads in the required dll (name saved in database) and then displays the modules StartingControl on the base application Main Form...

Does this make sense?

ASKER CERTIFIED SOLUTION
Avatar of DanSo1
DanSo1
Flag of Poland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
The dll files that are relevant to each licenced application will be downloaded when they first activate a licence and then in a similar way to yours an error message will appear if the files do not exist
A