Mvc training - آموزش MVC

آموزش MVC

الگوی معماری Model-View-Controller) MVC) یک برنامه را به سه قسمت اصلی تقسیم می کند: مدل، نما و کنترل گر. چارچوب ASP.NET MVC یک جایگزین برای الگوی Web Forms ASP.NET برای ایجاد برنامه های وب است. چارچوب ASP.NET MVC یک چارچوب ارائه شده بسیار سبک و قابل تست است (همانند برنامه های مبتنی بر Web Forms) با ویژگی های ASP.NET موجود، مانند صفحات اصلی و احراز هویت بر اساس عضویت، یکپارچه شده است. چارچوب MVC درمونتاژ System.Web.Mvc تعریف شده است.

الگوی طراحی MVC

آموزش MVC
آموزش MVC

مدل MVC یک الگوی طراحی استاندارد است که بسیاری از توسعه دهندگان با آن آشنا هستند. برخی از انواع برنامه های کاربردی وب از چارچوب MVC بهره مند می شوند. دیگران همچنان از الگوی برنامه ASP.NET سنتی استفاده میکنند که بر اساس فرم های وب و پسوندهای مبتنی بر وب است. انواع دیگر برنامه های کاربردی وب، دو رویکرد را ترکیب می کنند و رویکرد های دیگر را رد نمی کنند.

 اجزای چارچوب MVC

مدل (Model): مدل بخشی از برنامه است که منطق دامنه داده برنامه را پیاده سازی می کند. اغلب اشیاء مدل بازیابی و ذخیره حالت مدل در یک پایگاه داده است. به عنوان مثال، یک شیء محصول ممکن است اطلاعات را از یک پایگاه داده بازیابی کند، روی آن کار کند و سپس اطلاعات به روز شده را به یک جدول محصولات در یک پایگاه داده SQL Server ارسال کند. در برنامه های کوچک، این مدل اغلب جدایی مفهومی به جای یک فیزیکی است. بعنوان مثال، اگر برنامه تنها یک مجموعه داده را بخواند و آن را به نمایش می فرستد، برنامه یک لایه مدل فیزیکی و کلاس های مربوطه ندارد. در این مورد، مجموعه داده نقش یک شی مدل را بر عهده دارد.

نما (View): نمایش ها اجزایی هستند که رابط کاربری برنامه (UI) را نمایش می دهند. بطور معمول، این رابط کاربری از داده های مدل ایجاد شده است. یک مثال می تواند نمایه ویرایش جدول محصولات باشد که کادرهای متن، لیست کشویی و جعبه ها را براساس وضعیت فعلی یک شیء محصول نمایش می دهد. 

کنترل گر (Controller): این بخش همانطور که از اسم آن مشخص است یک بخش کنترل کننده می باشد ، و در واقع واسطی بین دو بخش Model و View میباشد. حال ببینیم روند اجرای برنامه در معماری MVC به چه نحوی خواهد بود . در معماری MVC روند کلی برنامه (جزئیات را در ادامه خواهید دید) به این شکل است که کاربر تقاضای خود را از طریق واسط های برنامه نویسی (نظیر Form ها و User Control ها و .. ) از برنامه (از بخش View)درخواست می کند . بخش View در خواست ها را به بخش Controller فرستاده و این بخش با برقراری ارتباط با بخش Model در خواست های کاربر را پردازش کرده و پس از پایان پردازش زمانی که خروجی درخواست داده شده آماده گردید بخش Controller بخش View را آگاه می سازد تا خود را بر اسا س تغییرات جدید که اصطلاحاً در معماری MVC به آن حال Model می گویند ، به روز سازد . در واقع چیزی که باعث میشود تا بخش Controller به بخش View اطلاع دهد که باید حالت جدید model را دریافت کند و خود را Update کند این است که بخش View باید قبلا خودش را در بخش Model اصطلاحا Register کرده باشد که البته عمل Register کردن توسط بخش Controller انجام میگیرد . نحوه register کردن بخش View به معماری آن محیط و همچنین زبانی که توسط آن برنامه را گسترش میدهید و همچنین قابلیت های آن زبان بستگی دارد.

پشتیبانی از توسعه مبتنی بر تست

آموزش MVC
آموزش MVC

