在.Net/C#项目中采用project(*.csproj)来组织代码比用同一个project不同的文件夹来组织有几个好处:
- 从客户代码的角度, 我依赖你很少一点东西, 可以就只依赖这点东西(做成单独的project), 不需要依赖其它无关的代码
- 从访问控制, Visibility 的角度, C#的internal关键字是针对物理模块的, 即dll的, 而不是名称空间或文件夹
- 从避免双向依赖的角度, Visual Studio会阻止两个project之间的双向依赖, 却不会阻止同一个project内不同文件夹或名称空间之间的依赖
- 从部署的角度, 部署的单位是dll, 如果有分开部署, 灵活部署的需求, dll应该是单一内聚的功能模块,文件夹或者名称空间没有编译后物理的对应物
有别的考虑吗? 怎么感觉.Net/C#在代码设计时和部署时的支持少了点什么, 是啥子呢?