الگوی معماری MVC چیست ؟
الگوی معماری MVC مرسوم برای توسعه و ساخت نرمافزارهای کاربردی می باشد که دارای رابط کاربری (User Interface | UI) می باشند.
در ابتدا، از الگوی معماری MVC برای رابط کاربری گرافیکی (GUI) نرم افزارهای دسکتاپ (کامپیوترهای رومیزی) استفاده می شد؛
ولی امروزه، الگوی معماری MVC برای طراحی کاربردهای (نرم افزارهای) بر اساس اینترنت و نرمافزارهای کاربردی تلفن همراه به کار میرود.
برای فهم بهتر پرسش «MVC چیست»،
بهتر است که ابتدا بهاین پرسش پاسخ داده شود که MVC مخفف چیست ؟
MVC مخفف چیست؟
برای جواب بهاین پرسش که «MVC مخفف چیست»،می بایست خاطرنشان کرد که الگوی معماری MVC سرنامی برای عبارت Model-View-Controller میباشد.
در واقع، الگوی معماری MVC یک سیستم قابل انعطافافزاری یا به عبارتی نرم افزار را بهاین سه قطعه تفکیک مینماید.
اگرچه، الگوی معماری MVC تحت عنوان یک معماری اندروید برای پیشرفت نرم افزارها در جوامع اندروید چندان محبوب نیست،
در ادامه، بهاین مهم پرداخته گردیدهاست.
۱-در asp.net webforms طراحی بهینه و ساختارمند و همینطور رعایت مسائل امنیتی بسیار پیچیده تر گاهاً نا ممکن بود.
۲- در asp.net mvc انعطاف و قابلیت و امکان در اختیار گرفتن بسیار زیادی برای برنامه نویس ها مهیا میباشد
۳- در نهایت باتوجه به حذف asp.net webforms در ورژن ۶ net. استعمال از آن یک خطا بزرگ به حساب میآید .
تاریخچه mvc :
معماری mvc در دهه ۷۰ میلادی معرفی شد،
ولی در آن فرصت طراحی نرمافزار های stand alone با استعمال از این معماری چندان مورد استقبال برنامه نویس ها قرار نگرفت.
البته با ظهور وب و اپ های مطابق اینترنت، این معماری شانس مجدد ای یافت.
asp.net mvc قاب ورک مبنی بر معماری mvc مایکروسافت است که از دلایل محبوبیت این معماری نظام بخشیدن به پروژه های ساخت وب سایت هست.
معمولاً به انگیزه همکاری یکسری تکنولوژی گوناگون با هم در نرم افزار های مطابق اینترنت ساختار پروژه های بزرگ پیچیده می شوند و انجام تغییرات و همینطور رفع اشتباه های پروژه مشکل و زمانبر می گردند که معماری mvc با جداسازی لایه های گوناگون اپ نویسی تا حد زیادی این خلل را رفع نموده است.
از سایر مزایای این فریم ورک میتوان به در دست گرفتن بدون نقص بر روی html نهایی، پشتیبانی از فریم ورک های مختلف برای unit testing ، در دست گرفتن بر روی نشانی های url و تعامل راحت تر با فریم ورک های javascript اشاره نمود.
خصوصیت های MVC:
۱٫قابلیت تست آسان و بدون اصطکاک. چارچوب بسیار قابل آزمایش ، قابل گسترش و قابل نصب
۲٫کنترل کامل بر HTML و URL های شمارا ارائه میدهد
۳٫از ویژگی های مو جود ارائه شده بوسیله ASP.NET ، JSP ، Django و غیره استفاده میکند.
۴٫جداسازی منطق: مدل ، نمایش ، کنترل. جدایی وظایف نرم افزار یعنی. منطق بیزنس ، منطق Ul و منطق ورودی
۵٫پشتیبانی از گسترش محور تست(TDD)
مقایسه mvc با php symfony
باتوجه به اینکه موسسات متعددی نیز وجود دارند که از php به کارگیری میکنند،
به مقایسه asp.net و php در دو معماری شبیه بر پایه ی کلیدی ترین فاکتور ها میپردازیم:
۱- سرعت
۲- امنیت
۳- ساختار
مزایای استفاده از طراحی سایت با MVC :
– با تقسیم یک اپلیکیشن به سه قسمت مدل، نمایشگر و کنترلگر، مدیریت نرمافزار یا پروژه آسانتر می گردد.
– از الگوی کنترل گر جلو استعمال میکند که درخواست های نرم افزار را به وسیله یک کنترل گر پردازش میکند.
– پشتیبانی بهتری از پیاده سازی و گسترش آزمون محور دارد.
– برای اپ های پشتیبانی گردیده بوسیله تیم های بزرگ برنامه نویسان که کنترل بسیار بر رفتار اپلیکیشن را میخواهند، خوب عمل میکنند.
mvc به زبان ساده تر :
ام وی سی یک سبک طراحی سایت میباشد که تکنولوژی به روزی به حساب میآید،
ام وی سی از لغت های model ، view، controller گرفتهگردیدهاست ،
در مدل mvc تمامی برنامه نویس ها مجبور می شوند، تا از این چهارچوب تبعیت نمایند.
ساخت سایت بوسیلهmvc دنیای نرم افزار نویسی را نظم بخشیدهمیباشد
در زیر به معرفی این مفاد پرداختهمی گردد:
– لایهview: این لایههمانگونهکهاز اسم آن پیداست،
لایه ی view از تکنولوژی طراحی وب سایت mvc نزدیکترین لایه به کاربر میباشد و مواقعی را که مخاطب در صفحه می بیند به وسیله این لایه ایجاد میگردد.
– لایه controller : این لایه مسئول در دست گرفتن میباشد،
در MVC چندین نوع کد داریم؟
نوع اول: کدهایی که با دیتابیس و جدول ها در ارتباط می باشند
نوع دوم: کدهای html می باشند
نوع سوم: کدهایی که مروبط میگردد به قسمت کنترلر، کدهای php پروژه می باشند
آیا mvc یک design pattern میباشد؟
Design pattern یا الگوی طراحی جزء معماری های برنامه نیستند.
فریم ورک هایی که بر اساس mvc می باشند !
برای زبان های برنامه نویسی گوناگون فریم ورک هایی وجود دارند که از این معماری به کار گیری می نمایند.
فریم ورک چیست ؟
در php به جهت متن باز بودن فریم ورک های mvc متعددی وجود دارد.
python هم فریم ورک های معروفی برای نوشتن سایت با معماری mvc دارد. که django و Pyramid دو نمونه از آنهاست.
در javascript فریم ورک (angularjs) که بوسیله گوگل گسترش داده شده است.این فریم ورک بخوبی معماری MVC را در سطح client طراحی می کند. که باعث ساده تر شدن توسعه و گسترش و خطایابی برنامه های تحت اینترنت میشود.
از دلایل محبوبیت الگوی معماری MVC می شود به جداسازی لایه های اپلیکیشن نویسی اشاره کرد .
البته ام وی سی یک سری خصوصیت بسیار اساسی برای طراحی وب سایت نیز داراست ، با به کار گیری از این فریم ورک میتوانید بر روی تگ های اچ تی ام ال ، یو آر ال ها کنترل داشته باشید .
برخی به اشتباه ام وی سی را یک سبک طراحی وب و یا این که یک تکنولوژی معرفی می کنند ولی الگوی معماری MVC یک معماری مورد استفاده در طراحی وب سایت مانند بسیاری از معماری های دیگر میباشد .