recent
احدث الدروس

الدرس السابع من سلسلة دروس انشاء موقع التسوق الاول - انشاء كلاس من النوع الـ View model

 



اهلا وسهلا بكم احبائي في هذه المحاضرة ان شاء الله سوف نتعلم كيفية انشاء كلاس من النوع الـ View Model .. قبل ان نبدأ بهذه المحاضرة سوف نتذكر ما اخذناه في المحاضرات السابقة .


قمنا بإنشاء  جدول لصفحات الموقع  في قاعدة البيانات اسميناه PagesTbl يحتوي على الحقول التالية ( اسم الصفحة بالعربي ، اسم الصفحة بالانجليزي، وصف للصفحة ، تبديل الصفحة ، وهل الصفحة لها شريط جانبي ام لا ..

وبما ان قاعدة البيانات تم انشاؤها في بيئة الـ Sqlserver  وانشأنا  مشروعنا في  بيئة اخرى هي بيئة الـ Visual studio  لذلك قمنا بكتابة كود الاتصال مع قاعدة البيانات في ملف الـ Web config  .

وايضا قمنا بعمل كلاس مهم جدا اسميناه بـ ShopDb  وغرضة عملية التفاعل مع قاعدة البيانات ويحتوي على اسماء الكلاسات من النوع الـ DTO ويعيد DbSet  وهو يورث من الـ DBContext  

وايضا قمنا بعمل كلاس من النوع الـ DTO اسميناه PagesDTO  وقلنا ان هذه الكلاسات تحتوي على كل الخصائص التي تحاكي  اعمدة الجدول الـ Pages  وسوف نتستخدمة لعملية نقل البيانات مع جدول قاعدة البيانات وكذلك الخصائص في الكلاس Viewmodel والذي هو عنوان محاضرتنا لهذا اليوم .

اهداف المحاضرة 

هدفنا ان يلم المبرمج في نهاية المحاضرة بالأهداف التالية

  1. مفهوم الكلاس وما الهدف من استخدامه .
  2. انشاء كلاس يعبر عن جدول الصفحات وانشاء الخصائص فيه
  3. مفهوم الـ validation Role وماهي المكتبة التي تحتويها
  4. كتابة validation عل الخصائص و ما فائدة الـ validation role
  5. الفرق بين الكلاس DTO وأيضا الكلاس من النوع View Model

مفهوم الكلاس والهدف من استخدامه

الكلاس من النوع الـ View model يستخدم لتخصيص الاعمدة التي نريد استخدامها فقط في الـ View والتي سوف تاخذ بياناته من الكلاس الـ DTO اي سوف تتبادل البيانات مع الكلاس الـ DTO ومفهوم هذا الكلاس انك تستطيع تمرير اكثر من خصائص الكلاس من النوع الـ DTO الى هذا الكلاس والذي من النوع الـ View Model فلربما تحتاج الى اكثر من خاصية ومن اكثر من جدول تسخدمها في الـ View ولهذا جاء استخدام هذا الكلاس من النوع View model ليسمح لك باستخدام اكثر من خاصية لاكثر من جدول ومن ثم استدعاء هذا الكلاس في الكنترولر ، ومن فوائد الـ View Model ان كتابة الكود يكون فيه منظما .


انشاء كلاس يعبر عن جدول الصفحات وانشاء الخصائص فيه

الان بعد ما عرفنا مفهوم الكلاس من النوع الـ ViewModel سوف نقوم الان ببناء كلاس يسمى PageVM اي من النوع ViewModel. لذلك سنذهب الى بيئة الـ Visual Studio ثم نقوم بعمل مجلد يسمى View Model ومن المجلد نضع فيه كلاس نسميه PageVM





الان سوف نقوم بكتابة الخصائص على هذه الكلاس والتي نريد ان نستخدمها فقط في الـ View ونقوم Validation Role عليها



تلاحظون في الصورة اعلاه اننا كتبنا بعض الخصائص والتي نريد ان تعرض فقط على للمستخدم وايضا نريد استخدامها وايضا وضعنا بعض خصائص التحقق من صحة المدخلات على هذه الخصائص تسمى هذه الخصائص Validation Role

مفهوم الـ Validation Role وماهي المكتبة التي تحتويها

الـ validatin Role هي خصائص تقيد الـ الخصائص التي تمثل الحقول للجدول بتحقق من المدخلات وصحة البيانات وهي توضع على الخاصية للحقل مثلا توضع على خاصية الاسم اوخاصية البريد الاكتروني او خاصية الوصف على سبيل المثال سنتعرض بعض الـ Validation Role والتي وضعنها في الكلاس
  • خاصية الـ Required : هذه الخاصية تقيد الحقل(اسم الصفحة بالعربي ) بانه يجب ادخال نص فيها ويجب الا تكون فارغة
  • خاصية StringLength : هذه خاصية تقيد حجم طول النص للحقل (الاسم بالعربي ) بان لايقل على ثلاثة حروف ولا يزيد ان 50 حرف 
  • خاصية Display : هذه خاصية تقيد عرض العنوان بان يظهر - اسم الصفحة بالعربي 

اما المكتبة التي تحوي هذه الـ Validation Role تسمى Data annotations كما في الصورة :


وفي هذا الكلاس سوف نقوم الان بعمل دالتان تسمى contractor والفائدة منها تمرير Object من الكلاس DTO الى الخصائص لهذا الكلاس


في الصورة اعلاه قمنا بتمرير Object  من النوع الـ DTO  الى الخصائص حيث اسندنا قيم التي تاتي من الـDTO  الى الخصائص في الكلاس VM  
وايضا قمنا بعمل دالة أخرى من النوع الـ Constructor فقط ليتم استدعاؤه من الكنترولر لحفظ البيانات من خلاله   

ليصبح في النهاية شكل الكلاس كاملا بهذه الطريقة :

الفرق بين الكلاس DTO وأيضا الكلاس من النوعView Model

هناك اوجه تشابه بين الـ View Model وبين الـ DataMole(DTO) وكذلك هناك اختلاف مثلا :
التشابه : نقل البيانات في سجل بين الطبقات والكلاسات
الاختلاف : المقصود من ViewModel أن يتم استخدامه في الـ View ، لكي يتم عرضه على المستخدم النهائي ، واستخدام هذه الخصائص في ادوات العرض او الادخال . وكذلك الـ ViewModle يسخدم لتمرير البيانات من الـ controller الى الـ View والعكس ، عادة ما يكون DTO غير مخصص للعرض. والغرض منه هو إرسال البيانات وتبادلها بين الطبقات .

في نهاية هذه المحاضرة … نعطيكم اسئلة اختبار لتقييم فهمك للمحاضرة .

  1. ما مفهوم الكلاس وما الهدف من استخدامه ؟
  2. انشئ كلاس يعبر عن جدول الصفحات واكتب الخصائص فيه ؟
  3. ما مفهوم الـ Validation Role وماهي المكتبة التي تحتويها ؟
  4. اكتب validation عل الخصائص و ما فائدة الـ validation role؟
  5. ماهو الفرق بين وظيفة الكلاس DTO وأيضا الكلاس من النوعView Model؟
يمكنكم متابعة المحاضرة من موقعنا في اليوتيوب ومن الرابط التالي عمل كلاس من النوع View Model


نلتقيكم في المحاضرة القادمة .. مع رعاية الله 
author-img
دروس ومشاريع برمجية - جديد التقنية والابداع

تعليقات

ليست هناك تعليقات
إرسال تعليق
    google-playkhamsatmostaqltradent