I'm working on a compiler and I want to modify some of the
initialization/loading process a bit to make it more maintainable and
extendable, and I'm running into one problem.  Here's the basic idea.

Back in VB5/6 I worked on an application for law enforcement and the
military where a particular office wanted say 10 of say 20 features.  Each
feature had a price tag and the client only purchased the ones they needed.
What we did for that was to create a DLL folder and when a client purchased
10 of the 20, we placed the 10 they wanted in the folder and burned the
installation CD.  When the user went to install, the installation would
place that folder in the executable directory.  When the user executed the
application, a startup process would read through that folder and register
each DLL.  Then menu's and other structures were dynamically generated at
startup based on what was registered, licensed, and what was found in that
DLL folder.  If a client purchased an additional module to the application,
we would send them an installation CD with only that DLL and a license key.
They would then run the install and that DLL would then be copied to the DLL
folder, and the license key would update the security as needed to make sure
they had a license to run that DLL.  In the end, what we were doing was
allowing runtime loading of the DLLs that the application was using, and
that's basically what I want to do know.  But the techniques that we used
back 15 years ago do not seem to apply to .Net and I'm guessing there has to
be a new and better way to do this.  Maybe I'm not thinking here and there
is an easy and common way to support this... I think that is the case.  I
think I'm just overlooking something simple here.

You see this in application such as PhotoShop.  When then start up, you
watch a number of DLLs load on the splash screen.  That is basically what I
want to do.  Dynamically load up 300 to 400 classes at start up.

What I want to do is to create lots of small classes (300 to 400 of them),
then at startup I want to dynamically load them to be used by the compiler.
When I want to add a new class I can just create a standalone class and
compile it and drop it into the folder.  The next time the application
starts up, it will pick up the new class and use it.

What this allows is end-user extensions to the compiler, or to override
compiler processes without having to modify the base code.

Any thoughts, suggestions, or ideas would be very much appreciated.

Best regards,
Jon Rothlander

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to