مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

azeran

عضویت از 1392/10/16

کوچ به سمت MVC اری یا نه؟

  • یکشنبه 17 خرداد 1394
  • 15:17
تشکر میکنم

جناب  باقرزاده 

من یه مدتی هست دارم asp-webform کار میکنم یعنی یاد می گیرم

اینو هنوز یاد نگرفته MVC اومده به نظر شما ولش کنم برم سراغ MVC یا همینو ادامه بدم

من قبلا خدای دلفی بودم ولش کردم برم سراغ webform اونو هم فراموش کردم

و نتونستم یه پروژه تجاری از تو ASP بنویسم

چکار کنم؟

 

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 17 خرداد 1394
  • 15:22
همواره بحث های بسیاری در بین معماران نرم افزار در رابطه با استفاده از تکنولوژی های مختلف در توسعه نرم افزار داشته و دارد. بحث هایی در استفاده از ORM ها یا Stored Procedures ، مقایسه SOAP با REST و …. با ارائه Microsoft ASP .NET MVC شبه هایی در رابطه با استفاده از ASP .NET Web Form در مقایسه با ASP .NET MVC بوجود آمده است. بسیاری از افراد تصور می کنند که MVC به عنوان جایگزین Web Form ها ارائه شده است. آیا واقعا این چنین است؟
در واقع این طور نیست و MVC به عنوان یک گزینه جدید در اختیار برنامه نویسان وب قرار گرفته است و هیچ یک از این دو دیدگاه جایگزین یکدیگر نخواهند شد. افراد در انتخاب بین این دو می توانند به صورت آزادانه عمل کنند و هریک از این دو روش که با آن راحتر هستند را انتخاب کنند.

مشکلات ASP .NET Web Forms

اما مشکلات ASP .NET Web Form چیست؟ چرا مایکروسافت به ارائه گزینه جدیدی در توسعه نرم افزارهای تحت وب روی آورده است؟ در واقع مایکروسافت با ارائه Web Form ها سعی در تطبیق دادن مدل توسعه سیستم های تحت ویندوز به سیستم های تحت وب را دارد. به همین جهت بسیاری از برنامه نویسان که پیش از این برنامه های تحت ویندوز تولید می کردند (به ویژه برنامه نویسان VB6) به سادگی و بدون نیاز به کسب دانش فنی بالا در خصوص ساختارهای وب و HTTP شروع به توسعه سیستم های تحت وب کردند. برنامه نویسانی که تا قبل از ASP .NET Web Form به استفاده از کنترل ها ، مدیریت رویدادها و ساختار نرم افزارهای تحت ویندوز عادت کرده بودند، حالا برنامه نویس وب بودند و سیستم های تحت وب تولید می کردند.
مایکروسافت برای شبیه سازی توسعه سیستم تحت ویندوز در وب ، وب فرم ها ساختاری برپایه رویدادها (Event-Driven) را معرفی و دو مفهوم View State و Post Back را ارائه کردند. در نتیجه وب فرم ها ساختار طبیعی Stateless وب را شکستند. هر دو ماهیت View State و Post Back باعث به وجود آمدن بسیاری از مشکلات و افزودن پیچیدگی توسعه نرم افزارهایی تحت وب شدند. تولید بسیاری از صفحات وب که دارای صدها کیلوبایت از View State که باعث افت بازدهی و سنگین شدن عملکرد نرم افزارهایی تحت وب شد. برنامه نویسان دیگر کنترلی بر خروجی HTML تولید شده از سوی صفحات نداشتند و عملا کنترل های تحت سرور (Server Controls) به تولید تگ های غیر استاندارد و استفاده از In-line Style ها می پرداختند. همچنین تولید کدهای JavaScript با توجه به ساختار نامگذاری نامناسب Server Control ها بسیار سخت و پیچیده می شد. همچنین به جهت پیچیدگی این ساختار و ترکیب شدن خروجی نمایشی صفحات با پیچیدگی های کد نرم افزار عملا امکان Unit Test غیر ممکن شد.
امروزه با مشخص ترشدن اهمیت Unit Test در توسعه نرم افزار به ویژه با ارائه متدلوژهایی همچون Agile مشکلات بسیار برای تهیه و استفاده از Unit Test ها بیشتر احساس میشد. امروزه بسیاری از توسعه دهندگان وب به دلیل ماهیت Stateless وب در تعامل با ساختارهای نامناسب رویدادگرای Web Form ها به مشکلات بسیاری در توسعه سیستم های تحت وب ، علی الخصوص با ارائه مرورگرهای مدرن برخورده اند. و به همین دلایل و دلایل بسیار دیگر مایکروسافت به ارائه ASP .NET MVC اقدام کرد.

روش کار ASP .NET MVC

