什么时候为嵌套命名空间添加新项目?

时间:2009-03-31 18:50:07

标签: .net project-management namespaces

我有许多以名称空间类型在

下命名的项目

alt text

添加新的子命名空间时,如何判断是否为 •在项目中创建新文件夹
- 或 -
•在解决方案中创建新项目?

我应该为每种情况考虑哪些不利/优势?

2 个答案:

答案 0 :(得分:5)

您必须问自己的问题是:这两段代码在逻辑上是否合并为一个部署单元?如果是这样,请将它们保存在同一个项目中。如果没有,请将它们分开。

说实话,我很少为“嵌套”命名空间创建一个新项目 - 它似乎通常不会那样工作。特别要考虑是否要从“外部”命名空间访问“嵌套”命名空间,反之亦然 - 如果它们合理地相互引用,那么它们应该在同一个项目中。

答案 1 :(得分:1)

在这个问题上加上我的2美分,用一些“在那里 - 完成那个”体验扩展Jon的答案:

我确实在几个解决方案中使用了至少两个由命名空间命名的项目(好吧,排序)。例如,在MyApp解决方案上工作时,我有MyApp.WebMyApp.Web.Controls

或:MyApp.ServiceMyApp.CoreMyApp.Core.Entities等等。非常着名的命名约定,根命名空间就像MyCompany.MyApp.Service etc...

<强>优势: - 在团队中工作时发现它非常有用,突出显示应用程序模块之间的依赖关系。如果您的Web.Controls模块(它只是一个示例,请不要选择它)在Web UI中共享,您通常不希望自定义控件中的应用程序特定代码。保持“子/嵌套”模块独立(由主项目引用)强制执行此操作。 - 至少考虑它可能会帮助您创建更好的项目结构。哪个命名空间在一个单独的项目中,哪个没有?单单回答这个问题就足够了。

<强>缺点: - 很容易获得“触发快乐”并创建一百个项目,而不是制作适当的文件夹/命名空间。

尽管如此,通常倾向于创建文件夹而不是单独的项目,除非它真的是一个“子模块”。