آموزش ASP.NET MVC

دسته بندی: دات نت (NET.)

آموزش ای اس پی دات نت ام وی سی

آنچه در این صفحه می خوانید:

ASP.NET MVC چیست؟

ASP.NET MVC یک فریمورک برنامه وب است که توسط مایکروسافت تهیه شده است و الگوی MVC را پیاده سازی می کند. این نرم افزار اوپن سورس است و متفاوت از جزء اختصاصی ASP.NET Web Forms است. براساس ASP.NET MVC توسعه دهندگان نرم افزار می توانند تا برنامه وب را به عنوان ترکیبی از سه نقش Model ،View و Controller ایجاد کنند. مدل MVC برنامه های وب را با 3 لایه منطقی تعریف می کند.

تعریف MVC

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

  • Model: داده ها را ذخیره و در صورت لزوم آن ها را به شی تبدیل و آنها را از پایگاه داده بازیابی می کند.
  • View: ساخت UI برنامه را برعهده دارد.
  • Controller: واسط بین دو جز قبلی است که View را به عنوان نمایش دهنده UI برمی گزیند.

Controller دارای سه وظیفه است:

  • پردازش درخواست های ورودی
  • اعمال عملیات بر روی مدل
  • گزینش view ای که باید در پاسخ به درخواست رندر شود.

مدل، نمایان گر حالت جنبه خاصی از برنامه است. یک کنترل کننده تعامل را کنترل می کند و مدل را به روز می کند تا یک تغییر در وضعیت برنامه را منعکس کند و سپس اطلاعات را به View منتقل می کند. یک View اطلاعات لازم را از کنترل کننده می پذیرد و رابط کاربری را برای نمایش آن اطلاعات ارائه می دهد. فریمورک ASP.NET MVC یک فریمورک سبک و تست شده است که با ویژگی های موجود ASP.NET یکپارچه شده است. برخی از این ویژگی های یکپارچه، صفحات اصلی و تأیید هویت مبتنی بر عضویت هستند. فریمورک ASP.NET MVC با استفاده از قراردادهای مبتنی بر رابط، مدل ها، نماها و کنترل کننده ها را جفت می کند و بدین ترتیب اجازه می دهد تا هر یک از اجزاء به طور مستقل مورد آزمایش قرار بگیرند. در نسخه های بعدی ASP.NET ،ASP.NET MVC ،ASP.NET Web API و ASP.NET Web Pages (سکویی که فقط از صفحات Razor استفاده می کند) در MVC 6 یکپارچه خواهند شد.در آوریل 2009، کد منبع ASP.NET MVC تحت مجوز عمومی مایکروسافت (MS-PL) منتشر شد.

مزایای ASP.NET MVC

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

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

فریمورک ASP.NET MVC مزایای زیر را ارائه می دهد:

  • با تقسیم یک برنامه به مدل، نما و کنترلر، مدیریت پیچیدگی را آسانتر می کند.
  • از فرم های نمایش حالت یا سرور استفاده نمی کند. این باعث می شود که فریمورک MVC برای توسعه دهندگانی که می خواهند کنترل کامل بر رفتار یک برنامه داشته باشند، ایده آل باشد.
  • از یک الگوی Front Controller استفاده می کند که درخواست های برنامه وب را از طریق یک کنترلر واحد پردازش می کند. این به شما امکان می دهد تا برنامه ای طراحی کنید که از زیرساخت های مسیریابی غنی پشتیبانی کند.
  • پشتیبانی بهتری برای توسعه محور آزمایش (TDD) فراهم می کند.
  • برای برنامه های وب که توسط تیم های بزرگی از توسعه دهندگان و طراحان وب پشتیبانی می شوند که به کنترل بالایی بر رفتار برنامه ها نیاز دارند، به خوبی کار می کند.
  • کنترل کد های HTML
  • ساخت رابط کاربری قدرتمند تر با Ajax و JQuery
  • ایجاد آدرس های SEO-Friendly

ویژگی های ASP.NET MVC