ASP .NET MVC
ASP .NET MVC با حذف کردن انعطاف پذیری Web Formها و ساده سازی آن عملکرد بسیار مناسبی ایجاد می کند. این روش که با پیاده سازی الگوی Model-View-Controller که طی سالهای متمادی یکی از بهترین روش های پیاده سازی UI بوده است ، امکان توسعه نرم افزارهای تحت وب با ساختار کاملا مستقل از هم را فراهم می نماید. الگوی MVC نرم افزار را به سه بخش Model، View و Controller تقسیم می نماید.
ASP .NET MVC - View

View مسئولیت ارائه ساختار نمایشی نرم افزار را به عهده دارد و با استفاده از ساختارهای HTML و اطلاعات پاس شده از طریق Controller به ارائه صفحات نمایش اقدام می نماید.

ASP .NET MVC - Model
Model به پیاده سازی منطق نگهداری داده های سیستم می پردازد و مسئولیت نگهداری اطلاعات را به عهده دارد.
ASP .NET MVC - Controller
Controller ها هم وظیفه کنترل کردن درخواست ها و تعامل های کاربران را به عهده دارند. تمامی درخواست هایی که از Client به سرور منتقل می شوند توسط Controller بررسی و با کنترل نسبت به استفاده از Model مربوطه و نمایش View مرتبط تصمیم گیری می نماید.
در MVC استفاده از رویدادها با Action های یک Controller جایگزین می شود. در واقع مهمترین مزیت استفاده از MVC جدا سازی بخش های مختلف سیستم از یکدیگر و امکان انجام Unit Test ها با توجه به این ساختار می باشد. همچنین مدیریت بهینه URL ها و خروجی های تولید شده HTML توسط View ها و کمک به بهینه سازی خروجی وب سایت برای موتورهای جستجو گر می باشد. در ساختار MVC دیگر مفهومی به نام View State ، Post Back و Server Control وجود ندارد و به همین جهت برنامه نویس به طور کامل بر روی خروجی تولید شده از صفحات مسلط می باشد.

مقایسه

مزایای ASP .NET MVC

مجزا سازی بخش های مختلف نرم افزار

کنترل کامل بر روی خروجی های تولید شده HTML

امکان توسعه نرم افزار به صورت TTD

مدیریت بهینه URL ها

امکان یکپارچه سازی مناسب با فریم ورک های جاوا اسکریپت

امکان استفاده از View Engine ها مختلف

عدم وجود View State و Post Back

استفاده از استانداردهای وب

قابلیت توسعه پذیری بالا

ایده آل برای سیستم های Web 2.0

مزایای ASP .NET Web Form

ساختار شبیه به نرم افزارهای تحت ویندوز

توسعه سریع نرم افزار

امکان استفاده از کنترل های غنی تحت سرور

نتیجه گیری

در واقع انتخاب هریک از این دو گزینه می تواند برای شما و تیم تان مناسب باشد. اگر شما به دنبال مدیریت کامل بر روی خروجی های صفحات خود هستید ، اگر به دنبال توسعه نرم افزار به روش TDD هستید ، اگر آدرس های تولید شده صفحات و بهینه سازی موتورهای جستجو برای شما دارای اهمیت است و البته اگر به دنبال استفاده از فریم ورک های جاوا اسکریپ هستید ، ASP .NET MVC گزینه مورد نظر شماست.
در سوی دیگر اگر شما از ساختارهای نرم افزارهای تحت وب، استانداردهای وب و HTTP اطلاعاتی ندارید ، ویا اگر به دنبال استفاده از کنترل های مختلف و توسعه نرم افزار به روش رویدادگرا هستید قطعا استفاده از ASP .NET MVC برای شما مناسب نمی باشد و بهتر است از ASP .NET Web Form استفاده کنید.

 

منبع : blog.masoudtb.ir

کاربر سایت

azeran

عضویت از 1392/10/16

  • یکشنبه 17 خرداد 1394
  • 15:25

در خصوص استفاده از silverlight و آینده آن؟

موارد کاربرد آن چطور؟نظر شما چیه؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 17 خرداد 1394
  • 17:10

تقریبا با اومدن HTML 5 این تکنولوژی روبه شکست هست

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • دوشنبه 18 خرداد 1394
  • 07:45

همونطور که مهندس مدائنی توضیح دادند انجام پروژه توسط هر یک از این دو تکنولوژی طبق انتخاب و نیاز شماست تنها نکته اینه که شما برای طراحی و برنامه نویسی کدام روش را می خواهید انتخاب کنید. مسئله روشنی که وجود داره اینه که MVC بروز تر و مطمعنا جای پیشرفت بیشتری داره. درباره silverlight هم باز مهندس توضیح دادند ، این تکنولوژی با ورود HTML5 کم رنگتر شد ، چون کتابخانه سنگینی برای کلاینت ها داشت و حتما باید روی سیستم کلاینت نصب می شد.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)