دوره های آموزشی
خانه / ASP.NET MVC / معرفی ASP.NET MVC

معرفی ASP.NET MVC

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

معرفی ASP NET MVC

Model-View-Controller یا MVC الگویی است که یک برنامه کاربردی را به سه بخش اصلی زیر تفکیک می کند :

  1. Model
  2. View
  3. Controller

چهار چوب ASP.NET MVC یک جایگزین ASP.NET Web Form ها برای ساخت برنامه های تحت وب است. چهار چوب ASP.NET MVC سبک بوده و قابلیت تست پذیری بالایی دارد و همچنین یکسری از ویژگی های ASP.NET Form  را مانند master page ها ، سیستم های احراز هویت داراست. فریمورک MVC  در اسمبلی System.Web.Mvc تعریف شده است و کنترل کاملی برروی JavaScript،HTML و CSS دارد. همچنین استفاده از آن برای ساخت برنامه های با مقیاس بزرگ که تیم های مختلفی برروی آن کار می کنند پیشنهاد می شود.

الگوی طراحی MVC

معرفی asp net mvc

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

فریمورک ASP.NET MVC دارای مزایای زیر است :

  • مدیریت ساده  پیچیدگی ها  به وسیله تقسیم کردن برنامه به قسمت های Model ، View و Controller
  • عدم استفاده از view state و فرم های سروری
  • کنترل کامل برروی HTML، JavaScripts و CSS
  • پشتیبانی بهتر از آزمون TTD
  • به خوبی برای پروژه هایی که به وسیله تیم های بزرگ پشتیبانی می شود کار می کند و همچنین مناسب برای طراحان وبی است که نیاز زیادی به کنترل کامل برروی رفتار های برنامه دارند.
  • به صورت پیش فرض از احراز هویت Facebook  و google  پشتیبانی می کند.
  • مدیریت ساده برنامه های بزرگ به وسیله تقسیم بندی آنها با Area ها.

فضاهای نام  ASP.NET MVC

  • System.Web.Mvc
    شامل کلاس ها و اینترفیس هایی است که به وسیله الگوی MVC در ASP.NET  پشتیبانی می شود.این فضای نام شامل کلاس هایی مانند controller ها ، action result ها، view ها ،  partial view ها ، model binder هاست.
  • System.Web.Mvc.Ajax
    شامل کلاس هایی است که اسکریپت های Ajax  را  در یک برنامه ASP.NET MVC پشتیبانی می کند.
  • System.Web.Mvc.Async
    شامل کلاس ها و اینترفیس هایی جهت پشتیبانی یک برنامه MVC  از  اعمال غیرهم زمان .
  • System.Web.Mvc.Html
    شامل کلاس هایی است که کمک  به رندر کردن کنترل های HTML  در یک برنامه MVC  می کند. کلاس های موجود در این فضای نام پشتیبانی میکنند از فرم ها ، کنترل های ورودی ، لینک ها ،partial view ها و اعتبار سنجی.

 

تفاوت های بین ASP.NET MVC  و Web Form ها

در این قسمت معرفی ASP NET MVC به تفاوت های بین ASP.NET MVC  و Web Form ها خواهیم پرداخت :

ASP.NET Web Form ASP.NET MVC
Web Form ها از تکنیک Code behind برای تقسیم یک صفحه .aspx دو بخش یکی برای نمایش و دیگری فایل های کد aspx.cs/aspx.vb استفاده می کنندیک برنامه وب MVC از الگوی طراحی جهت مدیریت برنامه به 3 بخش Model ، View و Controller استفاده میکند.
ASP.NET Web Form شامل کنترل های سروری استASP.NET MVC دارای html helper هاست
ASP.NET Web Form از View state برای مدیریت وضعیت سمت کاربر پشتیبانی می کند.ASP.NET MVC از View State پشتیبانی نمی کند
کنترل محدودی برروی HTML و JavaScript و CSS فراهم می کندکنترل کاملی برروی JavaScript ، HTML و CSS فراهم می کند
مناسب برای برنامه هایی با مقیاس کوچک و تیم هایی برنامه نویسی با تعداد کممناسب برای کار برروی برنامه هایی با مقیاس بزرگ و چندین تیم برنامه نویسی

 

ساختار برنامه ASP.NET MVC

