【发布时间】:2010-07-02 20:20:57
【问题描述】:
“垂直分区”是指以模块而不是“层”命名的命名空间
所以,
- MyApp.Core
- MyApp.Accounting
- MyApp.OrderManagement
- MyApp.HR
而不是,
- MyApp.UI
- MyApp.Business
- MyApp.Data
我遇到的唯一问题是,有时这些程序集可能具有与类型名称相同的命名空间的一部分。
假设我创建了一个与帐户相关的模块,并将其命名为 MyApp.Account.dll,基本命名空间为 MyApp.Account。不可避免地,我需要创建一个名为 Account 的类。然后我必须使用命名空间或类型别名。
除了名字很有创意之外,还有其他人经历过这种方式切割组件并处理名称冲突问题吗?
【问题讨论】:
-
请问您需要什么来创建这样的名称空间?为什么不是 MyApp.Business.Account ?
-
您是说命名空间是 MyApp.Business,其中包含类型 Account?如果是这样,这是处理它的一种方法 - 事实上,我正在考虑将程序集名称保留为 MyApp.Accounting,然后将命名空间保留为 MyApp.DomainObjects,在该名称下将创建 Account 类型。
-
我创建这些垂直切片的原因是每个“模块”都可以单独开发和维护。与其将所有功能都放在“业务”下的单个程序集中,不如将许多程序集包含支持单个功能所需的任何“层”。
标签: .net assemblies namespaces naming