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

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

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، هدف اصلی دستیابی به کنترل برنامه است. لازم نیست وقت بیشتری را برای کدگذاری محدودیت ها اختصاص دهید.
نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود