مزایا و معایب ASP.NET MVC

MVC چیست؟

MVC

قصد تشریح کامل MVC را ندارم. تنها مختصری در مورد آن. MVC مخفف Model-View-Controller است. model مسئول نگهداری وضعیت (state) با نگهداری داده ها و به هنگام سازی آنها در پایگاه داده است.
controller مسئول انتخاب یک نمایش خاص، براساس وضعیت است، و view نمایش خاص داده ها است که توسط controller انتخاب می شود.

برخلاف ASP.Net Web Forms که در آن View و Controller در یک صفحه قرار دارند (aspx معادل view است و aspx.cs معادل controller) در ASP.NET MVC این دو به دو جزء مجزا تقسیم می شوند، View و Controller که بر روی یک Model از داده ها کار می کنند.

شاید بتوان گفت یک سایت را می توان با استفاده از ASP.NET Web Forms به گونه ای توسعه داد که مطابق با MVC Pattern طراحی شده باشد. اما استفاده از ASP.NET MVC برنامه نویسان را تا حد بسیار زیادی مجبور می کند تا MVC را پیاده سازی کنند.

مزایای ASP.NET MVC و معایب Web Forms

  1. با توجه به ساختار MVC برنامه نویسان بیشتر مجبور خواهند شد تا کد خوانا تولید کنند. زیرا به طور طبیعی در ASP.NET MVC هر بخش باید کاری که بر عهده آن است انجام دهد و حداقل اطلاع از کاری که بخش های دیگر مسئول آن هستند داشته باشد. اما در Web Forms با ساختار Code-Behind در صفحات، Controller و View ترکیب شده اند.
  2. Unit Testing در صورت استفاده از ASP.NET MVC فوق العاده آسان تر است. بیشتر بخوانید
  3. در Web Forms صفحات در بین ارسال ها وضعیت خود را حفظ می کردند. کارها کمی آسانتر می شد، اما اینکه ارتباط client و server حقیقتا چگونه اتفاق می افتد مخفی بود. با حذف viewstate و postback توسعه وب برای متخصصان وب آسان تر خواهد بود و کنترل بیشتری بر ارتباط client و server وجود دارد. زیرا مطابق با طبیعت وب طراحی شده است.
  4. با حذف viewstate و postback خروجی HTML بسیار خواناتر خواهد بود  و کد HTML فارغ از کدهای اضافه مربوط به viewstate خواهد بود.
  5. تقریبا بر روی کد HTML تولید شده کنترل کامل خواهیم داشت که در ASP.NET Web Forms ممکن نیست.
  6. استفاده از javascript/ajax/jquery/asp.net ajax بسیار آسانتر خواهد بود. زیرا دیگر کدهای کنترل ها تغییر نخواهد کرد و دیگر چیزی شبیه به ctl501_panelContainer_GridView1 نخواهیم داشت.
  7. SEO و بهینه سازی آدرس ها برای سایت های جستجو آسانتر خواهد بود. در Web Forms نیازمند این بودیم که آدرس های اینترنتی rewrite شوند، اما در ASP.NET MVC به این کار نیازی نخواهد بود
  8. با کنترل کامل بر کد HTML تولید شده، امکان SEO بر اساس کد HTML نیز خواهیم داشت.
  9. با جدا شدن view از controller طراحی صفحات وب استاندارد و زیبا دیگر پیچیده نیست و طراح وب می تواند بدون توجه به کار برنامه نویس viewها را آنگونه که می خواهد ایجاد کند و برنامه نویس آنگاه viewها را به کار خواهد گرفت و دیگر کار آنها با هم تداخل نخواهد کرد.
  10. برای agile development فوق العاده است. زیرا در هر زمان باید یک قسمت کامل از نرم افزار ایجاد شود.
  11. ASP.NET MVC به علت حذف لایه بندی های اضافی در معماری، فوق العاده سریعتر اجرا می شود.
  12. آدرس های اینترنتی (urlها) RESTful هستند
  13. در ASP.NET MVC امکان استفاده از ویژگی های کنونی ASP.NET وجود دارد. ویژگی هایی نظیر forms/windows authentication, URL authorization, membership/roles, output and data caching, session/profile state management, health monitoring, configuration systme, the provider architecture.
  14. ویژگی های بسیاری در MVC Frameworkهای مشابه نظیر struts 2 وجود دارد که اگر توسط Microsoft پیاده سازی شود امکان کدنویسی برای سایت های پیچیده با حداقل کد امکان پذیر خواهد بود. ویژگی هایی نظیر انتقال خودکار داده ها، تبدیل خودکار انواع داده، تعیین صحت داده ها و موارد دیگر.
  15. ASP.NET Web Forms سعی می کند تا پیچیدگی های HTML را از برنامه نویس دور کند. اما اگر طراح قصد داشته باشد ظاهر کنترل ها را تغییر دهد، مخصوصا اینکه از روش های مرسوم Web 2.0 برای طراحی ظاهر صفحات استفاده کند، گاهی به پیچیدگی های بیشتری برخورد خواهد کرد.
  16. امکان تبدیل سایت های ساخته شده با استفاده از asp 3.0 به ASP.NET MVC راحت است.

 

مزایای Web Forms و معایب ASP.NET MVC

  1. RAD! (توسعه سریع نرم افزار). با استفاده از ASP.NET MVC همه ی لایه ها باید ساخته شوند تا بتوانیم اجرای نرم افزار را ببینیم. اما توسعه برنامه ها در ASP.NET Web Forms سریعتر است. در ASP.NET Web Forms می توانیم کنترل ها را بر روی فرم بکشیم و بعد فرم قابل استفاده است. ASP.NET Web Forms را می توانیم Visual Basic در وب نام نهیم.
  2. ASP.NET Web Forms در نرم افزارهای زیادی به کار گرفته شده است و اشکالات زیادی از آن رفع شده است، برنامه نویسان زیادی با آن آشنا هستند و توسعه نرم افزار در آن برای برنامه نویسانی که از برنامه نویسی ویندوز می آیند راحت تر است، اما برای استفاده از ASP.NET MVC برنامه نویسان باید آموزش ببینند. از آنجایی که ASP.NET MVC کمتر سعی می کند تا جزئیات http و html را از کاربر پنهان کند، استفاده از آن برای بعضی برنامه نویسان سخت تر است.
  3. در طی سالیان، کنترل های بسیاری برای آن ساخته شده است که در نرم افزارهای تحت وب مختلف می توان از آنها استفاده کرد، مانند کنترل های Telerik اما این کنترل ها اگر در آنها از postback یا viewstate استفاده شده باشد دیگر در ASP.NET MVC قابل استفاده نیستند.
  4. در ASP.NET MVC امکان استفاده از Eventها وجود ندارد.
  5. grid control و update panel هنوز برای ASP.NET MVC ایجاد نشده اند.
  6. برای استفاده از آن باید بسته جداگانه ای را دانلود کرد. (البته در نگارش های جدید به صورت پیش فرض همراه ASP.NET خواهد بود)


نکات دیگری نیز قابل توجه است. استفاده از ASP.NET MVC با استفاده از Visual Studio Express نیز امکان پذیر است.
سایت مشهور stack overflow با استفاده از ASP.NET MVC توسعه داده شده است.
فراموش نباید کرد که نظر Microsoft این است که نه ASP.NET MVC بهتر از ASP.NET Web Forms است و نه جایگزین آن. بلکه هر دو اجزاء اساسی ASP.NET خواهند بود و تا مدت قابل توجهی هر دو پشتیبانی می شوند و توسعه داده خواهند شد.

 

منبع :

طراحیسایت.ایران.ir

به نقل از smaj.blogfa.com

/ 0 نظر / 344 بازدید