تم تصميم MVVMCROSS للتعامل مع الكود الخاص بالنظام الأساسي بكفاءة من خلال فصل منطق التطبيق إلى جزأين رئيسيين: مشروع أساسي ومشاريع خاصة منصة. يحتوي المشروع الأساسي ، عادةً على مكتبة .NET Standard ، على منطق الأعمال ، ونماذج العرض ، والموديلات ، والواجهات للخدمات الخاصة بالمنصة. يتيح هذا الحد الأقصى لمشاركة التعليمات البرمجية عبر منصات مختلفة مثل Android و iOS و Windows.
مشاريع خاصة منصة
يحتوي كل مشروع خاص من النظام الأساسي (على سبيل المثال ، Xamarin.android ، Xamarin.IOS) على واجهة المستخدم وتطبيق الخدمات الخاصة بالنظام الأساسي. هذه المشاريع مسؤولة عن تهيئة إطار عمل MVVMCROSS وتسجيل خدمات خاصة بالنظام الأساسي باستخدام فئة الإعداد. تعمل فئة الإعداد بمثابة bootstrapper لـ MVVMCross ، مما يسمح للمطورين بتخصيص سلوك الإطار لكل منصة.
انعكاس التحكم (IOC) وحقن التبعية
يستخدم MVVMCROSS حاوية تحكم (IOC) لإدارة التبعيات عبر التطبيق. يتيح ذلك تسجيل الخدمات الخاصة بالمنصة وحقنها في منطق المشروع الأساسي. على سبيل المثال ، إذا احتاج التطبيق إلى الوصول إلى خدمات موقع GPS ، فيمكن تسجيل خدمة GPS في فئة الإعداد الخاصة بالمنصة ثم حقنها في نماذج العرض أو أجزاء أخرى من المشروع الأساسي.
تخصيص سلوك النظام الأساسي
يمكن للمطورين تخصيص السلوك الخاص بالنظام الأساسي من خلال تجاوز الأساليب في فئة الإعداد. على سبيل المثال ، على Android ، قد تتجاوز الأساليب في "mvxandroidsetup` لتسجيل الخدمات الخاصة بنظام Android أو التعامل مع أحداث دورة الحياة الخاصة بنظام Android. وبالمثل ، على iOS ، ستستخدم `mvxiossetup` للتعامل مع التهيئة وتسجيل الخدمة الخاصة بـ iOS.
عرض مقدمي العروض
يوفر MVVMCROSS أيضًا مقدمي العرض ، والذين مسؤولون عن تحديد كيفية تقديم المشاهدات على كل منصة. يسمح ذلك بتخصيص منطق عرض واجهة المستخدم ، مثل إظهار طرق العرض بشكل أساسي أو كجزء من مكدس التنقل ، اعتمادًا على اتفاقيات المنصة.
الإضافات والإضافات
يوفر MVVMCross إطار عمل إضافي يسمح للمطورين بدمج الإضافات الثالثة بسهولة للوظائف المشتركة مثل التوطين وأجهزة الاستشعار والمزيد. يمكن استخدام هذه المكونات الإضافية عبر منصات متعددة ، مما يقلل من الحاجة إلى رمز خاص بالنظام الأساسي.
باختصار ، يعالج MVVMCross رمزًا خاصًا للمنصة من خلال توفير نهج منظم لفصل المنطق المشترك عن التطبيقات الخاصة بالنظام الأساسي. يستخدم IOC والحقن التبعية لإدارة خدمات النظام الأساسي ، ويسمح بالتخصيص من خلال فئة الإعداد ، ويدعم المكونات الإضافية لتوسيع الوظائف عبر الأنظمة الأساسية.
الاستشهادات:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-use-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-pecific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-pecific-service-causes-an-exception-mvvmcross-xamarin-ios
[7]
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup