ASP.NET MVC آموزش c# برنامه نویسی

معرفی ASP.NET MVC

امیرحسین عراقی
نوشته شده توسط امیرحسین عراقی

MVC چیست؟

MVC یک الگوی طراحی استاندارد است که بسیاری از برنامه نویسان با آن آشنا هستند. MVC مخفف مدل-نما-کنترلر است. چارچوب ASP . NET MVC جایگزینی برای فرم های قدیمی ASP.NET Web است. این چارچوب داخل فضای نام”System.Web. Mvc”قرار دارد. معماری MVC نرم افزار را به سه بخش تقسیم می کند: مدل، نما و کنترلر.

مدل

مدل بخشی از معماری MVC است که وظیفه پیاده سازی منطقی داده ها را برعهده دارد. اغلب در این بخش کدهایی برای ساخت و بازیابی اطلاعات قرار داده میشود. به عبارت ساده تر امکان ارتباط بین نرم افزار و پایگاه داده را بخش مدل فراهم می کند. به عنوان مثال در قسمت مدل کدهایی برای بازیابی اطلاعات، انجام عملیات و سپس ارسال مجدد اطلاعات به پایگاه داده SQL Server نوشته می شود.

نما

نما نمایش دهنده رابط کاربری نرم افزار است. به طور معمول اطلاعات این قسمت از داده های مدل ساخته میشود. به عنوان مثال در بخشی از برنامه ممکن است اطلاعات جدولی را بخواهید تغییر دهید یا منویی را باز کنید. این بخش ها در قسمت نما نمایش داده می شوند. این بخش نمای بیرونی نرم افزار را تشکیل میدهد.

کنترلر

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

مزایای استفاده از MVC

• مدیریت ساده تر برنامه با تقسیم برنامه به لایه های مدل، نما، کنترلر و…..

MVC ASP.net Solution directory
شكل ۲-۱: پروژه ASP.NET MVC
همانطور که در شکل بالا قابل مشاهده است یک پروژه Asp
. net MVC از پوشه های مختلفی از جمله مدل، کنترلر، نما و… تشکیل شده است که این کار باعث مدیریت ساده تر برنامه شده است.

  • استفاده نکردن از نما State و فرم هایی که تحت سرور می باشند. استفاده از این حالت ها دارای
    مزایایی می باشند زیرا درک خروجی برنامه ساده تر خواهد شد. همچنین در این حالت برنامه نویس
    می تواند کنترل کاملی روی رفتارهای برنامه داشته باشد.
  • تست پذیری بهتر
  •   آسان سازی کار تیمی و مدیریت ساده تر کارها:
    به عنوان مثال برای برنامه های کاربردی که توسط تعداد زیادی تیم برنامه نویس، طراح، توسعه دهنده و… نوشته شده است، نیازمند کنترل پروژه دقیقی می باشد که توسط MVC این مدیریت بسیار راحت تر انجام می پذیرد.در این حالت برنامه نویس می تواند روی قسمت کنترلر و همزمان طراح روی قسمت نما و برنامه نویس دیگر روی قسمت مدل کار کند.
  • آدرس دهی بهتر و قوی تر
    URL های ایجاد شده توسط ان از قوانین نام گذاری REST پشتیبانی می کند.

 

معماری MVC و MVC Framework

این نکته بسیار مهم است که بین معماری MVC و MVC Framework تفاوت وجود دارد. فناوری MVC یک معماری قدیمی می باشد که در سال ۱۹۷۸ برای پروژه های Smalltalk ایجاد شده بود. اما امروزه به دلایل زیر محبوبیت بسیاری به دست آورده است.

١- تمامی فعل و انفعالات که با معماری MVC انجام می پذیرد از یک چرخه طبیعی پیروی می کند.
به عنوان مثال کاربر یک رکوردی را می خواهد مشاهده کند بنابراین یک رویداد اتفاق می افتد. در ادامه، برنامه ممکن است به سراغ مدل رفته و اطلاعات را از این بخش دریافت یا بروزرسانی کند
و در نهایت این اطلاعات به بخش نما فرستاده و این چرخه تکرار خواهد شد.

۲- یک برنامه تحت وب معمولا از تعدادی فناوری (پایگاه داده، 1TML، …) تشکیل شده است
که معمولا این فناوری ها در لایه های مختلف برنامه قرار گرفته اند. این فناوری ها به راحتی در لایه های مدل، نما و کنترلر قابل جداسازی است.
ASP . NET MVC Framework بر اساس الگوی MVC پیاده سازی شده است و در انجام این کار تا حد زیادی بهبود یافته است. در واقع ASP . NET MVC پیاده سازی نوع مدرنی از الگوی MVC می باشد که برای برنامه های کاربردی تحت وب ایجاد شده است.

ASP . NET MVC چگونه کار می کند؟

همانطور که در قسمت قبل اشاره شد تمام درخواست های MVC برای اجرا شدن از یک چرخه طبیعی پیروی می کنند. این چرخه که در شکل چهار قابل مشاهده است از مراحل زیر تشکیل شده است:
١- کاربر با وارد کردن آدرس، برخی از منابع سرور را در خواست می کند.

۲- این درخواست ابتدا به سراغ بخش کنترلر خواهد رفت. موتور مسیریابی مسئول واگذاری
درخواست به کنترل های مربوطه است.

3- کنترلر در صورت نیاز داشتن به داده با مدل صحبت خواهد کرد.

۴- مدل با پایگاه داده یا هر منبع دادهای ارتباط برقرار می کند و در صورت نیاز، داده ها را به سمت
کنترلر پاس می فرستد.

۵- کنترلر نیز بنا به درخواست کاربر، نما مناسبی را انتخاب می کند. و داده ها را به بخش نما پاس
می دهند تا کاربر نما را مشاهده کند.

درباره نویسنده

امیرحسین عراقی

امیرحسین عراقی

درج دیدگاه