Programming Modular software
<p>I stand in front of a little problem; <em>I want to create a modular software.</em></p>

<p>Let's make it more general and not specific for my case. What I want to create is a software which loads dlls and those dlls adds features to the software.</p>

<p>Think of the dlls as xvid, divx or whatever additional codec, feature to your favorite video-player. I want a more custom modular program though, in my case I'm creating a software to handle Customers, Invoices and Products and different users might have different needs and therefore I need to handle this somehow!</p>

<p>However, re-compiling the software and specificly sending the new files to each different user is "stupid" I would rather create a modular software ( don't actually know if this is the correct term ).</p>

<p>So what I was thinking is that I begin creating a pattern of which my DLL's should follow.</p>

<p>Then I create a Module handler in my software which loads the actuall DLL and calls the method in it ( here's where the pattern come in! ).</p>

<p>What I'd like to know is; Am I on the right track?</p>

<p>Might you guys give me some pointers or examples on this matter?</p>

<p>This is all in C#, but would of course be interesting to see how it would differ in Java, Python or C++ too.</p>