علاوه بر مدیریت پیچیدگی، الگوریتم MVC باعث تسهیل تست برنامه ها نسبت به آزمون وب فرم ASP.NET مبتنی بر وب می شود. به عنوان مثال، در برنامه وب ASP.NET مبتنی بر وب، یک کلاس تنها برای نشان دادن خروجی و پاسخ دادن به ورودی کاربر استفاده می شود. نوشتن تست های خودکار برای برنامه های ASP.NET مبتنی بر Web Forms می تواند پیچیده باشد، زیرا برای تست یک صفحه شخصی، شما باید کلاس صفحه، تمام کنترل های کودک خود و کلاس های وابسته اضافی در برنامه را اکتسابی کنید. از آنجایی که بسیاری از کلاسها برای اجرای صفحه نمونه اشیاء هستند، ممکن است سخت است که تستهایی را بنویسیم که به طور انحصاری بر قسمتهای مختلف برنامه تمرکز داشته باشند. بنابراین تست های برنامه های کاربردی ASP.NET مبتنی بر Web Forms می توانند از تست ها در یک برنامه MVC سخت تر باشند. علاوه بر این، تست ها در برنامه ASP.NET مبتنی بر وب نیازمند یک سرور وب می باشند. چارچوب MVC مولفه ها را جداسازی می کند و از رابط ها استفاده زیادی می کند، که باعث می شود تا قطعات جداگانه را از بقیه چارچوب تست کنید. 


بیشتر بخوانید »»» آموزش جاوا


زمان ایجاد یک برنامه MVC

آموزش MVC
آموزش MVC

شما باید به دقت بررسی کنید که آیا یک برنامه وب را با استفاده از چارچوب ASP.NET MVC یا مدل ASP.NET Web Forms پیاده سازی کنید. چارچوب MVC مدل فرم وب را جایگزین نمی کند. شما می توانید از هر چارچوب برای برنامه های وب استفاده کنید. (اگر شما برنامه های مبتنی بر وب مبتنی بر وب دارید، این ها همچنان به همان اندازه که همیشه هستند کار می کنند.) قبل از تصمیم به استفاده از چارچوب MVC یا مدل فرم وب برای یک وب سایت خاص، مزایای هر رویکرد را در نظر بگیرید.

مزایای یک برنامه وب مبتنی بر MVC

آموزش MVC
آموزش MVC

چارچوب ASP.NET MVC مزایای زیر را ارائه می دهد: این باعث می شود که پیچیدگی را با تقسیم یک برنامه به مدل، نمای، و کنترل کنترل کنید. از حالت مشاهده یا فرم های مبتنی بر سرور استفاده نمی کند. این باعث می شود که چارچوب MVC ایده آل برای توسعه دهندگان که می خواهند کنترل کامل بر رفتار یک برنامه داشته باشند. این یک الگوریتم کنترل جلو است که درخواستهای درخواست وب را از طریق یک کنترلر ساده پردازش می کند. این به شما این امکان را می دهد تا برنامه ای را طراحی کنید که زیرساخت مسیریابی غنی را پشتیبانی می کند. برای اطلاعات بیشتر، کنترل جلو را ببینید. این پشتیبانی بهتر از توسعه تست محور (TDD) را فراهم می کند. این کار به خوبی برای برنامه های کاربردی وب است که توسط تیم های بزرگ از توسعه دهندگان و برای طراحان وب که نیاز به درجه بالایی از کنترل رفتار برنامه دارند پشتیبانی می کند.

مزایای استفاده از یک وب سایت مبتنی بر وب

چارچوب مبتنی بر Web فرم مزایای زیر را ارائه می دهد: این یک مدل رویداد است که دولت را از طریق HTTP حفظ می کند، که مزایای استفاده از برنامه های کاربردی وب را در بر می گیرد. برنامه وب مبتنی بر وب چندین رویداد را پشتیبانی می کند که در صدها کنترل کننده سرور پشتیبانی می شود. این یک الگوریتم کنترل صفحه ای است که عملکرد به صفحات شخصی اضافه می کند. برای اطلاعات بیشتر، صفحه کنترل را ببینید. از حالت مشاهده بر روی فرم های مبتنی بر سرور استفاده می کند که می تواند اطلاعات مدیریت اطلاعات را آسانتر کند. این کار به خوبی برای تیم های کوچک از توسعه دهندگان وب و طراحان که مایل به استفاده از تعداد زیادی از اجزای موجود برای توسعه سریع نرم افزار کار می کند. به طور کلی، توسعه نرم افزار پیچیده تر است، زیرا اجزاء (کلاس صفحه، کنترل ها و …) یکپارچه هستند و معمولا نیاز به کد کمتری نسبت به مدل MVC دارند.

source

دیگر مقالات مفید سایت آکادمی هنرجو:

نوشتن نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *