MVC معماری مدل ویو کنترولر در توسعه نرم افزار
در این آموزش می خواهیم با یک معماری کاربردی در توسعه نرم افزار های وب به نام MVC آشنا بشیم و در ادامه به بررسی و توضیح مفاهیم و کاربرد هاو مزایا و معایب آن بپردازیم .
سلام به همگی
من مصطفی شاه امیری هستم از کانال آی تی باز. در این آموزش می خواهیم با یک معماری کاربردی در توسعه نرم افزار های وب به نام MVC آشنا بشیم و در ادامه به بررسی و توضیح مفاهیم و کاربرد هاو مزایا و معایب آن بپردازیم .
Model View Controller
یا به اختصار MVC نوعی روش معماری نرمافزار است که در توسعه وب اپلیکیشنها بسیار پرکاربرد است و ورود آن به صنعت توسعه نرمافزار به دهه 1970 بازمیگردد. امروزه فریمورکهای مطرحی که در توسعه نرمافزارهای کوچک و بزرگ مورد استفاده قرار میگیرند مبتنی بر این معماریاند .
تاریخچه معماری MVC
MVC توسط دکتر Trygve Reenskaug یک دانشمند علوم کامپیوتری نروژی بود با زبان برنامه نویسی Smalltalk-76، درست زمانی که او از مرکز تحقیقات Xerox Palo Alto Research Center یا PARC در اواسط سال 1970 بازدید کرد، معرفی شد. بعداً این پیادهسازی در نسخههای دیگر Small-Talk نیز مورد استقبال قرار گرفت. در سال 1979 به منظور توسعه GUI با استفاده از زبان Smalltalk از این معماری استفاده کرد و در سالهای بعد این معماری به مرور در میان توسعهدهندگان مختلف رواج پیدا کرد تا جایی که الگوهای دیگری من جمله HMVC ،MVA ،MVP و MVVM بر این اساس شکل گرفتند. در سال 1988، مقالات "The Journal of Object Technology (JOT)" تصویر کاملی از MVC،به عنوان یک مفهوم کاملاً پذیرفته شده ارائه دادند
نسخههای مختلف MVC که بعدها با نیاز به طراحی اپلیکیشن به وجود آمدند، موارد زیر هستند:
• (Hierarchical model-view-controller (HMVC
• (Model-View-Presenter (MVP
• (Model-view-adapter (MVA
• (Model-view-viewmodel (MVVM
ورود این معماری به توسعه وب به سال 1996 بازمیگردد که در آن کمپانی NeXT به معرفی WebObjects پرداخت که با استفاده از زبان Objective-C نوشته شده بود و این در حالی بود که با وارد شدن WebObjects به زبان جاوا، معماری MVC در میان توسعهدهندگان جاوا نیز جای خود را باز کرد و از آن زمان به بعد فریمورکهایی همچون Spring اصول این معماری را حفظ کردند.
آیا MVC یک Design Pattern است؟
پیش از پاسخگویی به پرسش فوق، ابتدا نیاز است تا بدانیم «دیزاین پترن چیست؟» به طور خلاصه، در پاسخ به این سوال باید گفت که:
تعریف Design Pattern :
دیزاین پترن به مجموعه راهکارهایی گفته میشود که میتوانند برای حل مسائلی تکراری استفاده شوند که معمولاً در حین کدنویسی پروژههای نرمافزاری ایجاد میگردند. در واقع، دیزاین پترن یا «الگوی طراحی» راهکاری است تضمینی که پیش از این توسط توسعهدهندگان حرفهای ابداع گردیده و آزمایش خود را پس دادهاند و این در حالی است که سایر برنامه نویسان با خیال راحت میتوانند با پیروی از آنها اپلیکیشنهایی توسعه دهند که انعطافپذیر، قابلتوسعه، ساختاریافته و همچنین اصولی باشند.
حال که با مفهوم Design Pattern آشنا شدیم، نیاز است تا به بررسی MVC بپردازیم که زیرشاخه مفهومی تحت عنوان Architectural Pattern به معنی «الگوی معماری» است. اساساً میتوان گفت که منظور از الگوی معماری نحوه چیدمان بخشهای مختلف نرمافزار در کنار یکدیگر و همچنین نحوه تعامل چنین بخشهایی با یکدیگر است.
برای درک بهتر این موضوع، میتوان به مفهوم رایج معماری در ساختوساز توجه کرد. در واقع، همانطور که یک معمار در طرحریزی ساختمانی که میسازد دقیقاً مشخص میکند که محل قرارگیری بخشهای مختلف یک ساختمان کجا باشند، یک دولوپر (معمار نرمافزار) نیز با پیروی از اصول MVC دست به مشخصسازی نوع، چیدمان و چگونگی ارتباط کامپوننتهای مختلف در یک نرمافزار میزند.
هدف از معماری MVC :
به طور خلاصه، میتوان گفت که هدف از معماری سهلایه MVC مجزاسازی بخشهای مختلف نرمافزار از یکدیگر است به طوری که بتوان هر کدام از این بخشها یا ماژولها را به صورت مستقل توسعه داد و در نهایت مابین آنها ارتباط برقرار ساخت. به عبارت دیگر، چندین و چند برنامه نویس (Developer) مختلف میتوانند روی پروژههایی با این نوع معماری کار کنند بدون آنکه در کار یکدیگر تداخلی ایجاد نمایند.
تعریف معماریMVC
تعریف : MVC یک الگوی معماری نرمافزار است که مخفف کلمات Model View Controller است. این سه بخش نرمافزای همیشه باهم در ارتباط هستند. در حقیقت Model وظیفه ارتباط با پایگاه داده را برعهده دارد. نقش View، نمایش اطلاعات برای کاربر است و Controller رابط بین Model و View است. یعنی اطلاعات را از Model میگیرد و جهت نمایش به View ارسال میکند.
در تعریف MVC متوجه نقش View ،Model و Controller شدیم. حال در اینجا یک مثال کاربردی از MVC در دنیای واقعی میزنیم تا بهتر متوجه نقش مدل، ویو و کنترلر شوید.
مثال در دنیای واقعی :
یک رستوران را در نظر بگیرید. وقتی مشتری وارد رستوران میشود، بر روی میز غذاخوری یک منوی غذا وجود دارد. مشتری عذای مورد علاقه خود را انتخاب میکند و سپس به گارسون غذاخوری میگوید که غذای مورد نظرش را انتخاب کرده است. گارسون به سمت آشپزخانه میرود و سفارش غذای مشتری را به آشپز رستوران میرساند. وقتی غذا آماده شد، گارسون آن را از آشپزخانه تحویل گرفته و به سمت مشتری میرود و غذای او را تحویل میدهد.
در این مثال مشتری در نقش درخواست کننده غذا، آشپزخانه در نقش Model، غذا در نقش View و گارسونی که سفارش غذا را به سمت آشپزخانه میبرد و آن را تحویل میگیرد و به سمت مشتری میبرد در نقش Controller است. در سوال MVC چیست؟ گفتیم که وظیفه Controller ارتباط میان Model و View است. مشتری کاری به نحوه پخت و پز غذا (View) ندارد. فقط غذا (View) را به گارسون (Controller) سفارش میدهد و گارسون سفارش غذا به سمت آشپزخانه (Model) میبرد و بعد از آماده شدن غذا (View)، آن را تحویل مشتری میدهد.
کاربرد MVC در برنامه نویسی :
حال که با مفهوم MVC بیشتر آشنا شدیم در قسمت بعد ببنیم که کاربرد MVC در برنامه نویسی چیست؟ و نحوه کار معماری MVC در برنامه نویسی چگونه است؟
در قسمت قبل با سوال MVC چیست؟ با مثالی از رستوران آشنا شدیم. در این قسمت مفهوم MVC در برنامه نویسی را با مثالی از یک سایت واقعی بررسی میکنیم.
مثال در دنیای فناوری اطلاعات
یک کاربر را در نظر بگیرید که پشت سیستم نشسته است. این کاربر در مرورگر خود آدرس سایت www.itbaaz.com را تایپ میکند و میخواهد باز زدن دکمه Enter وارد سایت آی تی باز شود. وقتی کاربر با وارد کردن آدرس سایت، دکمه Enter را میزند، این درخواست وارد Router شده و از آنجا به سمت Controller هدایت میشود. این Controller اطلاعات مربوط به آن آدرس را از Model میگیرد و آن را در مرورگر کاربر (View) نمایش میدهد.
پس اطلاعات موجود در صفحه در نقش (View) است که در پایگاه داده ذخیره شده است. کاربر وقتی آدرس سایت را وارد میکند در حقیقت درخواست نمایش اطلاعات را به سمت Controller میفرستد و Controller آن اطلاعات را از Model میگیرد و سپس در مرورگر کاربر (View) به نمایش میگذارد.
پس تا اینجای کار با سوال معماری MVC چیست؟ با مثالی از رستوران و سایت واقعی بیشتر آشنا شدیم. در قسمت بعد ببینیم که آیا برنامه نویسی بدون MVC هم امکانپذیر است یا حتما باید برنامه نویسی با MVC باشد؟
برنامه نویسی با MVC
در برنامه نویسی با معماری MVC، سه بخش جداگانه با نامهای Model - View - Controller داریم. این سه بخش هر کدام وظیفه خاص خود را بر عهده دارند اما همیشه با هم در ارتباط هستتند تا برنامه به درستی کار کند. معماری ام وی سی باعث تمیز شدن کدها و راحت شدن کار برنامه نویس موقع دیباگ میشود. در پایین نقش هر بخش و کدهای مربوط به آن را بررسی میکنیم.
نقش اجزای الگوی معماری MVC چیست؟
در این قسمت وظیفه هر بخش از الگوی معماری MVC را بررسی میکنیم.
وظیفه Model در معماری MVC چیست؟
Model را به نوعی میتوان به منزله مغز اپلیکیشن در نظر گرفت به طوری که اصطلاحاً Business Logic یا به عبارتی «آنچه اپلیکیشن به خاطرش توسعه یافته است» در این لایه طرحریزی میشود. مسلماً نیاز به توضیح نیست که مثلاً در یک وب اپلیکیشن بخشی از منطق نرمافزار مرتبط با ارتباط با دیتابیس به منظور انجام عملیات CRUD است که وظایف (Task’s) از این دست ، در مدل عملی میگردند.
نکته :
سرواژه CRUD برگرفته از کلمات Update ،Read ،Create و Delete است که به ترتیب به منظور «ثبت»، «فراخوانی»، «بهروزرسانی» و «حذف» دادهها از دیتابیس مورد استفاده قرار میگیرند.
کنترلر که در ادامه بیشتر با مفهوماش آشنا خواهیم شد، همواره ارتباط تنگاتنگی با مدل دارا است به طوری که میتوان گفت ارتباط مدل با ویو از طریق کنترلر امکانپذیر خواهد بود.
یک پوشه برای فایلهای Model که وظیفه ارتباط با دیتابیس را برعهده دارند و شامل دستورات SQL هستند. عملیات CRUD با دستورات SQL در این قسمت قرار دارند.
وظیفه View در معماری MVC چیست؟
View، همانطور که از نام آن مشخص است، این وظیفه را دارا است تا دیتایی که در مدل ساخته و پرداخته شده را در معرض دید کاربران وب اپلیکیشن قرار دهد و به عبارتی میتوان گفت که همان User Interface یا به اختصار UI است.
ویو به طور معمول حاوی کدهای HTML و CSS است و دادههای پویا (Dynamic) نیز از روشهای مختلفی که یکی از آنها Template Engine است در ویو بارگزاری میشوند
به طور مثال، در فریمورک لاراول از Template Engine تحت عنوان Blade استفاده میشود تا در نهایت کدهای PHP داخل کدهای HTML قرار داده شده و خروجی آنها در معرض دید کاربران قرار گیرند
پوشه دیگر برای مرتب سازی فایلهای View که وظیفه نمایش اطلاعات به کاربر را بر عهده دارند و معمولا شامل کدهای CSS ،HTML و JavaScript هستند. نمایش اطلاعات به کاربر معمولا با دستور SQL برای Read یا نمایش اطلاعات است. نمایش اطلاعات از پایگاه داده به وسیله Controller به مرورگر کاربر ارسال میشود.
وظیفه Controller در معماری MVC چیست؟
Controller در این معماری سهلایه نقش واسط را دارا است به طوری که درخواست (Request) را از بخش View گرفته و در اختیار مدل قرار میدهد و پس از آنکه مدل پردازشهایش را روی درخواست (Request) ورودی انجام داد، پاسخ (Response) را مجدد در اختیار کنترلر قرار داده و کنترلر هم پاسخ نهایی را در اختیار ویو میگذارد تا در معرض دید کاربران قرار دهد.
یک پوشه جداگانه نیز برای فایلهای Controller وجود دارد که این فایلها بیشتر منطق کد نویسی را بر عهده دارند و شرط و شروط نمایش اطلاعات از Model برای ارسال به View در این قسمت قرار میگیرد. همچنین وقتی مدیر سایت یک محصول فروشگاهی را میخواهد از سایت حذف یا ویرایش کند، در View روی آن کلیک میکند و از طریق Controller این عملیات به سمت Model برای ویرایش یا حذف ارسال میشود و بعد از انجام عملیات، نتیجه آن از طریق Controller به سمت View ارسال میشود و کاربر تغییرات آن را در مرورگر خود میبیند.
برنامه نویسی بدون MVC
در قسمتهای بالا با کاربرد MVC در برنامه نویسی و برنامه نویسی با الگوی MVC آشنا شدیم. در این قسمت ببنیم آیا بدون MVC برنامه نویسی امکانپذیر است؟ در جواب باید بگوییم که بله امکانپذیر است. وقتی برنامه نویسی با معماری MVC نباشد، در این صورت باید تمام عملیات Model View Controller باید در یک فایل انجام شود و در سه بخش جداگانه نباشد. در این روش کدهای SQL مربوط به Model، کدهای شرطی و منطق Controller و کدهای CSS ،HTML و JavaScript مربوط به View در یک فایل قرار دارند.
وقتی همهی کدهای مدل - ویو -کنترلر در یک فایل باشند، باعث به هم ریختگی و کثیف شدن کدها شده و اصول کد نویسی تمیز رعایت نمیشود. در هنگام دیباگ و رفع مشکلات کد نیز کار برنامه نویس سخت میشود.
آشنایی با ارتباطات مابین View ،Model و Controller
به منظور درک بهتر این موضوع، میتوان فرم لاگین سایتها را مد نظر قرار داد به طوری که در بخش ویو فرمی در اختیار کاربران قرار میگیرد تا بتوانند نام کاربری و رمزعبور خود را وارد کنند.
پس از آنکه کاربر دکمه سابمیت را فشرد (مرحله اول)، درخواستی از جنس POST برای کنترلر ارسال میگردد و کنترلر هم درخواست ورودی را گرفته و در اختیار مدل قرار میدهد (مرحله دوم) که در این فاز مدل یک کوئری به دیتابیس میزند (مرحله سوم) تا ببیند آیا نام کاربری و رمزعبور درست هستند یا خیر؛ خواه اطلاعات درست وارد شده باشند و خواه اشتباه، در مرحله بعد مدل پاسخی را در اختیار کنترلر قرار میدهد (مرحله چهارم) و کنترلر هم پاسخ دریافتی را در اختیار ویو گذاشته (مرحله پنجم) سپس ویو نیز خروجی کار را در معرض دید کاربر قرار میدهد (مراحل ششم و هفتم).
مزایای معماری MVC چیست؟
حالا که با MVC و کاربرد آن آشنا شدید در ادامه به مزایا و معایب معماری MVC میپردازیم.
با توجه به حداقل وابستگی که مابین لایههای مختلف یک اپلیکیشن نوشتهشده مبتنی بر معماری MVC وجود دارد، برنامه نویسان بدون آنکه در کار یکدیگر تداخلی ایجاد کنند قادر خواهند بود تا روی کامپوننتهای مختلف کار کنند. به طور مثال، برنامه نویسانی بکاند حتی بدون آنکه بخش رابط کاربری سایت تکمیل شده باشد میتوانند دست به توسعه Business Logic اپلیکیشن بزنند و بر همین منوال برنامه نویسانی فرانتاند نیز میتوانند ابتدا ساختار اصلی صفحات را به صورت استاتیک طراحی کرده سپس با تکمیل بخش بکاند اقدام به دینامیک کردن صفحات نمایند.
با استفاده از معماری MVC به سادگی میتوان بخشهایی از اپلیکیشن که مرتبط با یکدیگر هستند را در قالب یک ماژول یا کامپوننت قرار داد و از آنجا که در این معماری کامپوننتها دارای وابستگی حداقلی به یکدیگر هستند، به سادگی این امکان در اختیار توسعهدهندگان قرار میگیرد تا از کامپوننتهایی که نوشتهاند در سایر پروژهها نیز استفاده نمایند.
با توجه به ماهیت Loose Coupling که در این معماری به کار گرفته میشود (به عبارتی وابستگی حداقلی مابین بخشهای مختلف نرمافزار وجود دارد)، افزودن فیچرهای جدید و یا تغییر در کدهای قبلی به مراتب آسانتر خواهد شد و به عنوان آخرین مزیت معماری MVC هم میتوان به این نکته اشاره کرد که دیتایی که کنترلر از مدل گرفته را میتوان به روشهای مختلفی در معرض دید کاربران قرار داد. به طور مثال، در یک وب اپلیکیشن میتوان این دیتا را در قالب صفحات اچتیامال رِندِر کرده و به کاربران نشان داد و یا میتوان دیتا را به صورت جیسون در اختیار یک API قرار داده و از طریق یک اپ موبایل دادهها را در اختیار کاربران گذاشت (جهت آشنایی با این اصطلاح میتوانید به آموزش API چیست؟ مراجعه نمایید.)
در این بخش از آموزش MVC به مزایای MVC در برنامه نویسی میپردازیم.
1. سرعت توسعه: الگوی معماری MVC باعث میشود هر کد در جایگاه مربوط به خودش باشد و نظمی که ایجاد میشود باعث افزایش سرعت توسعه کدها میشود.
2. افزایش خوانایی کد: در الگوی معماری MVC به علت مرتب سازی و تمیز بودن کدها، خوانایی کدها بالاتر میرود.
3. آسانتر شدن دیباگ کد: در معماری MVC اگر مشکلی در کد (باگ) ایجاد شود، به دلیل ساختار مناسب و منظم، مشکل کد سریعتر رفع میشود.
4. تقسیم کاری بین توسعهدهندگان: در الگوی MVC میتوان به هر توسعهدهنده دسترسی لازم به آن بخش را داد. برای مثال توسعهدهنده Front-End به بخش View دسترسی دارد و نیازی نیست کدهای بخش Back-End مانند Model و Controller را مشاهده کند. توسعهدهنده Back-End نیز به بخش Model و Controller دسترسی دارد و نیازی نیست بخش view که مربوط به توسعهدهنده Front-End است را مشاهده و دستکاری کند. در صورتی که MVC نبود همهی کدها در یک فایل بودند و همهی توسعهدهندگان میتوانستند کدها را دستگاری و ویرایش کنند که باعث به وجود آمدن مشکلات اساسی میشد.
معایب معماری MVC چیست؟
در این بخش از آموزش معماریMVC به معایب MVC در برنامه نویسی میپردازیم.
در کنار تمامی مزایایی که برای این معماری برشمردیم، یکسری نقاط ضعف هم در ارتباط با MVC وجود دارد که آگاهی از آنها خالی از لطف نیست. به طور مثال، با توجه به ماهیت Abstraction یا «انتزاع» که در این معماری وجود دارد، وقتی دولوپر جدیدی بخواهد روی چنین پروژههایی کار کند ممکن است در ابتدا کمی سردرگم گردد اما در عین حال میتوان گفت که این سردرگمی پس از مدتی کار با پروژه به مرور مرتفع خواهد شد.
1. پیچیدگی MVC زیاد است: اگر برنامه نویس حرفهای نباشد ممکن است با ساختار MVC زیاد آشنا نباشد و کار او سخت شود.
2. مناسب نرمافزار کوچک نیست: اگر نرمافزار شما کوچک باشد و نیازی به توسعه نداشته باشد، MVC باعث افزایش پیچیدگی و کاهش سرعت برنامه خواهد شد.
چه فریمورکهایی از معماری MVC استفاده میکنند؟
حالا که در مورد MVC اطلاعات کسب کردیم و کاربرد MVC و معایب و مزایای استفاده از MVC را شناختیم. در این قسمت چند مورد از محبوبترین فریمورکهایی که از MVC استفاده میکنند را برای شما لیست میکنیم:
1. Laravel
2. ASP.NET MVC
3. ASP.NET Core
4. Express.js
5. Ruby on Rails
6. Cake PHP
7. Codeigniter
8. Symfony
9. Angular JS
10. Phalcon
11. Zend Framework
12. FuelPHP
13. Blazor
14. Spring
15. Laminas
16. Yii
6 نکته طلایی استفاده از MVC
1. فرآیند توسعه سریعتر:
MVC از توسعه سریع و موازی پشتیبانی می کند. به طور مثال اگر از یک مدل MVC برای توسعه برنامه وب استفاده شود، یک برنامه نویس می تواند روی بخش view و برنامه نویس دیگر روی کنترلر کار کند تا منطق تجاری برنامه وب را ایجاد نماید. از این رو، برنامه های توسعه یافته با استفاده از مدل MVC، می توانند سه برابر سریعتر از برنامه هایی که با استفاده از الگوهای توسعه دیگر توسعه یافته اند تکمیل شوند.
2. امکان ارائه چندین نما (VIEW):
در مدل MVC می توانید چندین نما برای یک مدل ایجاد کنید. امروزه، تقاضای فزاینده ای برای دسترسی به برنامه شما از طریق راه های جدید وجود دارد و مطمئناً MVC یک راه حل عالی برای آن به شمار می رود. همچنین، در این روش تکرار کد بسیار کم اتفاق می افتد، زیرا اطلاعات و داده های تجاری را، از آنچه که به نمایش گذاشته می شود جدا می کند.
3. پشتیبانی از تکنیک چند زمانه:
همچنین معماری MVC می تواند با فریم ورک جاوا اسکریپت ادغام شود. این بدان معنی است که برنامه های MVC می توانند حتی با فایل های PDF، مرورگرهای خاص سایت و ویجت های دسکتاپ کار کنند. MVC از یک تکنیک چند زمانه نیز پشتیبانی می کند که به توسعه دهندگان کمک کرده تا برنامه ای را توسعه دهند که بسیار سریع بارگذاری می شود.
4. تغییرات بر کل مدل تأثیر نمی گذارد:
در هر برنامه تحت وب، رابط کاربری تمایل بیشتری به تغییر در مقابل قوانین تجاری شرکت توسعه NET. دارد. واضح است که در یک برنامه تحت وب در قسمت هایی مانند رنگ ها، فونت ها، طرح بندی صفحه نمایش و افزودن پشتیبانی دستگاه های جدید مانند تلفن های همراه یا تبلت ها، مکررا تغییرات انجام می شود. علاوه بر این، افزودن یک نوع نمای جدید در الگوی MVC بسیار آسان است زیرا بخش Model به view ها وابسته نمی باشد. بنابراین، هر گونه تغییر در مدل، کل معماری را تحت تأثیر قرار نخواهد داد.
5. مدل MVC داده ها را بدون قالب بندی برمی گرداند:
الگوی MVC، داده ها را بدون هیچ تغییری در فرمت باز می گرداند. از این رو، اجزای مشابه را می توان با هر رابطی استفاده یا فراخوانی نمود. به عنوان مثال، هر نوع داده ای را می توان با HTML قالب بندی کرد، در صورتی که می توان با Macromedia Flash یا Dream viewer نیز قالب بندی را انجام داد.
6. پلت فرم توسعه SEO:
پلت فرم MVC از توسعه صفحات یا برنامه های کاربردی وب، سازگار با SEO پشتیبانی می کند. با استفاده از این پلتفرم، توسعه URL های 'سئو پسند' برای ایجاد بازدیدهای بیشتر از یک برنامه خاص بسیار آسان است. این معماری معمولا در برنامه های توسعه تست محور، استفاده می شود. علاوه بر این، زبانهای اسکریپت نویسی مانند جاوا اسکریپت و jQuery را میتوان با MVC، برای توسعه برنامههای کاربردی وب ادغام کرد.
جمعبندی:
در این آموزش با سوالاتی نظیر «MVC چیست؟» و «کاربرد MVC در برنامه نویسی چیست؟» آشنا شدیم. همچنین مزایا و معایب الگوی معماری MVC را بیان کردیم. اگر از الگوی MVC در برنامه نویسی استفاده کنید، علاوه بر اینکه کدهای شما بهینهتر و خواناتر میشود، برنامه نویسان نیز به راحتی میتوانند وظایف خود را انجام دهد. مثلا توسعهدهنده Front-End دسترسی لازم به قسمت View دارد و توسعهدهنده Back-End باید دسترسی لازم به Controller و Model را داشته باشد. در این صورت دیگر نیازی نیست همه روی یک فایل کار کنند.در این آموزش سعی کردیم الگوی MVC را به سادهترین نحو ممکن توضیح دهیم.
0 نظر
ارسال دیدگاه
آدرس ایمیل شما منتشر نخواهد شد. قسمت های مورد نیاز علامت گذاری شده اند