شرح دورة حياة صفحة MVC بلغة بسيطة
نشرت: 2021-11-26ستركز هذه المقالة على دورة حياة تطبيق MVC وكيف يعالج التطبيق طلبًا من خلال تمريره عبر مكونات التطبيق. توجد دورتان من الحياة في دورة حياة MVC . دورتا الحياة هاتان هما:
- دورة حياة التطبيق
- دورة حياة الطلب.
جدول المحتويات
دورة حياة التطبيق
تعني دورة حياة التطبيق عمومًا الوقت الذي تبدأ فيه عملية التطبيق في العمل. للإشارة إلى دورة حياة تطبيق MVC ، يتم تمييز بداية التطبيق ونهايته.
دورة حياة الطلب
تعني دورة حياة الطلب سلسلة الأحداث التي تحدث عندما يعالج التطبيق طلب HTTP. التوجيه هو نقطة الدخول لبدء أي تطبيق لـ MVC. عند تقديم طلب إلى النظام الأساسي ASP.NET ، يتم اتخاذ القرار بشأن كيفية معالجة الطلب من خلال وحدة التوجيه النمطية. يعني مصطلح الوحدة مكونات .NET ، والتي تُستخدم لإضافة وظائف إلى الكود. تقع على عاتق وحدات التوجيه مسؤولية مطابقة عنوان URL الوارد إلى المسارات المعنية المحددة في التطبيق. يرتبط معالج المسار بكل مسار ، والذي يشير إلى نقطة الدخول إلى إطار عمل MVC.
إطار عمل MVC مسؤول عن معالجة تحويل بيانات المسار إلى وحدات تحكم ستتعامل مع الطلبات بشكل أكبر. بمجرد الانتهاء من إنشاء وحدة التحكم ، فإن الخطوة التالية هي اتخاذ الإجراء. يتم ذلك من خلال مكون استدعاء الإجراء ، الذي يحدد طريقة إجراء لاستدعاء وحدة التحكم.
بمجرد الانتهاء من التحضير لنتيجة الإجراء ، فإن الخطوة التالية هي تنفيذ النتيجة. يتم إنشاء خطوة فصل للنتيجة من تنفيذ النتيجة. للحصول على نتيجة نوع العرض ، سيقوم التطبيق باستدعاء محرك العرض ، وسوف يجد ويساعد في تقديم العرض. إذا لم تكن النتيجة عرضًا ، فسيتم تنفيذ الإجراء من تلقاء نفسه. إن تنفيذ النتيجة هو الذي يولد الاستجابة الفعلية لطلب HTTP الأصلي.
يعرف المطورون معظم المكونات بأنها تستخدم لمعالجة الطلب. في معظم الحالات ، يتم العمل على الأساليب وأدوات التحكم المتعلقة بالإجراءات. أيضًا ، يتم العمل على نتائج ووجهات نظر مختلفة. ولكن هناك مكونات أخرى أيضًا في إطار MVC. قد يكون هناك العديد من الأسئلة في ذهن المرء حول كيفية تنفيذ تدفق الطلبات من خلال المكونات المختلفة أو دور وحدة HTTP والمعالج أثناء معالجة الطلب. إطار عمل MVC هو إطار عمل لتطوير الويب ، يجب أن تكون هناك وحدات من HHTP ومعالجات HTTP في خط أنابيب MVC للإطار.
توجد العديد من المكونات في دورة حياة صفحة MVC ، بصرف النظر عن وحدة التحكم وطرق الإجراء.
UrlRoutingModule
هذا نوع من وحدة HTTP. عندما يتم تقديم طلب لأول مرة ، يتم اعتراضه من خلال UrlRoutingModule. في هذه الوحدة ، يتم تحديد ما إذا كان يجب على تطبيق MVC معالجة الطلب. تحدد UrlRoutingModule المسار الأول المطابق.
كيف تتم مطابقة الطلب مع تلك المسارات الموجودة في تطبيق MVC من خلال UrlRoutingModule؟
بالنظر إلى طريقة RegisterRoutes ، والتي يتم استدعاؤها من global.asax ، يمكن رؤية المسارات المضافة إلى مجموعة RouteCollection للطرق. يتم استدعاء الأسلوب من معالج الأحداث في application_start لـ global.asax.
مصدر
كيف يتم تحديد المسارات في RouteHandler؟
تُعرَّف المسارات على أنها توابع امتداد ، كما يمكن رؤيتها في طريقة maproute. معالج التوجيه مرتبط بكل المسارات.
يتم تحديد طريقة UrlRoutingModule بالطريقة التالية.
مصدر
من خلال الشرح أعلاه ، يمكن معرفة أن UrlRoutingModule يعرف كل المسارات المحددة في التطبيق. لذلك ، يمكن مطابقة المسار الصحيح مع الطلب في التطبيق.
نقطة مهمة يجب ملاحظتها هي أن الوحدة النمطية UrlRoutingModule تشارك في اختيار المسار الأول المطابق. لذلك كلما تم الكشف عن التطابق ، تتوقف عملية المسح. إذا قمنا بتلخيص الشيء الذي يحدث في هذه المرحلة ، فسيتم إرفاق معالج المسار بالمسارات عبر U RLRoutingModule.
الطريق
من خلال طريقة maproute ، يتم إرفاق المسارات بمثيلات MvcRouteHandler. يتم تطبيق واجهة IRouteHandler من خلال MvcRouteHandler.
لذلك ، يتم استخدام كائن MvcRouteHandler للحصول على مرجع لشيء MvcRouteHandler وهو HTTPHandler للتطبيق.
يتطلب إنشاء MvcRouteHandler استدعاء الأسلوب PostResolveRequestCache (). يمكن تعريف هذه الطريقة PostResolveRequestCache () بالطريقة التالية:
مصدر
لذلك ، تحدث الأحداث التالية في أسلوب PostResolveRequestCache ().
- يوجد أسلوب GetRouteData () في خاصية RouteCollection. يتم استدعاء الأسلوب وتمريره من خلال HttpContext.
- يتم إرجاع كائن RouteData من خلال أسلوب GetRouteData ().
- يتم احتواء خاصية RouteHandler بواسطة routeData الذي يقوم بإرجاع المعالج IRouteHandler للطلب الحالي ، أي MvcRouteHandler.
- ترتبط الطريقة G etHttpHandler () بامتداد MvcRouteHandler يقوم بإرجاع مرجع لـ MvcHandler.
- ثم يتم تفويض عناصر التحكم إلى مثيل MvcHandler.
MvcHandler
MvcHandler هو معالج عادي لـ HTTP. نظرًا لأنه معالج HTTP ، يتم تنفيذ طريقة ProcessRequest (). يمكن تعريف هذه الطريقة ProcessRequest () على النحو التالي:
مصدر
تُستخدم طريقة ProcessRequest () لاستدعاء الطريقة ProcessRequestInit () كما هو محدد في الصورة أدناه:
مصدر
تقع الأحداث التالية في الطريقة ProcessRequest ().
- يتم إنشاء ControllerFactory من خلال استدعاء الأسلوب ProcessRequestInit ().
- ينشئ ControllerFactory وحدة التحكم.
- يتم استدعاء طريقة التنفيذ () لوحدة التحكم.
تحكم المصنع
يمكن للمرء أن يلاحظ أن ControllerFactory يتم الحصول عليه من خلال طريقة ProcessRequest (). ثم يتم استخدام ControllerFactory لإنشاء كائن كائن التحكم. يتم تنفيذ واجهة IControllerFactory بواسطة مصنع أجهزة التحكم.
بشكل افتراضي ، يُنشئ إطار عمل MVC النوع من نوع DefaultControllerFactory عند استخدام ControllerBuilder لإنشاء ControllerFactory.
ينشئ السطر التالي من التعليمات البرمجية ControllerFactory في أسلوب ProcessRequestInit ().
مصدر
مراقب
لقد لوحظ أن كائن التحكم يتم إنشاؤه في ControllerFactory في طريقة ProcessRequest () من MvcHandler. تحتوي وحدة التحكم التي تم إنشاؤها على طرق الإجراءات التي يجب أن يتخذها إطار العمل. عندما يتم تقديم طلب عنوان URL في المتصفح ، هناك استدعاء لطريقة الإجراءات. يتم إنشاء وحدات التحكم بحيث لا يوجد تنفيذ واضح لواجهة IControlle. يتم استخدام وحدة التحكم في الفئة لإنشاء وحدات التحكم التي توفر العديد من الميزات. يمكن لفئة وحدة التحكم أن ترث فئة أخرى من وحدة التحكم تسمى "ControllerBase" كما هو محدد في الكود الموضح أدناه:
مصدر
يتم استخدام ActionInvoker لاستدعاء طرق الإجراءات في وحدة التحكم.
تحدث الأحداث التالية بعد إنشاء وحدة التحكم من خلال مصنع وحدة التحكم:
- استدعاء الأسلوب Execute () of controllerbase.
- يتم استدعاء الأسلوب ExecuteCore () بواسطة الطريقة Execute () التي تم التصريح عنها على أنها مجردة ثم يتم تعريفها من خلال وحدة تحكم الفئة.
- يتم استرداد اسم الإجراء من RouteData من خلال الأسلوب ExecuteCore () بواسطة وحدة تحكم الفئة.
- يتم استدعاء طريقة InvokeAction () ActionInvoker's من خلال الطريقة ExecuteCore ().
ActionInvoker
يتم استخدامه لاختيار الإجراءات.
يتحمل فئة ActionInvoker بعض المسؤوليات المهمة التي تشمل إيجاد طريقة عمل ثم استدعاء طريقة العمل في وحدة التحكم.
الأحداث التي تحدث عند استدعاء طريقة ActionInvoker's InvokeAction () هي:
- يجب الحصول على المعلومات المتعلقة بالمراقب المالي بواسطة ActionInvoker والإجراء المطلوب لأدائه.
- يوفر كائن الواصف هذه المعلومات.
- يتم توفير اسم وحدة التحكم واسم الإجراء بواسطة فئة واصف الإجراء ووحدة التحكم.
- هناك استدعاء لـ ActionMethod.
نتيجة العمل
ActionResult هو نوع من فئة الملخص. لكونها طريقة مجردة ، هناك تطبيقات مختلفة للطريقة ExecuteResult () المقدمة من قبل الفئات الفرعية المختلفة.
تقع الأحداث التالية في ActionResult
- هناك استدعاء لأساليب OnActionExecuting من ActionFilters.
- استدعاء طريقة العمل.
- استدعاء أساليب OnActionExecuted من ActionFilters.
- هناك عودة لـ ActionResult من ActionMethod
- استدعاء الأسلوب ExecuteResult () من ActionResult.
ViewEngine
تستخدم معظم التطبيقات ViewResult كنوع إرجاعها. يتم تقديم عرض من خلال ViewEngine إلى العميل. من هذا العرض ، يمكن إنشاء HTML. يتم إنشاء HTML من العرض من خلال ViewEngine.
الاستنتاجات
يعد فهم دور كل مكون في التطبيق خطوة حاسمة. بهذه الطريقة ، يمكن فهم الروابط بين المكونات وطريقة عملها. إذا كنت تريد أن تكون مطورًا متمرسًا ، فإن إتقان مهاراتك هو أحد الطرق. يمكنك الاطلاع على دورات هندسة البرمجيات عبر الإنترنت من upGrad والتي ستمنحك شهادة وتدريبًا متخصصًا في مجال تطوير التطبيقات والبرامج. تم تصميم الدورة لكل من المهنيين العاملين من الذكور والإناث وهي معتمدة من IIIT-B ، وستحصل على حالة الخريجين الخاصة بهم.
عند تطبيق MVC ، يتم تقسيم التطبيق إلى ثلاث طبقات: طبقة البيانات أو النموذج أو واجهة المستخدم أو العرض والتحكم. كل طبقة من MVC لها وظيفة مختلفة. أولاً ، واجهة المستخدم أو طبقة العرض هي واجهة المستخدم. إنها الواجهة الرئيسية بين المستخدمين والتطبيق. وهي مسؤولة عن تلقي مدخلات المستخدم وتقديم النتائج. ثم يتم توصيل وحدة التحكم بجميع المكونات في طبقة العرض ، وتعالج مدخلات المستخدم ، وترسل البيانات إلى طبقة النموذج ، وترسل النتيجة مرة أخرى إلى المستخدم. طبقة النموذج هي المكان الذي يتم فيه تخزين البيانات. إنها مسؤولة عن التحكم في البيانات. بالإضافة إلى ذلك ، طبقة النموذج مسؤولة أيضًا عن قراءة البيانات وكتابتها في التخزين. يستخدم إطار عمل ASP.NET MVC قوة حالة جلسة ASP.NET. حالة الجلسة هي خدمة ويب مضمنة في النظام الأساسي ASP.NET. إنها مسؤولة عن الحفاظ على جميع الكائنات والبيانات والمعلومات الأخرى المرتبطة بجلسة معينة. يحافظ كائن SessionState على قيم حالة الجلسة. كما أنها مسؤولة عن تعبئة قيم كائن الجلسة والحفاظ عليها. يعمل كائن Session كبوابة إلى حالة الجلسة. إنها خاصية الكائن SessionState وهي ما يتم استخدامه لتخزين واسترداد القيم لحالة الجلسة. المرشحات في MVC هي تلك التي توضع بين وحدة التحكم والنموذج ويمكن استخدامها للتحقق من صحة إدخال المستخدم أو تعديل إخراج النموذج. فيما يلي بعض المرشحات في MVC. 1. عوامل تصفية التحقق من الصحة - تساعد عوامل تصفية التحقق من الصحة في التحقق من صحة إدخال المستخدم. 2. مرشحات الإجراءات - تساعد مرشحات الإجراءات على تعديل مخرجات النموذج. 3. مرشحات النموذج - تساعد مرشحات النموذج على تعديل مخرجات النموذج. 4. مرشحات الإخراج - تستخدم مرشحات الإخراج لتعديل إخراج النموذج.هل يمكنك شرح دورة حياة الصفحة الخاصة بـ MVC؟
كيف يمكننا الحفاظ على الجلسات في MVC؟
كم عدد أنواع الفلاتر الموجودة في MVC؟