اهلا وسهلا بكم احبائي .. في هذه المحاضرة ان شاء الله سوف نقوم بعمل بعض التعليمات البرمجية في ملف Class . في المحاضرة السابقة تعلمنا كيفية انشاء قاعدة البيانات وانشاء جدول الـ Pages . وان شاء الله في هذه المحاضرة سوف نقوم بعمل كلاس يحاكي جدول الـ Pages بمعنى اننا سوف نقوم ببناء خصائص تمثل اعمدة جدول الـ Pages وسوف نشير الى هذا الكلاس بخصائص تحاكي جدول الصفحات الـ Pages
اهداف المحاضرة
- مفهوم الكلاس وما الهدف من انشاؤه .
- إنشاء كلاس يعبر عن جدول الصفحات وانشاء الخصائص فيه
- مفهوم الكلاسات من النوع DTO
- مفهوم الكلاسات من النوع View Model
- الفرق بين الكلاسات من النوع View Model والنوع DTO
- مفهوم الـ Validation Role وماهي المكتبة التي تحتويها
- كتابة الـ Validation Role للخصائص وذكر الغرض من ذلك
مفهوم الكلاس وما الهدف من انشاؤه
هو ملف يضم خصائص Properties لمجموعة من الكائينات الـ Object . هذه الخصائص تعرض صفات هذه الكائنيات على سبيل المثال : اعطاء خاصية اللون للسيارة ، اعطاء خاصية العنوان للصفحة .
قد يحتوي الكلاس على دوال يمكن تمثيل سلوك هذه الكائنات فيها مثلا يمكن ان نكتب دالة في هذا الكلاس تحتوي على تعليمات برمجية لتغيير اللون للسيارة او نكتب تعليمة برمجية لتغيير العنوان للصفحة .
هذا الكلاس بمحتواه يمكن ان نستفيد منه في المشروع كاملا باستدعاء الدوال فيه او الخصائص ويمكن ان نطبق فيه مايعرف بالبرمجة الكائنية او OOP وتطبيق الوراثة وتقليل الكود البرمجي وتقسيمه
انشاء كلاس يعبر عن جدول الصفحات وانشاء الخصائص فيه
من بيئة الفيجوال ستوديو سوف نذهب الى مشروعنا ومنه الى Solution Explorer ومن ومجلد الـ MODLE ننشئ مجلد يمسى Data Model ونننشئ فيه كلاس يسمى Page DTO
مفهوم الكلاس من النوع الـ DTO
لاحظ معي اسمينا هذا الكلاس PAGE DTO اي من النوع DTO وهي اختصار لجملة (DATA TRANSFER OPJECT)
وغرض هذا الكلاس انه سيحاكي جدول الصفحات اي اننا سوف نقوم ببناء خصائص فيه تمثل اعمدة جدول الصفحات . وهذه الكلاسات من النوع DTO غرضها نقل البيانات بين طبقات اخرى وفي تطبيقنا سوف تسخدم هذه الكلاسات لتمرير البيانات بين كلاسات اخرى من النوع VIEW MODEL .
اذن الان لنقم ببناء الكلاس من النوع DTO كما هي واضحة في الصورة التالية :
في هذه الكلاس مثلنا جدول الصفحات بهذه الخصائص وهي ( رقم الصفحة حيث كتبنا عليها خاصة KEY لنميزها على ان العمود هو مفتاح اساسي ، وكذلك اسم الصفحة بالعربي واسم الصفحة بالانجليزي ووصف الصفحة وترتيب الصفحة وهل الصفحة لها شريط جانبي ام لا وكذلك العمود FLAG للتحكم باخفاء الصفحة او لا
كذلك لاحظ اننا ميزنا الجدول بكتابة الخاصية TABLE للاشارة باسم الجدول حيث عملناه بين قوسين
وكما اشرنا سابقا ان هذا الكلاس سوف يتم تبادل البيانات بينه وبين كلاس من النوع View Mode.
مفهوم الكلاس من النوع View Model
الكلاسات من النوع الـ View Model … احيانا نحتاج الى عرض بعض الاعمدة الخاصة باجدول ماء وكما في مثالنا نحتاج الى عرض بعض الاعمدة مثل اسم الصفحة ووصف الصفحة والاسم بالعربي والاسم بالانجليزي .. وقد لا نحتاج على عرض بقية الاعمدة لذلك سوف نعمل كلاس غرضه عرض الاعمدة او الكنترول التي نريدها فقط .
توضيح اكثر عام
قد نحتاج الكلاس من النوع الـ View Model للاسباب التالية :
- إخفاء خصائص معينة لا يفترض أن يشاهدها العملاء.
- حذف بعض الخصائص لتقليل حجم الحمولة.
- فصل الطبقة عن طبقة قاعدة البيانات.
- احيانا تسخدم لتحسين التقارير والرسوم البيانية لاظهار الاحصائيات وقف اعمدة محددة
لذلك سوف نقوم بعمل كلاس من النوع View Model نذهب الى المجلد الـ View Model ثم نقوم بعمل كلاس نسميه
Page VM
ونكتب فيه الخصائص التالية :
كما تلاحظون اننا انشأنا كلاس من النوع VIEW MODEL وهذا الكلاس وضعنا فيه خصائص نريد ان نعرضها على المستخدم وايضا قمنا بعمل CONSTRUCTOR لتمرير القيم الى خصائص هذا الكلاس من الكلاس المسمى PAGEDTO وكما ذكرنا سابقا ان الكلاس من النوع DTO يقوم بتبادل الباينات من هذا الكلاس من النوع VIEW MODEL
مفهوم الـ VALIDATION ROLE
الـ VALIDATION ROLE : ادوات التحقق من صحة البيانات . بمعنى انه عندما يقوم المستخدم بادخال او ترك القيم فارغة في مربع النص فان فائدة هذه الجمل المسمى VALIDATION ROLE تقوم بتنبيه المستخدم بانه يجب ادخال بيانات على مربع النص مثلا او تصحيح المدخلات
وتعني الاتي :
- REQURED : اي ان هذا الحقل او الخاصية مطلوب ادخال الباينات فيه ولا يمكن تركها من غير ادخال البيانات
- STRING LENGTH : طول النص مطلوب ادخاله لايقل على ثلاثة حروف ولا يزيد عن خمسون حرف
- DISPLAY: عرض النص اي العنوان بهذه الشكل ( اسم الصفحة بالعربي
المكتبة التي تعرف هذه الـ VALIDATION ROLE تسمى DATAANNOTATIOS كما هي واضحة في الصورة
يمكنك متابعة المحاضرة على قناتنا على اليوتيوب انشاء كلاس من النوع DTO لمشروع التسوق الاول ولا تنسوا الاشتراك في القناة وكتابة تعليق .
انتهت محاضرتنا لهذا اليوم .. وبالاخير .. نقدم لكم اسئلة الاختبار لهذه المحاضرة
- ما مفهوم الكلاس وما الهدف من انشاؤه ؟
- انشئ كلاس يعبر عن جدول الصفحات واكتب الخصائص فيه ؟
- ما مفهوم الكلاسات من النوع DTO ؟
- ما مفهوم الكلاسات من النوع View Model؟
- اذكر الفرق بين الكلاسات من النوعة View Model والنوع DTO ؟
- ما مفهوم الـ Validation Role وماهي المكتبة التي تحتويها ؟
- اكتب الـ Validation Role للخصائص في الكلاس PAGEVM وذكر الغرض من ذلك