Cosa ho:
Sto sviluppando un livello di Active Directory che verrà utilizzato da una vasta applicazione con diversi moduli con diverse soluzioni e progetti ...
Sono abbastanza nuovo nello sviluppo di soluzioni su larga scala.
Poiché i requisiti attuali riguardano principalmente gli oggetti Utente e Gruppo in Active Directory, la mia soluzione attuale è simile a questa,
- Estensioni
-
UserPrincipalExtension
(che eredita daSystem.DirectoryServices.AccountManagement.UserPrincipal
per aggiungere attributi personalizzati e sovrascrivere i metodiFindByIdentity
) -
GroupPrincipalExtension
(come sopra ma conGroupPrincipal
...)
-
- Modelli (i modelli hanno metodi di sovrascrittura, ad esempio
toString
, costruttori ecc.)- ADUser
- gruppo di annunci
- utente
- SomeUserObject
- e così via ...
- Repositories
- ADUserRepo (CRUD per utente, + isUserInGroup tipi di metodi)
- ADGroupRepo (CRUD per gruppo, + GetUsersInGroup tipi di metodi)
- Generale
- Utili (Ottieni contesto, ecc.)
Quello che voglio O la confusione è:
Poiché alcuni metodi sono in qualche modo comuni tra i repository utente e di gruppo, sarebbe utile spostare tutti i metodi fuori da UserRepo
e GroupRepo
in una singola classe DirectoryRepo
ed eliminare questi repository?
Al momento questo sta creando confusione per me che lo sta sviluppando, ma potrebbe confondere o forzare un consumatore di questo codice ad aggiungere metodi duplicati.
Come posso superare questo problema?
Ho chiamato questi repository ma questi sono solo metodi statici che accedono a AD, scusa se ciò creava confusione.
Ecco alcune delle mie precedenti domande su SO, se vuoi vedere alcuni dei relativi codici