Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quels sont les avantages de l'utilisation de Microsoft.Extensions.


Quels sont les avantages de l'utilisation de Microsoft.Extensions.


L'utilisation de Microsoft.Extensions.Logging sur le système de journalisation précédent de MVVMCross offre plusieurs avantages:

1. Flexibilité et extensibilité: Microsoft.Extensions.Logging fournit une couche d'abstraction qui permet aux développeurs d'utiliser divers fournisseurs de journalisation tels que Serilog, NLOG ou LOG4NET. Cette flexibilité signifie que le cadre de journalisation peut être facilement échangé en fonction des besoins du projet, sans modifier le code sous-jacent. En revanche, le système précédent de MVVMCross était plus rigide et nécessitait des implémentations spécifiques pour différents fournisseurs [1] [2].

2. Support d'injection de dépendance: Microsoft.Extensions.Logging s'intègre bien aux cadres d'injection de dépendance, ce qui facilite l'injecter des journalistes dans les classes. Ceci est particulièrement utile pour les tests unitaires, car il permet à la création de journalistes simulés pour vérifier le comportement de journalisation [7]. MVVMCross prend également en charge l'injection de dépendance pour la journalisation, mais l'utilisation de Microsoft.Extensions.Logging fournit une approche plus standardisée sur différents cadres [2].

3. Stabilité et support communautaire: Microsoft.Extensions.Logging est une API largement adoptée et stable, prise en charge par Microsoft et la communauté .NET plus large. Cette stabilité garantit qu'elle continuera d'être maintenue et mise à jour, offrant une fiabilité à long terme pour les projets [2] [9].

4. Configuration simplifiée: avec Microsoft.Extensions.logging, la configuration peut être gérée via AppSettings.json ou d'autres fichiers de configuration, ce qui simplifie le processus de configuration par rapport à certains autres frameworks de journalisation. Ceci est particulièrement bénéfique lors de l'utilisation de fournisseurs comme Serilog ou NLOG, qui peuvent être configurés à l'aide de JSON [7].

5. Évitement du verrouillage des fournisseurs: En utilisant une couche d'abstraction comme Microsoft.Extensions.logging, les développeurs évitent de lier leur code à un cadre de journalisation spécifique. Cela facilite la commutation entre les différents fournisseurs de journalisation sans modifications de code significatives, réduisant le verrouillage des fournisseurs et augmentant la flexibilité du projet [9].

6. Évolutivité et performances: Microsoft.Extensions.Logging est conçu pour gérer efficacement les scénarios de journalisation haute performance. Il prend en charge la journalisation asynchrone et peut être optimisé pour différents environnements, ce qui le rend adapté aux applications à grande échelle [9].

En résumé, Microsoft.Extensions.Logging offre une solution de journalisation flexible, évolutive et largement prise en charge qui s'intègre bien à l'injection de dépendance et à divers fournisseurs de journalisation, ce qui en fait un choix supérieur sur le système de journalisation précédent de MVVMCross pour de nombreux scénarios de développement.

Citations:
[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/upgrade-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-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-start-1-production.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