Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ما هي الاختلافات الرئيسية بين استخدام mvvmcross و xamarin.forms


ما هي الاختلافات الرئيسية بين استخدام mvvmcross و xamarin.forms


MVVMCROSS و XAMARIN.Forms هما تقنيتان متميزتان تستخدمان في تطوير تطبيقات الهاتف المحمول عبر المنصات ، وكل منهما يقدم أغراض مختلفة ويقدم مزايا فريدة.

نظرة عامة على xamarin.forms

Xamarin.forms هو إطار عمل تم تطويره بواسطة Microsoft يسمح للمطورين بإنشاء تطبيقات منصة عبر النظام الأساسي باستخدام قاعدة كود C# المشتركة و XAML لواجهة المستخدم. يمكّن المطورين من الكتابة مرة واحدة والتشغيل على منصات متعددة ، بما في ذلك iOS و Android و UWP. Xamarin.forms مثالية للمشاريع التي يكون فيها واجهة مستخدم ثابت عبر المنصات مطلوبًا ، ويبسط عملية التطوير من خلال توفير واجهة برمجة تطبيقات موحدة لمكونات واجهة المستخدم. ومع ذلك ، فإن هذا الاتساق يأتي على حساب المرونة ، حيث يقتصر واجهة المستخدم على مجموعة فرعية من العناصر الشائعة من كل منصة ، مما قد يؤدي إلى قيود في تحقيق المظهر الأصلي والشعور أو تخصيص واجهة المستخدم المتقدمة [4] [7].

نظرة عامة على MVVMCROSS

MVVMCROSS هو إطار MVVM (Model-View-Viewmodel) الذي يدعم Xamarin.IOS ، Xamarin.android ، Xamarin.forms ، وغيرها من المنصات. إنه يركز على فصل منطق العمل عن واجهة المستخدم ، مما يسمح للمطورين بمشاركة جزء كبير من التعليمات البرمجية عبر منصات مختلفة. يوفر MVVMCROSS ميزات مثل ربط البيانات ، والتنقل ، وانعكاس التحكم ، وحقن التبعية ، مما يسهل تطوير التطبيقات المعقدة. على عكس xamarin.forms ، لا يفرض MVVMCross إطار عمل واجهة المستخدم المحدد ؛ بدلاً من ذلك ، يسمح للمطورين باختيار كيفية رغبتهم في تنفيذ واجهة المستخدم لكل منصة ، مما يوفر مزيدًا من المرونة في تحقيق تجارب واجهة المستخدم الأصلية [7] [10].

الاختلافات الرئيسية

1. تطبيق واجهة المستخدم:
- xamarin.forms: يستخدم طبقة واجهة المستخدم المشتركة عبر الأنظمة الأساسية ، مما يبسط التطور ولكنه قد يحد من التخصيص والمظهر والمظهر الأصلي.
- MVVMCROSS: يسمح بتنفيذ واجهة المستخدم الأصلية على كل منصة أو واجهة المستخدم المشتركة مع xamarin.forms ، مما يوفر المزيد من المرونة في تحقيق تصميمات واجهة المستخدم الخاصة بالمنصة.

2. مشاركة الكود:
- يمكّن كلا الأطر مشاركة الكود ، لكن MVVMCross يركز على مشاركة منطق الأعمال (ViewModels) مع السماح بتطبيقات واجهة المستخدم المختلفة. Xamarin.forms يشارك كل من واجهة المستخدم ومنطق الأعمال.

3. التنقل وربط البيانات:
- يوفر MVVMCross نظام ملاحة قوي وقدرات ربط البيانات التي تعمل عبر أطر واجهة المستخدم المختلفة ، بما في ذلك xamarin.forms. يعتمد Xamarin.Forms على آليات ملزمة التنقل وربط البيانات الخاصة به.

4. تعقيد المشروع:
- بالنسبة للمشاريع المعقدة التي تتطلب تخصيص واجهة المستخدم المتقدمة أو ميزات النظام الأساسي ، قد يكون MVVMcross أكثر ملاءمة بسبب مرونته. بالنسبة للمشاريع الأكثر بساطة حيث تكون واجهة مستخدم ثابتة كافية ، يمكن أن تكون Xamarin.Forms أكثر وضوحًا للتنفيذ.

5. نهج التنمية:
- غالبًا ما يفضل المطورين Xamarin.forms من قبل المطورين المطلعين على XAML و .NET ، لأنه يوفر تجربة تطوير موحدة. يعد MVVMCROSS مفيدًا للمشاريع التي يحتاج فيها منطق العمل إلى فصلها عن واجهة المستخدم ، مما يسمح بمزيد من التحكم في تطبيق واجهة المستخدم على كل منصة.

باختصار ، على الرغم من أن كلا من الأطر يدعمان التطوير عبر المنصات ، فإن Xamarin.Forms يركز على مشاركة طبقة واجهة المستخدم عبر المنصات ، في حين أن MVVMcross يؤكد على مشاركة منطق العمل ويسمح بخيارات تنفيذ واجهة المستخدم أكثر مرونة. يعتمد الاختيار بينهما على متطلبات المشروع فيما يتعلق بتخصيص واجهة المستخدم ، والتعقيد ، واستراتيجية مشاركة الكود.

الاستشهادات:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[5]
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9]
[10]