Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon كيف يعالج أكثر الكتب مبيعًا أخطاء مقبض في MVVMCROSS


كيف يعالج أكثر الكتب مبيعًا أخطاء مقبض في MVVMCROSS


تعامل عينة من أفضل الكتب في MVVMCross مع الأخطاء باستخدام تقنيتين أساسيتين:

1. فئات BASEVIEWMODEL لمعالجة الأخطاء المشتركة: تستخدم عينة من أفضل الكتب مبيعًا فئة "BaseViewModel` لتغليف التعليمات البرمجية المشتركة ، بما في ذلك آليات معالجة الأخطاء. يسمح هذا النهج بإدارة مركزية لمنطق معالجة الأخطاء الشائعة عبر نماذج العرض المختلفة. على سبيل المثال ، يتم تعريف طريقة "GeneralAsyncload`" في "BaseViewModel" وتستخدمها نماذج العرض المختلفة لتحميل البيانات بشكل غير متزامن. يمكن أن تتضمن هذه الطريقة منطق معالجة الأخطاء التي يتم مشاركتها عبر التطبيق.

2. جهاز توجيه خطأ على مستوى التطبيق: تستخدم العينة أيضًا "توجيه خطأ" على مستوى التطبيق لإدارة كيفية نشر الأخطاء من نماذج العرض إلى واجهة المستخدم. يتضمن ذلك استخدام كائن تم حقنه ، وعادةً ما يكون "ierrorreporter" ، والذي يتم تهيئته كفرد مفردة أثناء بناء التطبيق. يشترك كل مشروع واجهة مستخدم خاصة في النظام الأساسي في الأحداث من هذا المفرد باستخدام واجهة "ierrorsource`. يتيح هذا الإعداد آليات عرض الأخطاء الخاصة بالنظام الأساسي ، مثل UialertViews على iOS أو الخبز المحمص على Android ، مما يسمح لكل منصة بالتعامل مع الأخطاء بطريقة أصلية في بيئتها.

في الممارسة العملية ، عندما يحدث خطأ أثناء التشغيل غير المتزامن ، مثل تحميل البيانات من خدمة الويب ، يتم اكتشاف الخطأ والإبلاغ عنه باستخدام "ierrorreporter". يتيح ذلك للتطبيق عرض رسائل خطأ سهلة الاستخدام أو اتخاذ إجراءات بديلة مثل إعادة تشغيل العملية أو تحميل البيانات غير المتصلة بالإنترنت.

على سبيل المثال ، إذا واجهت `` katevoristviewmodel` خطأ أثناء تحميل الفئات ، فيمكنه استخدام طريقة "GeneralAsyncload` من" BaseViewModel "للتعامل مع الخطأ. ثم يتم الإبلاغ عن الخطأ من خلال "ierrorreporter" ، الذي يؤدي إلى إشعار واجهة المستخدم المناسب بناءً على النظام الأساسي.

يضمن هذا النهج أن معالجة الأخطاء مركزية ومرنة على حد سواء ، مما يتيح سهولة التكيف مع منصات وسيناريوهات مختلفة في إطار MVVMCROSS.

الاستشهادات:
[1] http://slodge.blogspot.com/2012/05/one-pattern-for-error-handling-in.html
[2] https://leaware.com/creating-cross-platform-xamarin-applications-use-the-mvvmcross-framework/
[3] https://asktom.oracle.com/ords/f؟p=100٪3A11٪3A٪3A٪3A٪3A00_QUESTION_ID٪3A1422998100346727312
[4] https://stackoverflow.com/questions/10411352/what-is-the-suggled-way-to-handle-danceptions-during-in-a-mvvmcross-application
[5] https://github.com/mvvmcross/mvvmcross-samples/blob/master/oldsamples/bestsellers/bestsellers.touch/appdelegate.cs
[6] https://discourse.getdbt.com/t/how-to--thand-test-failures/3824
[7] https://www.telerik.com/blogs/blazor-best-practices-handling-errors
[8] https://stackoverflow.com/questions/15697523/running-sample-projects-in-mvvmcross-v3-hot-tuna
[9] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx