Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quali sono i vantaggi dell'utilizzo di Microsoft.Extensions.uging sul precedente sistema di registrazione di MVVMCRoss


Quali sono i vantaggi dell'utilizzo di Microsoft.Extensions.uging sul precedente sistema di registrazione di MVVMCRoss


L'uso di Microsoft.Extensions.logging sul precedente sistema di registrazione di MVVMCRoss offre diversi vantaggi:

1. Flessibilità ed estensibilità: Microsoft.Extensions.logging fornisce un livello di astrazione che consente agli sviluppatori di utilizzare vari provider di registrazione come Serilog, Nlog o Log4Net. Questa flessibilità significa che il framework di registrazione può essere facilmente sostituito a seconda delle esigenze del progetto, senza modificare il codice sottostante. Al contrario, il precedente sistema di MVVMCROSS era più rigido e richiesto implementazioni specifiche per diversi fornitori [1] [2].

2. Supporto di iniezione di dipendenza: Microsoft.Extensions.logging si integra bene con i quadri di iniezione della dipendenza, rendendo più facile iniettare logger in classi. Ciò è particolarmente utile per i test unitari, in quanto consente alla creazione di logger finti di verificare il comportamento di registrazione [7]. MVVMCRoss supporta anche l'iniezione di dipendenza per la registrazione, ma l'utilizzo di Microsoft.Extensions.logging fornisce un approccio più standardizzato su diversi quadri [2].

3. Stabilità e supporto della comunità: Microsoft.Extensions.logging è un'API ampiamente adottata e stabile, supportata da Microsoft e dalla più ampia comunità .NET. Questa stabilità garantisce che continuerà a essere mantenuto e aggiornato, fornendo affidabilità a lungo termine per i progetti [2] [9].

4. Configurazione semplificata: con Microsoft.Extensions.logging, la configurazione può essere gestita tramite AppSettings.json o altri file di configurazione, che semplifica il processo di configurazione rispetto ad altri framework di registrazione. Ciò è particolarmente vantaggioso quando si utilizzano provider come Serilog o Nlog, che può essere configurato usando JSON [7].

5. Evitamento del blocco del fornitore: utilizzando un livello di astrazione come Microsoft.Extensions.logging, gli sviluppatori evitano di legare il loro codice a un quadro di registrazione specifico. Ciò semplifica il passaggio da diversi fornitori di registrazione senza significative modifiche al codice, riducendo il blocco dei fornitori e aumentando la flessibilità del progetto [9].

6. Scalabilità e prestazioni: Microsoft.Extensions.logging è progettato per gestire in modo efficiente scenari di registrazione ad alte prestazioni. Supporta la registrazione asincrona e può essere ottimizzato per ambienti diversi, rendendolo adatto per applicazioni su larga scala [9].

In sintesi, Microsoft.Extensions.logging offre una soluzione di registrazione flessibile, scalabile e ampiamente supportata che si integra bene con l'iniezione di dipendenza e vari provider di registrazione, rendendola una scelta superiore rispetto al precedente sistema di registrazione di MVVMCRoss per molti scenari di sviluppo.

Citazioni:
[1] https://developer.vonage.com/en/blog/adaptive-library-logging-with-microsoft-extensions-logging-dr
[2] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-microsoft-extensions-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrado-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-logging-work-for-full-net-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-setup-lass
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part-1-introduction.html
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_ilogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936