Interfacce, adattatori, esposizione di oggetti di business tramite progettazione WCF

1

So che ci sono state innumerevoli discussioni su questo argomento, ma penso che questa domanda sia leggermente diversa e potrebbe forse scatenare una discussione accesa (lascia che sia amichevole).

La scena:
Sto sviluppando un sistema come mezzo per imparare vari concetti e mi sono imbattuto in una situazione in cui il mio cervello è in conflitto. Questo è se mantenere le mie interfacce in una libreria di classi separata o se debbano vivere fianco a fianco ai miei oggetti di business.

Voglio esporre determinati oggetti tramite WCF, tuttavia rifiuta di esporli nella sua interezza. Sono sicuro che la maggior parte sarà d'accordo nel mostrare proprietà come ID e altre proprietà non è una buona pratica, ma anche io non voglio che i miei oggetti aziendali siano decorati con attributi.

La domanda:
Essenzialmente, avrò un'interfaccia separata per ciascuno dei miei oggetti che sarà essenzialmente esposta al mondo esterno (potrebbe finire per essere un bel po ') quindi ha senso creare una libreria di classi separata per le interfacce? Questo fa anche sorgere la domanda se gli adattatori debbano vivere in una libreria di classi separata troppo idealmente, voglio che un meccanismo trasferisca da un oggetto all'altro e viceversa?

    
posta Onam 18.06.2013 - 09:28
fonte

1 risposta

1

Motivi per utilizzare una libreria di interfacce separata:

  • Le interfacce cambiano raramente.
  • Ci sono consumatori di terze parti (esterni alla società) di tali interfacce e non hanno bisogno della libreria di implementazione.
  • Per ridurre le dipendenze nei consumatori di interfacce: hanno solo dipendenze dai tipi utilizzati all'interno delle interfacce, quindi potrebbero richiedere meno riferimenti all'assembly.

Motivi per mettere le interfacce nella stessa libreria dell'implementazione:

  • Devi solo distribuire una libreria.
  • È possibile nascondere completamente l'implementazione: le classi di implementazione e i tipi di supporto possono essere interni. Le interfacce sono pubbliche, se hai bisogno che siano pubbliche. In alcuni casi, è possibile rendere interne anche le interfacce WCF.
  • Poiché esiste una sola libreria, le interfacce e le versioni della classe di implementazione sono sempre sincronizzate.
risposta data 11.07.2013 - 19:04
fonte

Leggi altre domande sui tag