Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There is several advantage to make a DLL:</p> <ul> <li>the DLL can be changed independently from the caller program (front-end)</li> <li>the DLL can be distributed by itself, independently from the caller problem (front-end)</li> <li>if several simultaneously running software use the same DLL the memory footprint will be smaller</li> </ul> <p>It also comes with a cost:</p> <ul> <li>you can't use simple inheritance scheme to extend DLL classes</li> <li>sharing global data is still possible but more difficult (some may say this force better design, but it's still a constraint)</li> <li>unit testing of code included in a DLL is more difficult</li> <li>there are installation issues (the dll must be put in special places and registered, depending how you use it)</li> </ul> <p>But the main point regarding modularity is that DLL is still a half measure. Even if we ignore costs, it is not much better than a lib or even just reusing existing classes. The main advantages are for resellers, not really for software developers, except if you expect third party contributors. And the called functions are still running in the same process that the main program.</p> <p>If you want a real clean cut for modularity you could use a real multi-tiers architecture with separate processes for front-end and back-end and a communication layer between them (say TCP sockets). That is usually both more versatile and more robust, and not much more complex when done early enough in project life.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload