C# Module Based Application

Posted on 2009-04-23
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
    LVL 7

    Expert Comment

    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

    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?

    LVL 7

    Accepted Solution

    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

    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


    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    Join & Write a Comment

    Recently while returning home from work my wife (another .NET developer) was murmuring something. On further poking she said that she has been assigned a task where she has to serialize and deserialize objects and she is afraid of serialization. Wha…
    Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
    Need more eyes on your posted question? Go ahead and follow the quick steps in this video to learn how to Request Attention to your question. *Log into your Experts Exchange account *Find the question you want to Request Attention for *Go to the e…
    In this sixth video of the Xpdf series, we discuss and demonstrate the PDFtoPNG utility, which converts a multi-page PDF file to separate color, grayscale, or monochrome PNG files, creating one PNG file for each page in the PDF. It does this via a c…

    730 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

    Need Help in Real-Time?

    Connect with top rated Experts

    17 Experts available now in Live!

    Get 1:1 Help Now