We have a team of 5 developers working on a product and are at a crossroads trying to determine a better way (if one exists) of managing development workflow and project dependencies. We currently have two solutions, Core
and Client
. Core references 8 projects as dependencies (not via NuGet). Core
is essentially an admin UI and REST API. Client, is a project template that will be replicated every time we have a new instance that needs to be customized. Client
references 4 of the same projects that Core
does. Again, both are solutions (.sln's) and both directly reference dependency projects.
For local development, developers currently branch from two separate repos - one for each solution. The developers' local environment must be set up so that the Client
can properly call the REST API locally. Local dev often requires changes to both Core
and Client
in order to test new features, etc.
Our issue is that at times our changes do not build on other developers' systems due to differing repo locations on the file system. This causes issues with the path to projects in the solution files and creates a lot of unnecessary extra work and frustration.
We are considering moving to a NuGet workflow (local, Test, and Prod NuGet servers), but that seems like a lot of extra overhead for the payoff. Can someone recommend a better solution for local, test, staging, prod development workflow for our small team?
Core
project contains the majority of the projects, but not theClient
. TheCore
repo covers all code except theClient
and theClient
repo only contains the UI/Admin for the template that otherClient
sites will be built from. Since theClient
is really a template for future projects, we don't really want to store everything in a single repo. I suppose we could, but it didn't seem ideal at the time.