title: Solution organisation for product
body: <p>We have a base product that has bespoke development for each client that extends and overwrites the functionality of the base.</p>
  
  <p>We also have a custom framework that the base product and sits on top of.  </p>
  
  <p>We use inherited forms to override the base functionality and to date all the forms and classes have been lumped in the same projects i.e. UI, Data, Business...</p>
  
  <p>We need to clean up the code base now to allow multiple client project to run off the base product at once and I was looking for advice around the following areas:</p>
  
  <ol>
  <li>Ways of organising the solution to fit with the above requirements, the number of projects in the solution is quite large and we want to reduce this to increase developer productivity, we are think of making the Framework DLL references instead of project references</li>
  <li>Are there any build and deployment tricks we are missing, we currently have a half automated build and release process</li>
  <li>What is the best way to manage versioning</li>
  <li>Any best practices for product development</li>
  </ol>