Nominante multipertier.
-
12-12-2019 - |
Domanda
Voglio creare un progetto multitiviso con 3 strati (o livelli? Qual è la differenza?)
Ora, come dovrei nominare ogni livello (livello)?
Ho visto questa descrizione su Wikipedia:
Ma non riesco a nominare semplicemente il mio strati "di presentazione livello", "logica" e "tier di dati", posso?
che non sarà così appropriato negli spazi dei nomi.
Qualche idea per la denominazione?
Soluzione
Tier e strato sono talvolta usati intercambialmente, ma c'è una sottile distinzione.I livelli sono fisici e gli strati sono logici.Altro: Qual è la differenza tra "strati" e "livelli"?
Per quanto riguarda la denominazione, dipende dal tipo di progetto attivo, e su quale tipo di architettura stai andando.
Ad esempio, ho un progetto Web chiamato Amber.Ha questi progetti:
- .
- ambra.logic (logica e dati sono stati combinati in un unico progetto / livello in questo caso)
- Amber.tests (test)
- ambra.web (presentazione)
Altri suggerimenti
Potresti nominare i tuoi spiamenti dei nomi come questo:
.meormycompany.theapplication.data
MeormyCompany.Theapplication.logic
. MeormyCompany.Theapplication.presentationA volte è necessario aggiungere gli spazi secondari come
.meormycompany.theapplication.presentation.main
MeormyCompany.Theapplication.presentation.Dialogs
. MeormyCompany.Theapplication.presentation.controls
. ...Spetta a te.
Nota che quando si crea una cartella in un progetto, il nome della cartella verrà aggiunto automaticamente allo spazio dei nomi. Quindi se hai un progetto chiamato "MeormyCompany.Theapplication", puoi aggiungere cartelle denominate "Dati", "logica" e "presentazione". All'interno della "presentazione" aggiungi sottocartelle denominate "Main", "dialoghi", "controlli" o qualsiasi cosa sia appropriata per te.
Puoi anche creare progetti separati per i tre livelli.
Esempio:
Qui una classe nella cartella SVG avrà automaticamente lo spazio dei nomi
.cysoft.slvision.diagrams.shapes.svg
.namespace CySoft.SLVision.Diagrams.Shapes.Svg { public class SvgLine : LineShape { private SvgShapeFactory _context; ... } ... }
In una soluzione singola-applicazione di solito faccio qualcosa come:
<Company name>.<Application name>.<Tier name>
.
Dove invece del nome è anche possibile utilizzare un acronimo se contiene spazi o se è troppo lungo.
Io uso questa convenzione di denominazione per ogni progetto / assembly.
I miei livelli / strati di solito presenti sono
DAL
- Il mio livello di accesso ai dati (ad es. EF)
Business
- La mia logica aziendale ed entità
Facade
- il mio livello di presentazione, in cui definisco la logica dell'applicazione
UI
- L'interfaccia utente effettiva