11

ما هو الأسلوب البرمجي MVC

تمثل MVC نموذج معماري عام architectural pattern يستخدم لفصل مكونات المشروع المنطقية عن بعضها البعض، هذه المكونات هى Model-View-Controller تكتب إختصارا MVC وهي من أفضل الأساليب لإنشاء المشاريع البرمجية القابلة للتوسع.

هذه المكونات الثلاث يمكن توضيحها كما يلي: 

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

مكون View: من خلال هذا المكون نقوم بعرض البيانات الموجودة في المكون Model وعرضها علي المستخدمين، لذلك من الطبيعي أن يحتوي على كل الاكواد التي تعمل علي عرض البيانات للمستخدم مثل أكواد HTML-CSS-JavaScript الخاصة بالواجهات الأمامية وجعلها قابلة للعرض في متصفحات الإنترنت.

وعلى الرغم من حصول مكون VIEW على البيانات من مكون MODEL إلا أنه لا يمتلك أي فكرة عن كيف سيقوم المستخدم بالتعامل مع هذه البيانات مثل الإضافة عليها أو تعديلها أو حذفها وغير ذلك من العمليات لذا يأتي دور المكون الثالث Controller.

مكون Controller: هذا المكون يتواجد بين طبقتي VIEW و MODEL ويحتوي على كل الأكواد البرمجية التي تقوم بمعالجة البيانات من الطرفين فهو يستمع إلى الأحداث EVENTS التي تحدث في ال VIEW ويقوم بمعالجتها واستدعاء الوظائف الخاصة والمناسبة من مكون MODEL والتي بدورها تقوم بالتحديث وفقا للكود الذي تم استدعاءه. ومن خلال ترابط MODEL و VIEW يتم عكس هذا التحديث الذي تم على ال VIEW ليظهر للمستخدم كنتيجة فعلية لما قام به.

تعتمد الكثير من إطارات العمل مثل ASP.NET - LARAVEL- EXPRESS وغيرهم الكثير، على أسلوب MVC في تطوير المشاريع البرمجية، فكيف كانت الاستفادة التي حصلتم عليها من خلال استخدام MVC؟ وما هي تجاربكم مع أساليب إنشاء المشاريع البرمجية المختلفة؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

حاولت الانتقال من web forms إلى mvc لكن لم أتمكن من هضم الفكرة فلم أتعلمه رغم كل ما يكتب عن mvc

كان فكرة web forms واضحة أن تستخدم صفحات الويب كما تستخدم الـ forms تسحب زر وتنقر عليه نقرا مزدوجا وتكتب الكود

وانتظرت إلى أن تم اختراع asp.net core حيث يتم استخدام html كـ views مع استخدام razor pages سيكون بهذه السهولة

<html>
<body>
@for(var i = 10; i < 21; i++)
{
<p>السطر رقم @i</p>
}
</body>
</html>

التوجه الآن نحو MVVM

واحدة من الطرق الرائعة في آنها هي web forms لكنها يشوبها الكثير من نقاط الضعف والكثير من عوامل البطئ بسبب تكدث المكتبات بشكل افتراضي، وما ثبت فاعليته حقا هو الاسلوب الرائع mvc في هذا الصدد دعني اتسائل نحو MVVM وما الذي تقصده به؟