MVVMCROSS هو إطار MVVM متعدد المنصات قوي يوفر العديد من الفوائد لتطوير تطبيقات المنصات عبر المنصات ، خاصة عند استخدامها مع Xamarin. فيما يلي بعض المزايا الرئيسية لاستخدام MVVMCROSS:
نمط MVVM وإعادة استخدام الكود
يتيح MVVMCROSS للمطورين تنفيذ نمط عرض النموذج-ViewModel (MVVM) ، وهو مفيد لفصل منطق التطبيق عن واجهة المستخدم. يتيح هذا الفصل إعادة استخدام منطق العمل عبر منصات مختلفة ، مثل iOS و Android و Windows ، عن طريق وضع عروض ViewModels في مكتبة فئة محمولة (PCL) أو .NET Standard Library [1] [2]. يعزز هذا النهج بشكل كبير إعادة استخدام التعليمات البرمجية ، حيث يمكن استخدام نفس العرض عبر منصات متعددة ، مع تطبيق كل منصة واجهة المستخدم الأصلية.ربط البيانات
يدعم MVVMCROSS ربط البيانات ، وهو أمر بالغ الأهمية لنمط MVVM. يتيح ربط البيانات تحديث عناصر واجهة المستخدم تلقائيًا عند تغيير البيانات الأساسية ، مما يقلل من الحاجة إلى التحديثات اليدوية ورمز BoilerPlate [3] [5]. تساعد هذه الميزة في الحفاظ على فصل نظيف للمخاوف بين واجهة المستخدم ومنطق العمل.حقن التبعية وانعكاس السيطرة
يتضمن MVVMCROSS حاوية انعكاس مدمج للتحكم (IOC) تدعم حقن التبعية. هذا يتيح للمطورين إدارة التبعيات بسهولة بين المكونات والخدمات. باستخدام حقن المنشئ ، يمكن أن تتلقى ViewModels خدمات خاصة بالنظام الأساسي دون الحاجة إلى معرفة تفاصيل التنفيذ ، مما يسهل كتابة رمز منصة عبر النظام الأساسي [2] [5].الإضافات والوظائف الخاصة بالمنصة
يوفر MVVMcross بنية البرنامج المساعد تمكن المطورين من إنشاء واستخدام ميزات خاصة بالنظام الأساسي دون تكرار رمز. يمكن تثبيت هذه المكونات الإضافية بسهولة عبر nuget وتوفير وظائف مثل الوصول إلى الكاميرا أو GPS أو عمليات قاعدة البيانات ، والتي يتم تنفيذها بشكل مختلف على كل منصة [1] [2]. يبسط هذا النهج تكامل الخدمات الخاصة بالمنصة في تطبيقات منصة.قابلية الاختبار
واحدة من الفوائد المهمة لاستخدام MVVMCROSS هي تحسين قابلية الاختبار في ViewModels. نظرًا لأن ViewModels تحتوي على منطق العمل ويتم فصلها عن واجهة المستخدم ، يمكن اختبارها بسهولة بشكل مستقل عن رمز واجهة المستخدم الخاص بالمنصة [2] [5]. هذا يجعل من السهل كتابة اختبارات الوحدة لمنطق التطبيق.التنقل وعرض مقدمي العروض
يوفر MVVMcross نظام ملاحة قوي في ViewModel ، والذي يتضمن المركز الأول. تساعد هذه المكونات في إدارة كيفية تقديم المشاهدات على منصات مختلفة ، مما يسمح بمزيد من المرونة في التنقل وعرض واجهة المستخدم [8].المرونة والتمديد
يدعم MVVMcross كلاً من مقاربات تطوير Xamarin Native و Xamarin.Forms ، مما يوفر المرونة في اختيار كيفية تنفيذ طبقة واجهة المستخدم [9]. بالإضافة إلى ذلك ، تضمن طبيعتها مفتوحة المصدر والمجتمع النشط أنه يمكن تمديدها وتخصيصها لتلبية احتياجات المشروع المحددة.بشكل عام ، يعزز MVVMCROSS تطوير المنصات عبر المنصات من خلال تعزيز إعادة استخدام التعليمات البرمجية ، وتبسيط التطبيقات الخاصة بالنظام الأساسي ، وتحسين القدرة على الصيانة والتطبيق.
الاستشهادات:[1]
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[4] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-tat-xamarin-doesnt-already
[5]
[6]
[7] https://www.toptal.com/app/xamarin-mvvmcross-skiasharp-cross-platform
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started