در این پست از وب سایت آکادمی برنامه نویسان به معرفی ASP NET MVC خواهیم پرداخت و خواهیم گفت ASP.NET MVC چیست و چه کاربردی هایی دارد .
معرفی ASP NET MVC
Model-View-Controller یا MVC الگویی است که یک برنامه کاربردی را به سه بخش اصلی زیر تفکیک می کند :
- Model
- View
- Controller
چهار چوب ASP.NET MVC یک جایگزین ASP.NET Web Form ها برای ساخت برنامه های تحت وب است. چهار چوب ASP.NET MVC سبک بوده و قابلیت تست پذیری بالایی دارد و همچنین یکسری از ویژگی های ASP.NET Form را مانند master page ها ، سیستم های احراز هویت داراست. فریمورک MVC در اسمبلی System.Web.Mvc تعریف شده است و کنترل کاملی برروی JavaScript،HTML و CSS دارد. همچنین استفاده از آن برای ساخت برنامه های با مقیاس بزرگ که تیم های مختلفی برروی آن کار می کنند پیشنهاد می شود.
الگوی طراحی 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
-
- System.Web.Mvc.Ajax
شامل کلاس هایی است که اسکریپت های Ajax را در یک برنامه ASP.NET MVC پشتیبانی می کند.
- System.Web.Mvc.Ajax
-
- System.Web.Mvc.Async
شامل کلاس ها و اینترفیس هایی جهت پشتیبانی یک برنامه MVC از اعمال غیرهم زمان .
- System.Web.Mvc.Async
- System.Web.Mvc.Html
شامل کلاس هایی است که کمک به رندر کردن کنترل های HTML در یک برنامه MVC می کند. کلاس های موجود در این فضای نام پشتیبانی میکنند از فرم ها ، کنترل های ورودی ، لینک ها ،partial view ها و اعتبار سنجی.
تفاوت های بین ASP.NET MVC و Web Form ها
در این قسمت معرفی ASP NET MVC به تفاوت های بین ASP.NET MVC و Web Form ها خواهیم پرداخت :
[table id=2 /]ساختار برنامه ASP.NET MVC
ساختار یک برنامه ASP.NET MVC حداقل به سه پوشه View ، Model و Controller تقسیم می شود همچنین پوشه های دیگری برای نگهداری فایل های اسکریپت و داده و موارد دیگر وجود دارد.
-
- Model
ازمدل برای نگهداری داده کلاس های ایجاد شده به وسیله Linq to SQL یا Entity Framework ، و یا ارجاع به سرویس هایی مانند WCF استفاده می شود . در نهایت استفاده از مدل برای ارائه داده ها به View است.
- Model
-
- View
پوشه View برای نگهداری View ها و یا Patial View ها استفاده می شود هر View عمل خاصی را بر اساس آنچه کلاس کنترلر به آن محول کرده انجام می دهند. معمولا پوشه View شامل پوشه ای با نام Shared می شود که صفحات و یوزر کنترل هایی که به وسیله بیشتر کنترلر ها استفاده می شود در آن قرار دارد.
- View
- Controller
پوشه کنترلر مجموعه ای از کلاس ها را شامل می شود که هر کلاس فرزند System.Web.Mvc.Controller است.یک کلاس کنترلر تنها شامل متد ها یی می شود که به آنها متدهای Action گفته می شود. متدهای Action مسئول برگرداندن یک Patial View , View ، محتوا ، داده Json و موارد دیگر است.
اکشن ها
اکشن ها برای نوشتن کدها برای انجام کاری خاص استفاده می شوند همچنین مسئولیت بازگشت دادن مواردی برای کاربر مانند یک صفحه ویا یوزر کنترل را بر عهده دارند. هر اکشن شامل یکی از دو نوع در خواست HTTP زیر می شود:
-
- [HttpGet] اکشن ها ی HttpGet برای اجرای درخواست هایی که مستقیما از کاربر می رسد و یا به عبارتی درخواست ها برای اولین بار به وسیله متد اکشن دریافت می شود.
- [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 از web form شروع کنید بعد mvc درست است؟
بله این مسیر طی بشه بهتره اما ضرورت نداره که حتما web form رو قبلش یاد بگیرید