Sto lavorando su un set di microservizi .NET Core 2.0 insieme ad altri sviluppatori. Ho scritto del codice per aggiungere il mio log personalizzato come descritto qui . Il mio logger invia i messaggi di registrazione a un sistema di log basato su cloud esterno (quindi non sulla riga di comando). Ora sto cercando di scoprire dove deve essere posizionato il mio codice. La registrazione è necessaria per tutti i microservizi.
Un'opzione è una libreria. Questa libreria può essere chiamata da tutti i microservizi. Questa sembra una soluzione ovvia. La libreria deve essere compilata una sola volta e può essere utilizzata ovunque.
Un'altra opzione è un progetto condiviso. È compilato come parte di ogni progetto. Questa potrebbe sembrare una soluzione meno ovvia. Il codice deve essere compilato come parte di ogni microservizio per tutto il tempo. Tuttavia, vedo alcuni ovvi vantaggi di questa soluzione:
- Un progetto condiviso non ha riferimenti. Pertanto i riferimenti utilizzati non possono causare conflitti di versione con riferimenti utilizzati all'interno di Microservices. Non esistono.
- Un progetto condiviso può anche (è probabile che sia) compilato come parte di una futura versione di .NET Core. Il progetto condiviso non ha una versione di .NET Core in sé, quindi una scelta sbagliata non può essere fatta.
Come dovrei fare la scelta e quale è la soluzione migliore per essere a prova di futuro?