باستخدام Microsoft.Extensions.logging عبر نظام التسجيل السابق في MVVMCross يوفر العديد من الفوائد:
1. المرونة والتمديد: Microsoft.Extensions.logging يوفر طبقة تجريبية تتيح للمطورين استخدام مختلف مقدمي التسجيل مثل Serilog أو NLOG أو Log4Net. تعني هذه المرونة أنه يمكن تبديل إطار التسجيل بسهولة اعتمادًا على احتياجات المشروع ، دون تغيير الكود الأساسي. في المقابل ، كان نظام MVVMCROSS السابق أكثر صلابة ويتطلب تطبيقات محددة لمقدمي الخدمات المختلفين [1] [2].
2. دعم حقن التبعية: Microsoft.Extensions.logging يتكامل بشكل جيد مع أطر حقن التبعية ، مما يسهل ضخ أجهزة تسجيل الدخول في فئات. هذا مفيد بشكل خاص لاختبار الوحدة ، لأنه يسمح بإنشاء تسجيلات تسجيلات وهمية للتحقق من سلوك التسجيل [7]. يدعم MVVMCROSS أيضًا حقن التبعية في التسجيل ، ولكن باستخدام Microsoft.Extensions.Logging يوفر نهجًا أكثر توحيدًا عبر أطر مختلفة [2].
3. الاستقرار ودعم المجتمع: Microsoft.Extensions.logging هو واجهة برمجة تطبيقات مستقرة ومستقرة على نطاق واسع ، بدعم من Microsoft ومجتمع .NET الأوسع. يضمن هذا الاستقرار الحفاظ عليه وتحديثه ، مما يوفر موثوقية طويلة الأجل للمشاريع [2] [9].
4. التكوين المبسط: مع Microsoft.Extensions.logging ، يمكن إدارة التكوين من خلال AppSettings.json أو ملفات التكوين الأخرى ، مما يبسط عملية الإعداد مقارنة ببعض أطر التسجيل الأخرى. هذا مفيد بشكل خاص عند استخدام مقدمي الخدمات مثل Serilog أو Nlog ، والتي يمكن تكوينها باستخدام JSON [7].
5. تجنب قفل البائع: باستخدام طبقة تجريد مثل Microsoft.Extensions.logging ، يتجنب المطورون ربط الكود الخاص بهم إلى إطار تسجيل محدد. هذا يجعل من السهل التبديل بين مزودي قطع الأشجار المختلفين دون تغييرات كبيرة في التعليمات البرمجية ، مما يقلل من قفل البائع وزيادة مرونة المشروع [9].
6. قابلية التوسع والأداء: تم تصميم microsoft.extensions.logging للتعامل مع سيناريوهات تسجيل الأداء عالية الأداء بكفاءة. وهو يدعم التسجيل غير المتزامن ويمكن تحسينه لبيئات مختلفة ، مما يجعله مناسبًا للتطبيقات واسعة النطاق [9].
باختصار ، توفر Microsoft.Extensions.Logging حل تسجيل مرن وقابل للتطوير ودعم على نطاق واسع يتكامل بشكل جيد مع حقن التبعية ومقدمي عمليات التسجيل المختلفون ، مما يجعله خيارًا متفوقًا على نظام تسجيل MVVVMCROSS السابق للعديد من سيناريوهات التطوير.
الاستشهادات:]
[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-mvmcross-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-bart-1-introduction.html
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11]
[12] https://github.com/mvvmcross/mvvmcross/issues/2936