Code Red => .NET => Topic started by: johne on May 26, 2019, 09:11:50 PM

Title: DLL Management
Post by: johne on May 26, 2019, 09:11:50 PM
Hi swampers,

I have about 15-20 plugins that I have created for my company. To date I have been creating these as stand alone dll's which are loaded into our custom menus.
I also have a reference library dll where I keep models and functions which are common across plugins and items i think will be useful in the future.

This has been OK to date, however as my experience, complexity and number of projects has grown i am finding this quite difficult to manage. Especially when trying to keep consistency across plugins and and WPF forms that may also be created.

I'm just curious how other developers manage their plugins? Keep in mind I don't produce plugins for anyone but the company I work for.

I was wondering if it would be opening a can of worms if I combine all my plugins in one solution and dll? I can then have WPF styles etc shared across all my plugins. It would also mean any future updates to library functions that may break existing plugin's can all be debugged easier.

Any insights would be greatly appreciated.


Title: Re: DLL Management
Post by: Bryco on May 27, 2019, 06:39:21 PM
One big one has worked very well for me (not a pro). One I update both the dll and menus auto
Title: Re: DLL Management
Post by: MickD on May 27, 2019, 07:02:32 PM
It depends.... :)

If your plugins are basically stand alone then I'd leave them that way, if they have dependencies on each other then it might make sense to combine them or at least those that have dependencies can be grouped together in single dlls.

If you want to decouple them, say you use or have written an XML library but you may want to use a JSON one in the future then keeping them separate is a good idea. This way you can create an 'interface' layer that allows you to plug in any type of data storage system dll (IoC/DI).
This storage dll just needs to implement the interface to handle the calls from the data user dll and all's good.
Title: Re: DLL Management
Post by: gaarc3 on July 02, 2019, 08:29:35 AM

We have a folder in witch we have a folder for each plugin. We try to keep the same structure for each user. The menus are in a different folder.
We use InnoSetup to do the install or the update.
Sending email to client with a link to the update.
We use demandload (from trough the interface)
and lisp for the first netload(on the install) for each module.

this is the way we do, but i know you can do the demandload and more with an xml file in a specific folder.