Под «вертикально разделенным» я имею в виду наличие пространств имен, названных в честь модулей, а не «слоев»
Итак,
- MyApp.Core
- MyApp.Accounting
- MyApp.OrderManagement
- MyApp.HR
вместо
- MyApp.UI
- MyApp.Business
- MyApp.Data
Единственная проблема, с которой я сталкиваюсь, заключается в том, что иногда эти сборки могут иметь часть пространства имен, совпадающую с именем типа.
Допустим, я создал модуль, связанный с учетной записью, и назвал его MyApp.Account.dll с базовым пространством имен MyApp.Account. Неизбежно, мне нужно создать класс с именем Account. Затем я должен использовать пространство имен или ввести псевдонимы.
Кроме того, чтобы быть очень креативным с именами, кто-нибудь еще испытывал разрезание сборок таким образом и имел дело с проблемами столкновения имен?