PDA

View Full Version : راهنمایی جهت تصمیم گیری برنامه نویسی وب



sasan_22
پنج شنبه 26 بهمن 1391, 01:55 صبح
سلام
اصل مطلب:لبخند:
1- ASP.NET با ASP.NET MVC چ فرقی داره؟؟
2- این MVVM چیه ؟ تو وب کاربر داره ؟؟
3- منظور از الگوی مورد نظر چیه؟؟(در طراحی وب سایت یکی بهم گفت MVVM مگه چنتای دیگه هست؟؟)

ممنون

ahmad156
پنج شنبه 26 بهمن 1391, 08:25 صبح
تفاوت ASP.NET MVC و ASP.NET :

سرواژه MVC از واژگان مدل، ويو و كنترلر تشکيل شده که هريک به‌ترتيب وظيفه نگهداري اطلاعات، نمايش اطلاعات و برقراري ارتباط بين کاربر و سيستم را برعهده دارند.
model يك سند HTML است که به کاربر نمايش داده مي‌شود، CSS بخشي است که به HTML شکل و جلوه‌هاي تصويري مي‌دهد و View را شامل مي‌شود و سرانجام، مرورگر کاربر در نقش controller، مسوول ترکيب CSS و HTML در يک نماي نهايي و پردازش و نمايش آن به‌صورت مقاديري از پيکسل‌ها در صفحه نمايش کاربر است.

تفاوت فرم‌هاي وب رايج ASP.NET و MVC :

در سال 2002 مايکروسافت با ارايه نسخه .Net Framework1.0 اولين کلاس از برنامه‌هاي تحت وب را ارايه کرد. در آن زمان، حتي برنامه‌نويسان آشنا با محيط‌هاي برنامه‌نويسي تحت ويندوز مانند ويژوال بيسيك6 هم قادر بودند با کمترين دانش HTML و آگاهي از تکنولوژي‌هاي وب و تنها با کشيدن و رهاکردن کنترل‌ روي صفحه و کدنويسي رويداد مربوط به کنترل مذکور، در محيطي مشابه با محيط توسعه برنامه‌هاي تحت ويندوز، به توسعه برنامه‌ي تحت وب بپردازند. بنابراين توسعه برنامه‌هاي وب امري رايج براي اکثر برنامه‌نويسان تحت ويندوز بود.

نقاط قوت فرم‌هاي وب ASP.NET بدين شرح است:
يک فناوري بالغ است.
وضعيت را به‌آسانی مديريت مي‌كند.
امکان استفاده از کنترل‌هاي قوي که توسط مايکروسافت و شرکت‌هاي ديگر ارايه مي‌شود.
نيازي اندک به دانش HTTP، HTML، CSS و در بسياري موارد Javascript دارد.
از ViewState و PostBack پشتيباني مي‌كند.

و نقاط ضعف:
بخش منطق و کد تلفيق شده است.
به‌دليل ترکيب فايل‌هاي حاوي کد انجام unit test سخت‌تر است.
از ViewState و PostBack پشتيباني مي‌كند.
مديريت وضعيت کنترل‌ها در بسياري موارد منجر به حجم بالاي صفحات وب مي‌شود.

همان‌طور که مي‌بينيد، پشتيباني از PostBack و ViewState از مزايا و معايب فرم‌هاي وب ASP.NET هستند. ViewState روشي براي نگهداري وضعيت و مقدار کنترل است. استفاده از ViewState به‌دليل ماهيت Stateless محيط وب ضروري است (Stateless بدين معنا که وقتي يک درخواست جديد براي سرور ارسال مي‌شود، سرور هيچ اطلاعي از درخواست قبلي ندارد، بنابراين براي تبديل به يک محيط شبه پايدار، نياز است برخي اطلاعات راجع به درخواست قبلي براي سرور ارسال شود). اين کار با استفاده از فيلدهاي «input /» پنهان انجام مي‌شود که منجر به افزايش حجم صفحه مي‌شوند. به‌ويژه وقتي برخي کنترل‌ها مثل GridView به صفحه اضافه مي‌شود، اين افزايش حجم بسيار نمايان مي‌شود.

PostBack نيز با توليد جاواسكريپت مورد نياز براي کنترل رويدادهاي يک کنترل، سعي بر کاهش اطلاع برنامه‌نويس از جزييات و نحوه ارتباط مرورگر با سرور دارد.

ASP.NET MVC :

