Domanda

Abbiamo un'applicazione che, insieme con molte cose, alcune modifiche di Active Directory (aggiungere/rimuovere l'utente dal gruppo, modificare i valori di attributo dell'utente, ecc).

Siamo ora nella fase di riprogettazione (dal "spaghetti-code" in più strati di soluzione).La gestione di Active Directory funzioni è qualcosa che vorremmo astratto, per certi versi, nel livello di dominio, ma, allo stesso tempo, la maggior parte delle funzioni sono molto dipendente dalla tecnologia.

Non tutti Active Directory codice di accesso a livello di accesso ai dati con il nostro DB di accesso, o è ok per creare un active directory libreria di funzioni e chiamata in questa libreria direttamente dal modello di dominio?Che rende l'oggetto del dominio persistente a conoscenza e che probabilmente una cattiva idea?

O dovrebbero accesso di Active Directory, invece, essere effettuata nel livello di servizio, invece, e non coinvolgere anche il livello di dominio?

È stato utile?

Soluzione

Modelli di dominio dovrebbe essere indipendenti dalla tecnologia, in modo da non mettere il codice ANNUNCIO nel Modello di Dominio.

In sostanza si potrebbe dire che il codice ANNUNCIO è solo un'altra forma di Accesso ai Dati, quindi si tratta di Accesso ai Dati Strato (DAL).Tuttavia, esso non appartiene insieme con il modulo di database, come che sarebbe una violazione della Unico Principio Di Responsabilità (SRP - riguarda i moduli, nonché i singoli tipi).

Invece di accorpare insieme con il database access, implementare nella propria libreria.Concettualmente, appartiene allo stesso livello, ma fa cose diverse, così ora avete due librerie nello stesso livello.Che non è assolutamente un problema - si può avere come molte biblioteche in ogni livello di cui hai bisogno.

Il Modello di Dominio, di trattare l'ANNUNCIO di accesso (e il DB access), astrazioni.Abstract Repository sono predefinite approccio.L'ANNUNCIO libreria contiene le implementazioni dell'ANNUNCIO Repository, e il DB libreria contiene le implementazioni del DB di dati sulle negoziazioni.

Questo si adatta bene con Domain-Driven Design e il concetto di Anti-Corruzione Strato.

È possibile utilizzare L'Iniezione Di Dipendenza (Di) filo di calcestruzzo Repository con il tuo Modello di Dominio.

Altri suggerimenti

Credo che la tecnologia specifica cose sono dettaglio di implementazione, non dovrebbe essere messo in modello di dominio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top