如果通常在存储库的结构中执行任何操作来反映已部署的单元,该怎么办?
-
09-06-2019 - |
题
这是问题的后续:
关于这个问题的共识是有条件的“是”:也就是说,文件夹==命名空间,通常,但不是盲目地(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。
不隶属于 StackOverflow