Best practices for creating an application which will be upgraded frequently - C++
<p>I am developing a portable C++ application and looking for some best practices in doing that. This application will have frequent updates and I need to build it in such a way that parts of program can be updated easily.</p>

<ol>
<li>For a frequently updating program, creating the program parts into libraries is the best practice? If program parts are in separate libraries, users can just replace the library when something changes. </li>
<li>If answer for point 1 is "yes", what type of library I have to use? In LINUX, I know I can create a "<em>shared library</em>", but I am not sure how portable is that to windows. What type of library I have to use? I am aware about the DLL hell issues in windows as well. </li>
</ol>

<p>Any help would be great!</p>
