واضح ترین مزیت استفاده از الگوی معماری MVC در وب اپلیکیشن ها، مجزا سازی رابط کاربری از منطق اپلیکیشن است. امروزه به خاطر رواج دیوایس هایی همچون موبایل و تبلت، پشتیبانی از این دیوایس ها به یک مشکل همیشگی برای توسعه دهندگان مبدل شده است. رابط کاربری اپلیکیشن بسته به این که ریکوئست از سمت چه دیوایسی ارسال شده -یک کامپیوتر معمولی یا یک گوشی موبایل- می بایست متفاوت باشد. مدل همواره دیتای ثابتی را در اختیار کنترلر قرار میدهد اما این کنترلر است که بسته به این که درخواست از طرف چه نوع دیوایسی ارسال شده می بایست تصمیم بگیرد که کدام ویو را برای نمایش دادهها برگزیند.
علاوه بر این که الگوی معماری ام وی سی منجر به جدا سازی نمای اپلیکیشن از منطق آن می شود، ام وی سی تا حد قابل توجهی منجر به کاهش پیچیدگی های اپلیکیشن ما خواهد شد به خصوص زمانی که این اپلیکیشن بسیار گسترده میشود. سورس کد اپلیکیشن به مراتب ساختار یافته تر بوده و بالتبع ویرایش و توسعه ی اپلیکیشن به مراتب راحتتر صورت خواهد گرفت.
حال ممکن است این سؤال برای کسانی که تازه قدم به دنیای برنامه نویسی و طراحی سایت گذاشتهاند پیش بیاید که چرا می بایست از فریم ورک ها استفاده کنیم؟ در پاسخ به این سؤال بایستی گفت زمانی که ما از یک فریم ورک استفاده می کنیم، ساختار پایهای آن فریم ورک از پیش به صورت MVC بوده و شما اصلاً نیازی به ایجاد چنین ساختاری نخواهید داشت بلکه فقط نیاز است تا فایلها و دایرکتوری های مد نظر خود را با فایلها و دایرکتوری های از پیش ساخته شده جایگزین کنید. علاوه بر این، بسیاری از فریم ورک های MVC قابلیتهای بسیاری را در قالب کتابخانه ای از کلاسهای مختلف در اختیار شما قرار میدهند که این مسأله سرعت کدنویسی از یک سو و همچنین اطمینان از کدهای نوشته شده که به مراتب مهمتر است از سوی دیگر را بیشتر خواهد کرد چرا که فریم ورک ها توسط صدها برنامه نویس حرفهای از سراسر جهان با پشتیبانی شرکت های مطرح برنامه نویسی شکل گرفتهاند لذا این تضمین را ایجاد میکنند که سایر توسعه دهندگان با خیال راحت میتوانند از این فریم ورک ها استفاده کنند. برای مثال، فریم ورک ZF2 که سکان آکادمی با استفاده از آن نوشته شده است را مد نظر قرار می دهیم:
- config
- data
- module
- public
- vendor
همانطور که در ساختار بالا مشاهده می شود، فریم ورک ZF2 از یکسری فولدرهای پیشفرض برای یک وب اپلیکیشن استفاده می کند. به طور مثال، کلیه ی کانفیگ های وب اپلیکیشن داخل فولدر config قرار خواهند گرفت و یا کلیه ی فایلهای سی اس اس، جاوا اسکریپت، تصاویر، ویدیوها و … داخل فولدر public قرار می گیرند. از میان فولدرهای فوق، فولدر vendor به عنوان مغز وب اپلیکیشن ما حساب خواهد شد چرا که حاوی کلیه ی کلاس ها، سرویس ها و کتابخانههای فریم ورک زند است که ما با استفاده از آن ها، وب اپلیکیشن خود را توسعه می دهیم. فولدر module هم جایی است که بسته به نوع اپلیکیشن که داریم، کلیه ی مدل ها، ویوها و کنترلرها را در قالب ماژول هایی مجزا از یکدیگر داخل آن قرار میدهیم و میشود گفت فولدری است که همواره با آن سروکار خواهیم داشت چرا که Business Logic وب اپلیکیشن ما داخل این فولدر به تدریج شکل خواهد گرفت. در صورتی که وارد فولدر module شویم، فولدر دیگری خواهیم دید تحت عنوان Application که این فولدر به عنوان ماژول پیشفرض و اصلی فریم ورک زند است. با ورود به داخل این فولدر، چیزی همچون آنچه در ادامه میبینیم مشاهده خواهید کرد:
- config
- language
- src
- view
مجدد فولدری داریم تحت عنوان config که در آن کلیه ی کانفیگ های اختصاصی ماژول Application را قرار می دهیم. فولدر language مسئول نگهداری فایلهای زبان است و این فولدر زمانی به کار ما خواهد آمد که بخواهیم یک سایت چند زبانه داشته باشیم. فولدر src که مخفف source به معنی «منبع» است، جایی است که مسئول نگهداری کلیه ی کنترلرها و مدل های وب اپلیکیشن ما است و در نهایت به فولدر view میرسیم که مسئول نگهداری کلیه ی فایلهای ویو می باشد.
توجه داشته باشیم که ساختار هر فریم ورک با فریم ورک های دیگر کاملاً متفاوت میتواند باشد. به طور مثال، فولدر بندی فریم ورکی همچون لاراول کاملاً متفاوت از آنچه در بالا مشاهده کردیم است اما به هر حال مفهوم MVC در کلیه ی فریم ورک هایی که از این الگوی معماری اپلیکیشن تبعیت میکنند پیادهسازی شده است.