در واقع ASP.NET نياز به کنترل دقيق خروجي HTML توسط برنامه‌نويسان را قرباني شباهت برنامه‌هاي وب به ويندوز كرد که اين امر از سويي رضايت توسعه‌دهندگان متوسط وب و از سوي ديگر نارضايتي توسعه‌دهندگان حرفه‌اي که قصد توليد برنامه‌هاي مدرن و پرتعامل با کاربر را داشتند، در پي آورد. از اين‌رو بسياري از توسعه‌دهندگان به‌سمت بسترهايي چون روبي و PHP روي آوردند که با ارايه کنترل‌هاي سطح بالا و پشتيباني از مدل برنامه‌نويسي MVC براي برنامه‌هاي پيچيده وب نياز آن‌ها را برطرف مي‌ساخت. در نتيجه اين نيازها، مايکروسافت در پاييز2007 رسما ارايه بستري مدرن مبتني بر هسته ASP.NET تحت فريم ‌ورکي به‌نام ASP.NET MVC، براي پشتيباني از نياز توسعه‌دهندگان حرفه‌اي وب همراه با کنترل آزمون‌‌پذيري کامل خروجي ارايه شده به مرورگر ارايه داد. توسعه‌دهندگان علاقمند به اين فريم‌ورک، نيازمند آشنايي با مفاهيم HTTP،HTML ،CSS و Javascript هستند و به‌دليل عدم پشتيباني از PostBack و ViewState نگهداري وضعيت برعهده ايشان است و مديريت رويدادها بدليل تفاوت با فرم‌هاي وب نيازمند مطالعه برخي مفاهيم است.

مزاياي MVC :

کاهش چشمگير حجم صفحات وب به‌دليل نبود ViewState
جداسازي بخش‌هاي مختلف
امکان unit testing در سطح برنامه کاربردي
قابليت آدرس‌دهي منطقي و پويا برحسب نياز
پشتيباني از تمام امکانات هسته ASP.NET از جمله احرازهويت، حافظه نهان و ... .


منبع : نامعلوم:لبخند:
در مورد MVVM هم بگم یه الگوی برنامه نویسی هست که آموزش فارسی اون رو میتونین توی لینک زیر ببینین

http://www.dotnettips.info/post/412/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%A7%D9%84%DA%AF%D9%88%DB%8C-m-v-vm%E2%80%8C-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84

sasan_22
پنج شنبه 26 بهمن 1391, 10:57 صبح
دوست عزیز ممنون از پاسخت فقط اون چیزهایی که از نوشته برداشت کردم ببین درسته ؟؟:متفکر:

به‌دليل عدم پشتيباني از PostBack و ViewState نگهداري وضعيت برعهده ايشان است
یعنی PostBack و ViewState اگه تو برنامه نباشه بهتره


بخش منطق و کد تلفيق شده است.
ولی در MVC به لایه های گوناگون تقسیم شده و هر لایه کار خود را انجام می دهد (یه چیزی تو مایه های 3 لایه)


و در آخر مدل های برنامه نویسی وب بجز MVVM و MVC آیا چیز دیگری وجود دارد ؟؟؟؟

ممنون

ahmad156
پنج شنبه 26 بهمن 1391, 12:19 عصر
دوست عزیز
در هر صفحه بعضی از مواقع حجم عمده ای از صفحه رو viewstate میگیره اون هم به خاطر stateless بودن وب.(میتونین با افزودن افزونه ViewState Size از افزونه های firefox این مطلب رو ببینین).خوب شما در هر postback که انجام میشه دوباره باید viewstate ها رو بازیابی کنین تا محتوای قبل از postback رو نمایش بدین(صرف نظر از تغییرات) که این کار توی event مربوط به صفحه (loadviewstate) انجام میشه
شما توی mvc وقتی action ای مقداری برمیگردونه اصلا نمیدونه که view چه جوری میخواد از اون استفاده کنه یعنی تقریبا مستقل هستن(ولی توی webform مثلا اگر بخواین در code behind به یه TextBox مقدار بدین که توی صفحه وجود نداشته باشه خطا میده نمیگم این مشکله ولی خب وابستگی ایجاد میکنه بین لایه ها)
در ضمن یه مقایسه خوب هم تو لینک زیر هست
http://www.dotnettips.info/post/803/asp-net-mvc-1

na_des
پنج شنبه 26 بهمن 1391, 12:38 عصر
دوست عزیز از توضیحاتتون ممنونم , چون پاسخ به سوالی دادید که ذهن من به خودش مشعول کرده بود