Microsoft.extensions.loggen over het vorige logboeksysteem van MVVMCross biedt verschillende voordelen:
1. Flexibiliteit en uitbreidbaarheid: Microsoft.Extensions.Logging biedt een abstractielaag waarmee ontwikkelaars verschillende logaanbieders kunnen gebruiken, zoals Serilog, NLog of Log4Net. Deze flexibiliteit betekent dat het logboekraamwerk eenvoudig kan worden verwisseld, afhankelijk van de behoeften van het project, zonder de onderliggende code te wijzigen. Het vorige systeem van MVVMCross was daarentegen rigide en vereiste specifieke implementaties voor verschillende providers [1] [2].
2. Afhankelijkheidsinjectieondersteuning: Microsoft.extensions.Logging integreert goed met afhankelijkheidsinjectie -frameworks, waardoor het gemakkelijker wordt om loggers in klassen te injecteren. Dit is met name handig voor het testen van eenheden, omdat het mogelijk maakt om neploggers te maken om het logboekgedrag te verifiëren [7]. MVVMCross ondersteunt ook afhankelijkheidsinjectie voor logboekregistratie, maar met behulp van Microsoft.extensions.Logging biedt een meer gestandaardiseerde aanpak in verschillende frameworks [2].
3. Stabiliteit en gemeenschapsondersteuning: Microsoft.Extensions.Logging is een algemeen aangenomen en stabiele API, ondersteund door Microsoft en de bredere .NET -community. Deze stabiliteit zorgt ervoor dat het zal worden gehandhaafd en bijgewerkt, waardoor de langetermijnbetrouwbaarheid voor projecten wordt geboden [2] [9].
4. Vereenvoudigde configuratie: met Microsoft.Extensions.Logging kan configuratie worden beheerd via AppSettings.json of andere configuratiebestanden, die het instelproces vereenvoudigt in vergelijking met enkele andere log -frameworks. Dit is vooral nuttig bij het gebruik van providers zoals Serilog of NLog, die kunnen worden geconfigureerd met JSON [7].
5. Vermijding van leveranciersvergrendeling: door een abstractielaag zoals Microsoft.extensions.Logging te gebruiken, vermijden ontwikkelaars hun code niet aan een specifiek logboekwerk te binden. Dit maakt het gemakkelijker om te schakelen tussen verschillende logboekaanbieders zonder significante codeveranderingen, waardoor de leveranciervergrendeling wordt verminderd en de projectflexibiliteit wordt vergroot [9].
6. Schaalbaarheid en prestaties: Microsoft.Extensions.Logging is ontworpen om krachtige logboekingsscenario's efficiënt af te handelen. Het ondersteunt asynchrone houtkap en kan worden geoptimaliseerd voor verschillende omgevingen, waardoor het geschikt is voor grootschalige toepassingen [9].
Samenvattend biedt Microsoft.Extensions.Logging een flexibele, schaalbare en algemeen ondersteunde logboekoplossing die goed integreert met afhankelijkheidsinjectie en verschillende houtkapproviders, waardoor het een superieure keuze is over het vorige logboeksysteem van MVVMCross voor veel ontwikkelingsscenario's.
Citaten:[1] https://developer.vonage.com/en/blog/adaptive-liibrary-ogging-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-klogging
[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-forl-Net-Ramework
[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.stephrencleary.com/2018/05/microsoft-extensions-part-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