如果通常在存储库的结构中完成任何操作以反映已部署的单元,该怎么办?
时间:2020-03-05 18:51:14 来源:igfitidea点击:
这是该问题的后续措施:
解决方案中的文件夹是否应与名称空间匹配?
关于这个问题的共识是一个合格的"是":也就是说,通常==文件夹==命名空间,而不是从容不迫的(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。