Nome collisioni tra gli strati
-
18-09-2019 - |
Domanda
Quindi sto sviluppando un molto cool (e molto grande) n-livello di applicazione.
Ho basicamente i seguenti gruppi:
Dominio
Domain.Contracts
Servizi
Services.Contracts
Presentation.Admin
Presentation.Web
Presentation.Core (condivisa tra Amministrazione e Internet)
Posso implementare Presentation.Core.Contracts
Il mio problema principale che sto lottando con sono conflitti di nomi tra i diversi strati. Ie.
Services.Contracts.AccountServicesRequest
Domain.Contracts.AccountServicesRequest
Ho avuto lo stesso problema con i nomi di servizio (in questo caso io sono solo utilizzando le classi di servizi piuttosto che WCF, ecc). Vale a dire:
Services.Contracts.IAccountService
Domain.Contracts.IAccountService
Ho risolto questo ormai rendendo tutti i "gestori di servizio" nel IxxxServiceHandler strato di dominio, che mi dà questo:
Services.Contracts.IAccountService
Domain.Contracts.IAccountServiceHandler
Tuttavia, non sono stato in grado di risolvere questo problema con gli oggetti che vengono passati avanti e indietro tra gli strati. Questo sembra essere spruzzato in un mucchio di luoghi attraverso la mia soluzione (s). Ero solo curioso di vedere se qualcuno ha avuto gli stessi problemi. Se sì, come hai fatto a risolverli?
Soluzione
Sì, ho incontrato questo problema, ma ho risolto abbastanza presto ogni volta.
Una buona convenzione di denominazione di classe può aiutare. Evitare di utilizzare lo stesso nome in classi su più livelli.
In alternativa, è possibile utilizzare spazio dei nomi alias , in modo da sarebbe utilizzando, ad esempio:
services::IAccountService
domain::IAccountService
Fa questo aiuto?