تمثل 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؟ وما هي تجاربكم مع أساليب إنشاء المشاريع البرمجية المختلفة؟