ساختار یک برنامه ASP.NET MVC حداقل به سه پوشه View ، Model  و Controller تقسیم می شود همچنین پوشه های دیگری برای نگهداری فایل های اسکریپت و داده و موارد دیگر وجود دارد.

 ASP.NET MVC چیست

  1. Model
    ازمدل برای نگهداری داده کلاس های  ایجاد شده به وسیله Linq to SQL  یا  Entity Framework ، و یا ارجاع به سرویس هایی مانند WCF  استفاده می شود . در نهایت استفاده  از مدل برای ارائه داده ها به View است.
  2. View
    پوشه View برای نگهداری View ها و یا Patial View ها استفاده می شود هر View  عمل خاصی را بر اساس آنچه کلاس کنترلر به آن محول کرده انجام می دهند. معمولا پوشه View  شامل پوشه ای با نام Shared می شود که صفحات و یوزر کنترل هایی که به وسیله بیشتر کنترلر ها استفاده می شود در آن قرار دارد.
  3. Controller
    پوشه کنترلر مجموعه ای از کلاس ها را شامل می شود که هر کلاس فرزند  System.Web.Mvc.Controller است.یک کلاس کنترلر تنها شامل متد ها یی می شود که به آنها متدهای Action  گفته می شود. متدهای Action  مسئول برگرداندن یک Patial View , View ، محتوا ، داده Json  و موارد دیگر است.

اکشن ها

اکشن ها برای نوشتن کدها برای انجام کاری خاص استفاده می شوند همچنین مسئولیت بازگشت دادن مواردی برای کاربر مانند یک صفحه ویا یوزر کنترل را بر عهده دارند. هر اکشن  شامل یکی از دو نوع در خواست HTTP  زیر می شود:

  1. [HttpGet] اکشن ها ی HttpGet برای اجرای درخواست هایی که مستقیما از کاربر می رسد و یا به عبارتی درخواست ها برای اولین بار  به وسیله متد اکشن دریافت می شود.
  2.  [HttpPost]
    اکشن های [HttpPost] تنها زمانی فراخوانی می شوند که قبلا در سمت کاربری بازدید شده اند و کاربر یک فرم HTML را به وسیله دکمه Submit  ارسال می کند همچنین وقتی که این نوع اکشن فراخوانی می شود در آن می توان همه مقادیر کنترل ها را به وسیله   FormCollection از فرم HTML  بدست آورد. یک متد اکشن می تواند انواع مختلفی از اطلاعات و مقادیر را برای کاربر برگرداند. ما می توانیم انواع مختلفی را برای کاربر از یک متد اکشن برگردانیم اما بیشتر از ActionResult استفاده می کنیم زیرا   ActionResult والد انواع مخلتف است.

 

Area  ها در ASP.NET MVC

در نسخه ASP.NET MVC 2.0 مایکروسافت ویژگی جدیدی با نام Area ها را معرفی کرد. Area ها برای تقسیم بندی یا مجزا کردن یک برنامه بزرگ به چندین برنامه MVC استفاده می شود . به عنوان نمونه :

 

زمانیکه شما یک area  را به پروژه اضافه می کنید یک route (مسیر) برای area  در فایل AreaRegistration تعریف می شود.این route درخواست های رسیده از URL  به یک area  هدایت می کند.

کلاس آموزش طراحی وب سایت در مشهد با ASP.NET MVC

 دوره آموزش طراحی وب

 

 

من محمد آذرنیوا، نویسنده و مدرس دوره های برنامه نویسی ، طراحی وب و تحلیل گر پایگاه داده هستم و قصد دارم در این وبسایت مطالب کاربردی در این زمینه را با شما به اشتراک بگذارم. بیشتر از یک برنامه نویس باشید…

درباره ی محمد آذرنیوا

من محمد آذرنیوا، نویسنده و مدرس دوره های برنامه نویسی ، طراحی وب و تحلیل گر پایگاه داده هستم و قصد دارم در این وبسایت مطالب کاربردی در این زمینه را با شما به اشتراک بگذارم. بیشتر از یک برنامه نویس باشید...

همچنین ببینید

ASPCore

آموزش ASP.NET Core MVC و ویژوال استودیو

در این سری آموزش ها به نحوه ساخت یک پروژه در ASP.NET Core MVC 2 ...

2 دیدگاه

  1. آیا این توصیه که برای یادگیری asp از web form شروع کنید بعد mvc درست است؟

    • محمد آذرنیوا

      بله این مسیر طی بشه بهتره اما ضرورت نداره که حتما web form رو قبلش یاد بگیرید

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

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