如果通常在存储库的结构中执行任何操作来反映已部署的单元,该怎么办?

StackOverflow https://stackoverflow.com/questions/55823

这是问题的后续:

解决方案中的文件夹是否应该与命名空间匹配?

关于这个问题的共识是有条件的“是”:也就是说,文件夹==命名空间,通常,但不是盲目地(java要求的方式)。

事实上,这就是我建立项目的方式。

但设置源代码管理让我对当前的文件夹结构犹豫不决。与 .NET Framework 一样,我的项目中的命名空间并不总是与部署的单元一一匹配。说你有

lib             -> lib.dll
lib.data        -> lib.dll
lib.ecom        -> lib.ecom.dll
lib.ecom.paypal -> lib.ecom.paypal.dll

换句话说,子名称空间可能会也可能不会随父名称空间一起提供。

那么部署在一起的命名空间是否以某种方式分组?

顺便说一句,我不使用 VS 或 NAnt — 只是使用老式的构建批次。

有帮助吗?

解决方案

我通常不会真正考虑这一点,只是做“感觉正确的事情”,但通常我最终会使用非常适合以下策略的名称。

我将使用树中最高的通用命名空间作为 .dll 名称,就像您所做的那样;

对于 lib 和 lib.data,这是 lib,因此 dll 称为 lib。对于 lib.ecom 和 lib.ecom.paypal,这是 lib.ecom,因此该 dll 称为 ecom。

在某些情况下,您需要多考虑一些事情,例如我们有以下命名空间(警告,即将出现的简单示例),并且我们希望将它们分组在两个 dll 中

myapp.view
myapp.presentation

myapp.model
myapp.dataaccess

我们不能使用 myapp,因为那样我们就会有两个 myapp 程序集。在本例中,我使用最合适的命名空间的名称。如果这些命名空间最重要,第一个可能称为 myapp.presentation,第二个可能称为 myapp.model。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top