Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon هل يمكنك شرح التفاعل بين مشاريع Core و UI في MVVMCross


هل يمكنك شرح التفاعل بين مشاريع Core و UI في MVVMCross


MVVMCROSS هو إطار عمل عبر المنصات يسهل تطوير التطبيقات باستخدام نمط عرض الموديل (MVVM). يسمح للمطورين بإنشاء حلول متنقلة مقرونة بشكل فضفاض وقابل للصيانة وقابل للاختبار عن طريق فصل منطق التطبيق إلى جزأين رئيسيين: المشروع الأساسي ومشروع واجهة المستخدم.

المشروع الأساسي

عادةً ما يكون المشروع الأساسي مكتبة .NET Standard التي تحتوي على جميع الكود المشترك ، بما في ذلك:
- ViewModels: هذه هي المسؤولة عن التعامل مع تفاعلات المستخدم ومنطق الأعمال.
- النماذج: تمثل هياكل البيانات المستخدمة في جميع أنحاء التطبيق.
- الخدمات: توفير الوصول إلى البيانات أو خدمات الويب أو الموارد الخارجية الأخرى.
- المحولات: تستخدم لتحويلات نوع البيانات.
- فئة التطبيق: هذا مسؤول عن تهيئة منطق أعمال التطبيق وعرض النماذج. كما أنه يتعامل مع تسجيل الكائنات المخصصة في حاوية انقلاب التحكم (IOC).
- AppStart: تم استخدامه اختياريًا لتحديد نموذج العرض الذي يجب تقديمه أولاً عند بدء تشغيل التطبيق.

مشروع واجهة المستخدم

مشروع واجهة المستخدم هو خاص بالنظام الأساسي ويحتوي على عناصر واجهة المستخدم ورمز النظام الأساسي. لكل منصة مستهدفة (على سبيل المثال ، iOS ، Android) ، يوجد مشروع مستخدم منفصل. وتشمل هذه المشاريع:
- وجهات النظر: كل طريقة عرض مسؤولة عن تقديم نموذج عرض مقابل. تم تصميم طرق العرض باستخدام أدوات المنصة الأصلية (على سبيل المثال ، XAML لـ Xamarin.forms ، AXML لنظام Android).
- معالج التطبيق الأصلي: هذا يتعامل مع أحداث دورة الحياة الأصلية. على سبيل المثال ، على Android ، سيكون فئة "MainActivity" أو "mainapplication" ، بينما على iOS ، سيكون فئة "AppDelegate".
- فئة الإعداد: هذا مسؤول عن bootstrapping mvvmcross وتسجيل الخدمات الخاصة بالمنصة. يقوم بتهيئة إطار عمل MVVMCROSS ويقوم بإعداد حاوية IOC مع تطبيقات خاصة بالنظام الأساسي.

التفاعل بين مشاريع Core و UI

يتم تسهيل التفاعل بين مشاريع Core و UI في MVVMcross بواسطة نمط MVVM وحاوية IOC الخاصة بالإطار. إليكم كيف يتفاعلون:
- ربط ViewModel: تستخدم مشاريع واجهة المستخدم MVVMCROSS لربط المشاهدات لعرض النماذج. يتم ذلك عادةً باستخدام اتفاقية تسمية أو عن طريق تزيين وجهات النظر بسمات مثل `[mvxviewfor (typeof (HomeViewModel))]`.
- حقن الخدمة: يحدد المشروع الأساسي واجهات الخدمات التي يتم تنفيذها بشكل مختلف على كل منصة. يتم تسجيل هذه الخدمات في حاوية IOC وحقنها في نماذج العرض ، مما يتيح وظائف خاصة بالنظام الأساسي دون تكرار رمز.
- التنقل والعرض التقديمي: يوفر MVVMcross آليات للتنقل بين نماذج العرض وعروض العرض. يستخدم Framework مقدمي العروض (على سبيل المثال ، `imvxiosviewpresenter` ،` imvxandroidviewpresenter`) لإدارة كيفية عرض المشاهدات على كل منصة.

من خلال فصل منطق التطبيق إلى مشاريع Core و UI ، يمكّن MVVMCross المطورين من زيادة إعادة استخدام التعليمات البرمجية عبر الأنظمة الأساسية مع السماح بالتخصيص الخاص بالمنصة وتحسينه [1] [3] [5].

الاستشهادات:
[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
[3] https://leaware.com/creating-cross-latform-xamarin-applications-use-the-mvvmcross-framework/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5]
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8]