فریمورک ASP.NET MVC ویژگی های زیر را ارائه می دهد:

  • تفکیک وظایف برنامه (منطق ورودی، منطق کسب و کار و منطق UI)، قابلیت آزمایش و توسعه محور تست (TDD) به طور پیش فرض. کلیه قراردادهای اصلی در فریمورک MVC مبتنی بر رابط هستند و می توانند با استفاده از اشیاء که شبیه سازی شده اند که از رفتار اشیاء واقعی در برنامه تقلید می کنند، آزمایش شوند. شما می توانید برنامه را بدون نیاز به اجرای کنترل کننده ها در یک فرآیند ASP.NET تست کنید، که باعث می شود تست واحد سریع و انعطاف پذیر باشد. می توانید از هر فریمورکی برای آزمایش واحد استفاده کنید که با فریمورک NET سازگار باشد.
  • یک فریمورک قابل توسعه و قابل تعویض. اجزای فریمورک ASP.NET MVC به گونه ای طراحی شده اند که می توان آنها را به راحتی جایگزین یا سفارشی کرد. می توانید موتور مشاهده خود، خط مشی مسیریابی URL، سریال سازی پارامتر از روش عمل و سایر مؤلفه ها را وصل کنید. فریمورک ASP.NET MVC همچنین از استفاده از مدل های بسته بندی Dependency Injection و Inversion of Control پشتیبانی می کند. DI به شما امکان می دهد به جای اینکه به کلاس اعتماد کنید تا خود شیء ایجاد شود، اشیاء را به یک کلاس تزریق کنید. IOC مشخص می کند که اگر یک شی به یک شی دیگر نیاز داشته باشد، اشیاء اول باید شی دوم را از یک منبع خارجی مانند یک فایل پیکربندی دریافت کنند. این کار آزمایش را آسانتر می کند.
  • یک مؤلفه قدرتمند نقشه برداری URL که به شما امکان می دهد برنامه هایی بسازید که دارای آدرس های قابل درک و قابل جستجو هستند. URL ها نباید شامل پسوندهای نام فایل باشند و برای پشتیبانی از الگوهای نامگذاری URL طراحی شده اند که برای بهینه سازی موتور جستجو (SEO) و آدرس دهی انتقال بازنمایی حالت (REST) به خوبی کار می کنند.
  • پشتیبانی از استفاده از نشانه گذاری در صفحه ASP.NET موجود (فایل های xx.)، کنترل کاربر (فایل های ascx.) و صفحه اصلی (فایل های اصلی.) به عنوان الگوهای مشاهده. شما می توانید از ویژگی های موجود ASP.NET با فریمورک ASP.NET MVC مانند صفحات اصلی تو در تو در تو، نمایش عبارات درون خط (<٪ =٪>)، کنترل های اعلامی سرور، قالب ها، اتصال داده ها، بومی سازی و غیره استفاده کنید.
  • پشتیبانی از ویژگی های موجود ASP.NET MVC به شما امکان می دهد از ویژگی هایی مانند تأیید صلاحیت اشکال و تأیید هویت ویندوز، مجوز URL، عضویت، ذخیره اطلاعات و خروجی، مدیریت نشست و نمایه، نظارت بر سلامت، سیستم پیکربندی و معماری ارائه دهنده استفاده کنید.

مقایسه ASP.NET MVC و ASP.NET

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

