تعلم ASP.NET MVC


الدرس: نمط MVC


الصفحة السابقة
الآن وبعد مراجعة أساسيات الويب وتثبيت أدوات التطوير ، فقد حان الوقت لبدء استخدام ASP.NET MVC . لأن HTML جيّد ، ولكن ليس بهذا سنقوم بإنشاء تطبيق الويب الخاص بنا في المستقبل.

لذلك ، سنخوض في صلب الموضوع من خلال معالجة أساسيات نموذج MVC pattern الذي يستند إليه ASP.NET MVC . ثم سنطبق هذه القواعد مع hello world صغير لرؤية ملموسة على الشاشة (مع ذلك ، هذا ما وعدتك به في هذه الدورة!).
لا تقلق إذا كان كل شيء غير واضح من القراءة الأولى ، سيكون لديك متسع من الوقت للعودة إليها لاحقًا.
سخن العقول إلى 180 درجة ودعنا نذهب. 

ما هو MVC ولماذا استخدامه؟

MVC هو نمط تصميم(design pattern) شائع جدًا لإنشاء مواقع الويب. نمط التصميم هذا هو حل مثبت ومعترف به لفصل عرض المعلومات وإجراءات المستخدم والوصول إلى البيانات.

يرمز MVC إلى Model-View-Controller . إنه نموذج تم تصميمه في الأصل لما يسمى بتطبيقات "
heavy clientالعميل الكثيف" ، بمعنى أن غالبية البيانات تتم معالجتها على جهاز كمبيوتر العميل (على سبيل المثال: معالج نصوص مثل Word ) . كانت MVC قوية جدًا بالنسبة لتطبيقات "العميل الكثيف" بحيث تم اعتمادها على نطاق واسع كنموذج لإنشاء تطبيقات الويب (تسمى "light clientعميل رفيع "). هذا هو استخدام MVC للويب الذي سأصفه هنا بالطبع.

سوف تفهم أن MVC غير مرتبط بلغة برمجة وأنه يمكن استخدامه مع الكثير من اللغات. يستخدم MVC كثيرا مع PHP على سبيل المثال أو حتى JAVA . بشكل عام ، تعمل MVC كطبقة إضافية (تسمى "إطار عمل"). هذا هو الحال بالنسبة لـ ASP.NET MVC والذي يعد طبقة إضافية لـ ASP.NET .
لذلك يعد MVC حلاً جيدًا لإنشاء تطبيقات الويب وسنقوم بتفصيل جميع المزايا ، ولكن لنبدأ أولاً مع العيب الوحيد الذي لا يمثل أحدها في كثير من الأحيان: يوفر MVC أعطالًا تتطلب بعض الجمباز العقلي والذي يضاعف عدد الملفات. لذا MVC غالبًا ما يكون غير متناسب مع المواقع الصغيرة جدًا التي لا تتطور أبدًا. ولكن نظرًا لوجود عدد قليل من هذه المواقع ، فإن هذا العيب ضئيل للغاية.

لحسن الحظ ، على الرغم من التعقيد النسبي للمواقع الصغيرة ، فإن إطار عمل MVC الخاص بـ ASP.NET يجلب الكثير من البساطة ويخفي هذا التعقيد قليلاً للمواقع الصغيرة بفضل آلية سأصفها لاحقًا والتي تسمى " اصطلاح بدلاً من الاعدادات " .
يجعل MVC أيضًا من الممكن تصميم التطبيقات بشكل واضح وفعال بفضل الفصل بين النوايا. عمليا يتم تبسيط الصيانة والتحديث إلى حد كبيركما أنه من الأسهل التعديل في مكان واحد ينطوي على خطر حدوث مشاكل في أماكن أخرى بحيث يكون كل شيء متشابكًا. على سبيل المثال ، من الشائع جدًا أن يتغير عرض موقع الويب بشكل منتظم أكثر من البيانات التي نريد عرضها. بفصل جيد ، سيتعين علينا فقط تعديل جزء صغير جدًا من الكود دون لمس الباقي الذي يعمل بشكل جيد جدًا. وبالمثل ، إذا تغيرت قاعدة العمل - على سبيل المثال ، تخيل أن موقع التجارة الإلكترونية يرغب في تغيير طرق التسليم الخاصة به - ليست هناك حاجة للمس الواجهة ، يكون خطر التأثيرات محدودًا.

تعمل MVC أيضًا على تسهيل توزيع المهام بين المطورين. قليل من الناس قادرون على تحويل قواعد العمل المعقدة إلى كود فعال أثناء كونهم خبراء في تصميم مواقع الويب ، سواء للكمبيوتر الشخصي أو الكمبيوتر اللوحي أو الهاتف الذكي ... يتيح التفصيل للمطور الاهتمام بقواعد العمل مجمع ومصمم لجعل HTML مريح جميل.
إذاً هذا التقسيم جميل جداً ، لكن كيف يعمل؟

حرف M لـ Model (للنموذج)

يرمز حرف M في MVC إلى Model  . هذه هي بيانات وحالة تطبيق الويب الخاص بك (على سبيل المثال سلة المشتريات الخاصة بك على موقع التجارة الإلكترونية ، أو قائمة المنتجات للشراء ، ...). بشكل عام ، يتم تمثيل هذه البيانات من خلال مجموعة من الفئات التي توفر الوصول إلى قاعدة بيانات ، ولكن يمكن تخزين بياناتك في ملفات مسطحة أو ملفات XML ، أو حتى يمكن أن تستخدم فئاتك خدمات ويب أو خدمات أخرى ...

باختصار ، في النموذج ، سيكون لديك وصول كاف إلى بياناتك. خذ على سبيل المثال موقع التجارة الإلكترونية ، فلن يكون لديك بلا شك فئة عميل أو فئة طلبية أو فئة منتج ، إلخ. ستكون هناك طرق للحصول على تفاصيل عميل معين ، والعثور على أمر ، واسترداد المنتجات بترتيب تصاعدي للسعر ، إلخ. سيتم تخزين كل هذه المعلومات في قاعدة بيانات ، ولما لا تستخدم ORM مثل Entity Framework لتسهيل الوصول إلى البيانات.
يعني ORM باللغة الإنجليزية object-relational mapping ، والذي يمكن ترجمته بواسطة "تعيين الكائنات العلائقية" . إنها تقنية برمجة كمبيوتر تجعل من الممكن إنشاء مراسلات بين قاعدة بيانات علائقية وكائن نموذجي للفئات.

في هذه الدورة ، سوف نستخدم أولاً نموذجًا بسيطًا للصف مع بيانات ثابتة. ثم ، في وقت لاحق ، سوف نستخدم ORM Entity Framework لدفع النموذج إلى حدوده ...
لاحظ أن النموذج لا يعرف طريقة العرض ولا وحدة التحكم. الغرض الوحيد منه هو أن يتم استشارته أو تعديله من قبلهم.

الحرف V لـ View (للعرض)

يرمز الحرفV في MVC إلى العرض(View)  ويتعامل مع ما يظهر على الشاشة في متصفح الويب. سيكون عادةً كود HTML و CSS . الغرض من العرض هو تقديم البيانات من النموذج ولكن دون تعديلها ، دون تفسير محتواها.

في أحد مواقع الويب ، عادةً ما يكون هناك عدة طرق عرض وغالبًا ما يتوافق عرض واحد مع صفحة واحدة. في موقع التجارة الإلكترونية لدينا ، على سبيل المثال ، ستعرض طريقة عرض واحدة خصائص المنتج ، بينما يعرض الآخر الصفحة الرئيسية ، بينما يسمح لك عرض آخر بعرض الطلب ، إلخ.
قد يكون لدينا أيضًا طرق عرض متعددة لتمثيل نفس المعلومات. على سبيل المثال ، من الممكن تمامًا تقديم تقرير على شكل أشكال في جدول ، ولكن أيضًا في شكل رسوم بيانية شريطية أو غيرها ...

سترى أن طريقة العرض أسهل لإتقانها ، خاصة إذا كنت تعرف لغة HTML بالفعل قليلاً. بالإضافة إلى ذلك ، يقدم ASP.NET MVC لنا كل المساعدة التي نحتاجها لتكون فعالة بشكل كامل في تحقيق واجهات العرض.

الحرف C لـ Controller (وحدة تحكم)

الحرف C فيMVC تعني وحدة التحكم . وهي تتحكم في الارتباط بين العرض والنموذج.

تدير وحدة التحكم التفاعلات مع المستخدم وتحدد المعالجات التي يجب القيام بها لاتخاذ إجراء معين. بشكل عام ، سوف يستخدم بيانات النموذج ، ويعالجها وفقًا لإجراءات المستخدم ، ويرسلها إلى العرض بحيث يعرضها.
سنرى أن وحدة التحكم هي في قلب النظام ، فهي تفسر البيانات "الضوابط" الواردة من المستخدم ، مثل البيانات الواردة من نموذج أو ببساطة إجراء تم إجراؤه عبر عنوان URL .

إنها ممارسة جيدة للحفاظ على وحدة تحكم أقل قدر ممكن. يجب عليه معالجة الإجراء واختيار العرض الصحيح. من المهم أن نفهم حقًا دور كل عنصر لأنه في أكثر الأحيان ، إذا كنت لا تعرف مكان وضع شيء ما ، فإنك تخاطر بوضعه في وحدة التحكم ...

الرسم البياني للتلخيص

فيما يلي رسم تخطيطي صغير لتذكيرك بـ MVC وكيف تتفاعل الطبقات المختلفة مع بعضها البعض:
ASP.NET framework
مخطط MVC
  1. إجراء المستخدم عبر طلب HTTP
  2. التشاور و / أو تحديث النموذج (اختياري)
  3. وحدة التحكم التي تقرر عرضه
  4. عرض إرجاع HTML إلى المتصفح
سنرى خلال هذه الدورة كيفية تصنيع الكود الخاص بك باستخدام MVC . لا يهم إذا لم تكن قد أدركت تمامًا اهتمام هذه البنية ، فسترى تدريجياً كيفية فهمها بشكل صحيح والاستفادة منها.
لاحظ أنني لم أتحدث عن ذلك حتى الآن ، ولكن نمط تصميم MVC يجلب عنصرًا إضافيًا غير مهم: يسهل اختبار تطبيقه. عندما يكون كل شيء متشابكًا ، يكون من الصعب جدًا اختبار تطبيقه. بعد ذلك ، يجب عليك بدء تشغيله ، والنقر في كل مكان ، ومعرفة ما إذا كان يعمل ، أو إذا تعطل ، ومحاولة تخمين مصدره. مع MVC ، يمكنك بسهولة اختبار التطبيق الخاص بك بفضل الفصل بينهم. سيكون من السهل جدًا اختبار وحدات التحكم والطراز وحتى كتابة اختبارات تلقائية للتحقق من عدم وجود اخطاء. ستكون طريقة العرض معقدة دائمًا للاختبار لأنها ستتطلب تدخلًا يدويًا ، ولكن الميزة هي أنه سيكون لديك فقط قيود "مرئية" للاختبار.

في الخلاصة

  • MVC هو قالب تصميم مناسب بشكل خاص لإنشاء تطبيق ويب.
  • MVC هو اختصار لـ Model-View-Controller يحتوي الطراز على بيانات التطبيق ، ويحتوي العرض (أو المشاهدات) على الكود لعرض صفحات التطبيق ، ويقوم المراقب بإدارة تفاعلات المستخدم بجعل الرابط مع النموذج والعرض.
  • يسمح MVC بفصل واضح ويحسن إنشاء تطبيق ويب أو موقع ، وصيانته واختباراته الآلية.