C# Module Based Application

Posted on 2009-04-23
Medium Priority
Last Modified: 2013-12-17
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?
Question by:CAMSYSTEMS
  • 3
  • 2

Expert Comment

ID: 24212997
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();
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.

Author Comment

ID: 24213268
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?


Accepted Solution

DanSo1 earned 1500 total points
ID: 24213336
How you will ship dll's ?. With a little small improvement you can have also simple way to upgrade your modules on customer PC.
On my solution when you run base app there is no need to have any modules installed. But when user has license and trying to run module without exe on his machine there is an error message instead of dynamically downloading of wanted module.

Author Comment

ID: 24214596
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

Author Closing Comment

ID: 31573678

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
Suggested Courses
Course of the Month16 days, 21 hours left to enroll

862 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question