
معماری MVC در سال ۱۹۷۰ معرفی گردید اما در آن زمان پیاده سازی برنامه های Stand Alone با استفاده از این معماری چندان مورد استقبال برنامه نویسان قرار نداشت. اما با آمدن اینترنت و برنامه های مبتنی بر وب این معماری شانس دوباره ای پیدا کرد. ASP.NET MVC فریم ورک مبتنی بر معماری MVC مایکروسافت است .از دلایل محبوبیت معماری MVC نظم بخشیدن به پروژه هامی باشد. معمولا به علت همکاری چندین تکنولوژی مختلف با هم در برنامه های مبتنی بر وب ساختار پروژه های بزرگ پیچیده می شوند و اعمال تغییرات و همچنین رفع خطا های پروژه مشکل و زمانبر می شوند که معماری MVC با جداسازی لایه های مختلف برنامه نویسی تا حد زیادی این مشکل را رفع کرده اند. از دیگر مزایای این فریم ورک می توان به کنترل کامل بر روی کدهای HTML ، پشتیبانی از فریم ورک های مختلف برای Unit Testing ، کنترل بر روی آدرسهای URL و تعامل راحت تر با فریم ورکهای javascript اشاره کرد.
MVC چیست؟
نام MVC از Model View Controller برگرفته شده و هدف اصلی آن جدا سازی اجزای تشکیل دهنده برنامه است.بخصوص برنامه هایی که دارای واسط کاربری گرافیکی هستند (GUI-Graphical User Interface) این الگوی طراحی در سایر فریم ورک ها مثل Ruby on Rails و Django و Zend هم بکار برده شده است.
Mدر MVC معادل Model است و حاوی اطلاعاتی است که در اختیار کاربر قرار خواهد گرفت.
V در MVC معادل View است. و حاوی اطلاعاتی است که کاربر نهایتا در مرورگرخواهد دید. view در واقع userinterface برنامه است.
C در MVC معادل Controller است. کنترلر رابط بین model وview است. کنترلر ۳ مسئولیت اصلی دارد:
پردازش درخواست های ورودی
انجام عملیات بر روی مدل(Domain Model)
انتخاب view ای که باید در پاسخ به درخواست رندر شود
هر کنترلر شامل چندین متد public است که هر متد یک action ارائه میدهد که قرار است کنترلر بر روی مدل اجرا کند. هر action method در کنترلر با یک URL مرتبط است. وقتی کنترلر درخواستی برای آن URL خاص دریافت میکند، Action متناسب با آن را اجرا کرده و view انتخابی را رندر کرده و به بروزر برمیگرداند.