Solution: Per application, or per application suit

2019-01-17 07:27发布

Often multiple applications share a large codebase of libraries that change often in development. In these cases, I prefer to create a solution named after the suite, and include separate projects for each application and the shared libraries.

Is this a good approach? How do others structure their code bases for things like a suite of applications?

2条回答
小情绪 Triste *
2楼-- · 2019-01-17 08:03

It really depends on your organization's particular needs. MSDN has a good page that goes through the various recommended solution layouts, including:

  1. The Single Solution model (preferred)
  2. The Partitioned Single Solution model
  3. The Multi-solution model (Only if strictly necessary)

The MSDN page also discusses the pros and cons of each model in more detail so you can decide which one makes sense for you. :)

In general, for an application suite such as you describe, I would consider the partitioned, single solution model. There's a single master solution that builds everything, and a number of separate solutions for each individual application within the suite (assuming the applications are of appreciable size).

If the applications in the suite are small and build quickly (e.g., a suite of command line tools), I might not even generate the separate solution files. That's really a judgement call we can't make for you. :)

查看更多
手持菜刀,她持情操
3楼-- · 2019-01-17 08:15

The actual structure of your solution(s) really depends on the internal workflow. Having a very agile, everyone-refactors-everything approach would point towards one solution with many projects. If your shop has a dedicated library team and various application teams, which do regular internal releases, then separate solutions might help through stronger decoupling, and reduced build times.

查看更多
登录 后发表回答