There is no one answer to how to set up your repository. It depend on your specific needs.
Some questions you should ask yourself include:
- Are all projects going to be released and versioned separately?
- Are the projects really independent of each other?
- How is your development team structured? Do individual developers stick to a single project?
- Is your framework project stable?
- Does your build process build each project separately?
Assuming that the answers to all of the above is "yes", then I would set it up like so:
- Continue maintaining the framework code in its own repository, and publish it to an internal server using NuGet (as suggested in ssube's comment).
- Create a separate repository for each project, each with their own solution file.
If you can say "yes" to all except #5 (and possibly #1), above, then I would add one more repository that consists of submodules of each of the individual projects and a global solution file that your build server can use. If you add a new project, you have to remember to also update this repository!
If you have to say "no" to #2, then just build a single repository.
If you have to say "no" to #3, then you'll have to make a judgement call, between separation of the code and developers' need to switch between repos. You could create a separate repository including submodules, but if all your developers wind up using that repo, you are really only introducing new maintenance with little gain.
If your framework is not stable (#4), then you may want to include that as a submodule in any of these cases. I recommend that once it becomes stable, then you look into removing the submodule and switching to NuGet at that time.