ASP.Net Web Forms بخشی از فریمورک برنامه وب ASP.NET است. ASP.Net MVC فریمورکی است که با تفکیک نگرانی ها و توانایی طراحی و در CLR (زبان مشترک ران تایم) و بر اساس معماری MVC ساخته شده است. جدا از این تفاوت فنی، اختلافات عمده دیگری نیز بین آنها وجود دارد. در این اینجا، ما در مورد تفاوت های مهم بحث خواهیم کرد که به شما کمک می کند تا انتخاب صحیح بین هر دو را انجام دهید. بیایید با جزئیات بیشتری به هر یک از تفاوت ها توجه کنیم.

  • تفسیر لایه ها: در حالی که ASP.Net Web Forms از روش الگوی کنترل صفحه برای ارائه طرح ها استفاده می کنند، ASP.NET MVC از رویکرد کنترلر جلو استفاده می کند. در ASP.NET MVC، یک کنترلر مشترک برای تمام صفحات وجود دارد.
  • از نظر تفکیک: در ASP.Net Web Forms نگرانی های جدایی وجود دارد زیرا هر صفحه کنترل کننده خاص خود را دارد. با این حال، در ASP.NET MVC، جدایی تمیز وجود دارد زیرا نمایش و کنترلر کاملاً مجزا هستند.
  • تست: تست خودکار در ASF.NET WebForms خسته کننده و دشوار است. ASP.NET MVC در این نبرد پیروز می شود زیرا توسعه محور تست در این روش بسیار ساده است.
  • مدل توسعه: ASP.Net Web Forms از یک مدل توسعه معمولی مبتنی بر رویداد استفاده می کنند، در حالی که ASP.Net MVC از مدل توسعه مبتنی بر الگوی MVC پیروی می کند.
  • اگر به دنبال ASP.Net Web Forms هستید، نیازی به درک دقیق HTML ،CSS یا JavaScript نیست زیرا این همه جزئیات را انتزاع و پایپ لاین خودکار را فراهم می کند. با این حال، اگر از ASP.NET MVC استفاده می کنید، به درک روشنی از نحوه کار HTML ،CSS و JavaScript نیاز دارید.
  • ASP.NET MVC برای برنامه های در مقیاس بزرگ مناسب تر است. WebForm ها به شما کمک می کنند تا زمان توسعه برنامه های اینترانت و اینترنت را که نیاز به کنترل زیادی دارد، کاهش دهید. با این حال، زمان زیادی لازم است که بعداً برای محدود کردن محدودیت ها کد گذاری شود. از طرف دیگر، در ASP.Net MVC، هدف اصلی دستیابی به کنترل برنامه است. لازم نیست وقت بیشتری را برای کدگذاری محدودیت ها اختصاص دهید.
آیا این نوشته را دوست داشتید؟
code-with-mosh-the-complete-asp-net-mvc-5-course

دوره کامل ASP.NET MVC 5 از Code With Mosh


بیاموزید که اپلیکیشن های وب سریع و ایمن را با ASP.NET MVC 5 بسازید و استقرار کنید. امنیت، احراز هویت و مجوز را با استفاده از هویت ASP.NET پیاده سازی ک...

1399/02/18 1439 بازدید
udemy-advanced-aspnet-core-31-mvc

دوره پیشرفته ASP.NET Core 3.1 MVC


اگر به دنبال یادگیری الگوی Repository، معماری N-Tier در زمان رکورد با ASP.NET Core MVC 3.1 هستید، شما در جای درستی قرار دارید. ساخت اپلیکیشن هایی با ا...

1399/02/06 7483 بازدید زیرنویس دارد
linkedin-asp-net-mvc-5-essential-training

آموزش اساسی ASP.NET MVC 5


در این دوره Jonathan "J." Tower مفاهیم اساسی فریم ورک ASP.NET MVC 5 را می آموزد. مفهوم مدل ها، ویوها و کنترلرها و چگونگی انتقال داده ها بین آنها را یا...

1399/01/27 898 بازدید زیرنویس دارد
linkedin-building-react-and-asp-net-mvc-5-applications

آموزش ساخت اپلیکیشن های ری اکت و ASP.NET MVC 5


React.js یک فریم ورک محبوب است که به خصوص برای ساخت اپلیکیشن های وب با ASP.NET MVC 5 مناسب است، اما ادغام این دو چارچوب می تواند چالش برانگیز باشد. در...

1399/01/23 1109 بازدید
udemy-building-an-enterprise-application-with-aspnet-core-mvc

آموزش ساخت اپلیکیشن سازمانی با ASP.NET Core MVC


برای افرادی که دانش پایه OOP و ASP.NET Core جدید را دارند، این دوره از یک رویکرد مبتنی بر پروژه برای آموزش توسعه اپلیکیشن وب ASP.NET Core full-stack ب...

1399/01/21 2715 بازدید
teamtreehouse-asp-net-mvc-forms

آموزش فرم های ASP.NET MVC


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

1398/10/19 924 بازدید
teamtreehouse-asp-net-mvc-basics

آموزش مبانی ASP.NET MVC


در این دوره، در حالی که ما یک وب سایت گالری کتاب طنز را با استفاده از Visual Studio Community ایجاد می کنیم، در مورد اصول اولیه ASP.NET MVC یاد خواهید...

1398/10/10 954 بازدید
linkedin-learning-asp-net-linkedin-learning

یادگیری ASP.NET


