Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

7 تغريدة 54 قراءة Sep 25, 2019
استكمالاً لما سبق , الMVVM اختصار لModel View ViewModel Model و قد بُني على MVC و MVP من قبل مايكروسوفت لتقنية WPF مع انه كان هناك شيء مشابه له اختصاره MVPM كتب عنه Martin Fowlerفي بداية الالفين.
لنفهم فائدة الMVVM , مايكروسوفت عندما قدمت Silverlight و WPF او Xaml بشكل عام .هذه الادوات تحتاج لمسة من مصمم جرافكس محترف فبدل ان نعطي المصمم كل المشروع نستطيع ان نعطيه فقط هذه الجزئية و نعمل كمبرمجين على جانب الBackend.
اللي اشتغل على KnockoutJS بيكون الMVVM مألوف لديه حيث ان فكرته هي تقسيم المشروع إلى ثلاثة اقسام Model فيه مصدر البيانات بدون تشكيل و فيه View و ViewModel مهمته الValidation و اعادة تشكيل البيانات بما يتناسب مع الView.
بالنسبة للView و قبل الحديث عنها في MVVM هناك نوعين من الView فإما Passive مثل الذي ذكرناه في سلسلة الMVP حيث ان الPresenter هو اللي يتحكم بالView و يعرض او يقرأ منه البيانات و يكون الView غير مرتبط مباشرة مع الModel
النوع الثاني هو الـ Active View تكون فيه البيانات مربوطة عبر آلية data binding مباشرة مع الModel فإي تغير في الView ينعكس على الModel و العكس صحيح. لكن في الـMVVM الربط مع الViewModel و ليس مباشرة مع الModel.
عندما اذكر كلمة Model هنا فأنا لا اقصد الBusiness Model بل فقط الModel الخاص بالUI اما الBusiness Model فمن الافضل أن يكون مفصولاً في مشروع اخر.
هناك امر مهم هنا و هو ان الViewModel في MVVM اخذ مهمة الController في الMVC و مهمة الPresenter في MVP فهو المنسق بين الModel و الView . الآن مايكروسوفت اعتمدت MVVP في تقنية Xamarin لبناء تطبيقات الهواتف و التي ارى انها تحسنت كثير عما كانت عليه في بدايتها.

جاري تحميل الاقتراحات...