S
S. Lorétan
Hi guys.
I am preparing the rewriting of an huge existing application in VB6. This
software is a mess of 10 years of patchs and new functionalities added
randomly, and didn't have any logical or oriented-object background.
This software is used by many differents persons, and there is a LOT of
functionalities that exists only for one or two of them. So, I want to use a
plugin-based system. That's it for the background.
Now, the questions.
1. I've read a lot of articles about plugin-based softwares, and I found
that they use an interface and then design the plugins based on it. Why an
interface, and not an abstract class, who can implement some 'global'
functions (database access, authentications, etc)? Is there a problem with
an abstract class based plugin type?
2. Because of the interface implementation, there is no way to have global
methods, designed on the host-app, and called by the plugins. Well, there
might be some way, but I'm still a newbie, and I don't know how. Can you
help me with that?
3. I've read some stuff about "signed DLL". Is this possible to load only
*signed* plugins, to be sure that the user won't use some other stuff than
ours? (ah, ah) How?
4. Is there maybe some doc' on software designing with plugins? I've found
only things about the technical way to do it, not about the "philosophical"
idea behind.
Thank you very much.
PS: Sorry, my english is poor.
I am preparing the rewriting of an huge existing application in VB6. This
software is a mess of 10 years of patchs and new functionalities added
randomly, and didn't have any logical or oriented-object background.
This software is used by many differents persons, and there is a LOT of
functionalities that exists only for one or two of them. So, I want to use a
plugin-based system. That's it for the background.
Now, the questions.
1. I've read a lot of articles about plugin-based softwares, and I found
that they use an interface and then design the plugins based on it. Why an
interface, and not an abstract class, who can implement some 'global'
functions (database access, authentications, etc)? Is there a problem with
an abstract class based plugin type?
2. Because of the interface implementation, there is no way to have global
methods, designed on the host-app, and called by the plugins. Well, there
might be some way, but I'm still a newbie, and I don't know how. Can you
help me with that?
3. I've read some stuff about "signed DLL". Is this possible to load only
*signed* plugins, to be sure that the user won't use some other stuff than
ours? (ah, ah) How?
4. Is there maybe some doc' on software designing with plugins? I've found
only things about the technical way to do it, not about the "philosophical"
idea behind.
Thank you very much.
PS: Sorry, my english is poor.