Expanding the implementation of an application with DLLs


Aug 19, 2014
Programming Experience
I have written a fairly large application that includes a module with one self-contained procedure that ultimately is initiated by a control on a userform. During development it was convenient to have this procedure embedded as part of the application but for the full roll-out version will need to be seperate because it will contain user generated data and I understand that it is not good practice to have the source code effectively updated by a user by having to update of ingest this procedure into the source file.

Therefore, I understand that I will have to work with DLL's in order to have procedures which can be changed independant of the main application. I am new to DLLs and have been trying to piece together what I need to do. Firstly, I assume that I will need to use a DLL for the user generated input function. ie The users input file (I'll leave the details out of that for the time being) will be used to generate a DLL which will then be linked to the main application for execution. However, I then have more questions....

There appear to be two ways of implementing DLLs. One using the MEF approach and the other using the non-MEF (traditional) method ..perhaps there is a name for this, and generate the appropriate pipeline code etc. From what I understand the MEF approach is really for fairly simple situations and I think mine is fairly complex because there is a lot of interaction between the users file and the source file (including) procedures and methods that call up other procedures/methods and functions within). So the question is in this case, how do I go about setting this up? Would I have to identify every procedure that is called and each of the subcalls that are made within those and if so can the DLLs which are generated be posted into one folder or does there need to be some hierarchy in the way that the individual DLLs are set up? I am hoping that there is some logic to this..certainly it doesnt seem very straightforward.

Can someone point me in the direction of what specific steps I should take to firstly decide which is the right overall approach and secondly where the specific steps are for that approach.

Any help and advice gratefully received. As always I wouldnt be surprised if I am even asking the wrong question! It won't be the first or the last time :)

Top Bottom