در این دوره با چارچوب ASP.NET، ابزارهای این چارچوب برای مدیریت داده‌ها، ایجاد سرویس‌های RESTful و ایجاد اتصالات بلادرنگ وب، ساخت محتوای پویا وب با ASP...

1398/07/26 2570 بازدید زیرنویس دارد
pluralsight-architecting-an-asp-net-core-mvc-application-for-unit-testability

معماری اپلیکیشن ASP.NET Core MVC برای قابلیت تست واحد


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

1398/06/18 3178 بازدید
step-by-step-aspnet-mvc-tutorial-for-beginners-mosh

آموزش ASP.NET MVC 5 برای مبتدیان به صورت گام به گام


در این ویدئو با توسعه اپلیکیشن های وب با ASP.NET MVC 5 به صورت گام به گام، سرگرم کننده و گام به گام آشنا می شوید. به کمک ای اس پی دات نت ام وی سی می ت...

1398/03/03 2364 بازدید زیرنویس دارد
wintellectnow-creating-custom-view-models

آموزش ایجاد ViewModels سفارشی در اپلیکیشن MVC


در این دوره با ایجاد ViewModels سفارشی و دلایل اهمیت آن در اپلیکیشن MVC آشنا می شوید. سرفصل: مقدمه View Models و Class Granularity چرا مدل های...

1397/08/30 1134 بازدید
lynda-asp-net-mvc-5-identity-authentication-and-authorization

آموزش هویت ASP.NET MVC 5 - احراز و تایید هویت


احراز و تایید هویت ویژگی های اصلی بسیاری از اپلیکیشن های مدرن است. با توانمند سازی اعتبار از سیستم عامل های قابل اعتماد مانند فیس بوک و گوگل، می توانی...

1397/06/26 3855 بازدید زیرنویس دارد
lynda-asp-net-mvc-building-for-productivity-and-maintainability

آموزش ایجاد اپلیکیشن های ASP.NET MVC با قابلیت نگهداری و بهره وری


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

1397/06/23 1377 بازدید زیرنویس دارد
packtpub-getting-started-with-asp-net-core-mvc-video

آموزش شروع کار با ASP.NET Core MVC


آخرین فریمورک توسعه وب از مایکروسافت ASP.NET Core است. در این دوره با ایجاد یک وب سایت از ابتدا، راه اندازی اولیه پروژه، مفهوم الگو MVC، مفهوم میان اف...

1397/06/11 3180 بازدید
teamtreehouse-asp-net-mvc-basics-course

آشنایی با مبانی ASP.NET MVC


ASP.NET MVC فریمورک محبوب در سمت سرور است که توسط مایکروسافت طراحی شده و برای ساخت وب سایت های پویا مورد استفاده قرار می گیرد. در این دوره با  اصول AS...

1397/06/01 1833 بازدید
wintellectnow-understanding-mvc-application-architecture-and-the-view-model

آموزش ساخت اپلیکیشن ASP.NET MVC


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

1397/05/25 1351 بازدید
teamtreehouse-dependency-injection-in-asp-net

کارگاه آشنایی با تزریق وابستگی در ASP.NET


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

1397/05/16 3038 بازدید
teamtreehouse-entity-framework-with-asp-net-mvc-course

آموزش Entity Framework با ASP.NET MVC


در این دوره، شما یاد خواهید گرفت چگونه از Entity Framework در اپلیکیشن وب Comic Book Library Manager (یک اپلیکیشن وب که با استفاده از فریمورک وب ASP.N...

1397/05/07 2144 بازدید
teamtreehouse-creating-your-first-asp-net-mvc-website

آموزش ایجاد وب سایت ASP.NET MVC 


در این کارگاه آموزشی، شما نحوه ایجاد وب سایت ASP.NET MVC با استفاده از Visual Studio خواهید آموخت....

1397/04/27 1943 بازدید
packtpub-docker-for-asp-net-core-mvc-video

آموزش Docker برای ASP.NET Core MVC


داکر پلتفرم کانتینری نرم افزاری پیشرو در جهان است. Docker یک شیوه استقرار و مقیاس دادن اپلیکیشن ها در محیط مجازی خود توسعه دهنده به صورت مجزا است. در ...

1397/04/09 2996 بازدید