PDA

View Full Version : گفتگو: اگر ASP.NET MVC رو ياد نگيرم ضرر خواهم كرد ؟



Mostafa_Dindar
شنبه 08 خرداد 1389, 20:05 عصر
سلام ،

از زمان ارائه نسخه 1.0 ASP.NET MVC چند سالي ميگذره و حالا مايكروسافت نسخه 2.0 اون رو ارائه داده كه بسيار پخته تر شده . سرمايه گذاري زيادي روي اون كرده و هر روز منابع بيشتري رو در اينترنت پيدا ميكنيد كه به اون پرداخته و برنامه نويسان بيشتري رو به خودش جذب كرده . اگر به سايت رسمي مايكروسافت در زمينه ASP.NET يعني www.ASP.NET (http://www.ASP.NET)برويد ، ديگر خبري از آرايش قديمي سايت نيست ، و به ASP.NET MVC همانقدر اهميت داده شده كه به Web From ها اهميت داده شده و شايد هم بيشتر .

مايكروسافت صراحتا اعلام ميكنه كه از معماري Web Form ها پشتيباني ميكنه و ASP.NET MVC جايگزيني براي Web Form ها نيست .

ولي آيا مزاياي ASP.NET MVC اونقدر هست كه ما اگر اون رو ياد نگيريم ضرر كنيم ؟


ممنون از توجهتون

Behrouz_Rad
شنبه 08 خرداد 1389, 22:37 عصر
به نظر من مایکروسافت برای جذب طرفداران Ruby on Rails این معماری رو به ASP.NET اضافه کرد... یک جورایی MVC به مایکروسافت تحمیل شده و من ندیدم که مایکروسافت در پروژه های معتبر خودش از MVC استفاده کنه.

موفق باشید.

ASPX
یک شنبه 09 خرداد 1389, 08:41 صبح
اگه به وبلاگ استاد نصیری هم سر بزنید مطلبی تحت عنوان

"كداميك از محصولات مهم تجاري 2010 مايكروسافت از ASP.NET MVC استفاده مي‌كنند؟ "

دارند که حرف آقای راد هم تایید میشه.

لینک مطلب : http://vahidnasiri.blogspot.com/2010/04/2010-aspnet-mvc.html

reza_62
یک شنبه 09 خرداد 1389, 14:33 عصر
دوستان هیچ شرکتی حتی خود مایکروسافت هم نمیاد کله کدشو شخم بزنه بکنه mvc !!!!!!
برای یک نمونه پیاده سازی خوب mvc سایت stackoverflow با اون حجم کاربر و دیتا را در نظر بگیرید

Behrouz_Rad
یک شنبه 09 خرداد 1389, 14:41 عصر
دوستان هیچ شرکتی حتی خود مایکروسافت هم نمیاد کله کدشو شخم بزنه بکنه mvc !!!!!!

این کار حتماً دلیلی داره وگرنه فکر می کنی مثلاً کدهای IDE ویژوال استادیو کمتر از Share Point هستند که مایکروسافت حاضر شد IDE VS 2010 رو از ابتدا با WPF بنویسه؟

z_bluestar
یک شنبه 09 خرداد 1389, 14:53 عصر
من آشنایی زیادی با MVC ندارم.
آیا این معماری مشکل یا کمبودی داره؟؟ یا اینکه استفاده نشدن از اون یه چیز سلیقه ای هست ؟

hamid1988
یک شنبه 09 خرداد 1389, 17:41 عصر
من آشنایی زیادی با MVC ندارم.
Mvc مخفف سه کلمه ی Model View Controller هست. در واقع Mvc بر روی معماری های چند لایه ای جهت جداسازی قسمت های مختلف برنامه و به طور دقیق تر جدا کردن بخش های منطقی برنامه اعم از دیتا، permissionها، چک کردن صحت داده ها و.... از لایه Presentation Layer یا در واقع همان لایه ای که مستقیماَ با کاربر نهایی در ارتباط است، قرار می گیرد.
منبع: آموزش ارتباط با بانک اطلاعاتی در ASP.NET Mvc نوشته ابوالفضل عقیلی کوهستانی

reza_62
یک شنبه 09 خرداد 1389, 21:29 عصر
آقای راد استادن ولی نظر من اینه که
درسته شما مجبور نیستی ولی با یادگرفتنش می تونی چیزایی رو بدست بیاری که با web form نمی تونی
1 - کنترل کامل صفحه دست خودته و می دونی چی داره رندر می شه
2 - Url Routing که درسته به asp.net 4 اضافه شده ولی مثال هایی که دیدم به قدرت url routing در mvc نیست
اگر اشتباه می کنم بگویید
3 - شما در mvc با طبیعت وب کد نویسی می کنید get و post ولی در web form برای راحتی همه چیز post می شود شاید اول بگید چه کاریه ولی اگر روزی برسد که بخواهید روی php یا jsp یا ruby سوئیچ کنید خیلی راحت خواهید بود
4 - در ادامه بند 3 شما در وب به مقاله های خوبی برخورد می کنید که مثلا با php نوشته شده است در این صورت این مقاله ها را راحتتر متوجه خواهید شد
5 - زمانی که وب فرم آمد کنترل های وب مثل امروز زیاد نبودند الان jquery ui ، dojo ، extjs و .... وجود دارند که با asp.net mvc خیلی راحت تر از web form می توانید از آنها استفاده کنید
6 - توی mvc دیگر خبری از view state نیست که من شخصا از نبودنش خیلی راضیم
7 - کار کردن با ajax از نظر من خیلی راحت تره در mvc
8 - تمام بخش های asp.net mvc یعنی model ، view و controller ها را می توان سفارشی کرد
شما چیزی را از دست نمی دید ولی به نظر من کنترل کاملی روی برنامه وبتان دارید
آقای راد سایت asp.net جدیدا با asp.net mvc پیاده سازی شده است

Behrouz_Rad
یک شنبه 09 خرداد 1389, 22:43 عصر
آقای راد سایت ASP.NET جدیدا با ASP.NET mvc پیاده سازی شده است

البته تمامی مواردی که بر شمردید ترجیحات شخصی شما است و اثباتی برای اکثر اونها وجود نداره... ترجیحات من میتونه بالعکس باشه!

ممکنه منبعی که مشخص کرده سایت asp.net با MVC پیاده سازی شده رو بگی؟ مرسی.

reza_62
یک شنبه 09 خرداد 1389, 23:00 عصر
در مورد سایت asp.net اشتباه کردم جایی نزده سورسشو دیدم خیلی تر تمیز بود ;) از هیچ کنترل سرور سایدی استفاده نکردن چون view state هاشون خیلی کوچک بود
در مورد بقیه درسته این ها ترجیهات شخصی ولی mvc این ها را برای من امکان پذیر کرده اینا را نوشتم که اگر کسی این مسائل براش مهم بود انتخاب کنه

Behrouz_Rad
یک شنبه 09 خرداد 1389, 23:22 عصر
در مورد سایت ASP.NET اشتباه کردم جایی نزده سورسشو دیدم خیلی تر تمیز بود ;) از هیچ کنترل سرور سایدی استفاده نکردن چون view state هاشون خیلی کوچک بود

بله من هم چون دیدم صفحاتش ViewState داره از حرفت تعجب کردم ;)

البته کوچک بودن ViewState دلیل بر این نیست که از کنترل Server Side استفاده نشده... ممکنه ViewState در سمت Server ذخیره میشه... ممکنه!

reza_62
یک شنبه 09 خرداد 1389, 23:30 عصر
آره زیادی دیگه view state اش کمه !!!!

shirin_sh1024
دوشنبه 10 خرداد 1389, 00:14 صبح
میتونید درباره mvc یه منیع خوب معرفی کنید؟
pdf باشه فارسی هم باشه بهتره :لبخندساده:

Mahdi-563
دوشنبه 10 خرداد 1389, 01:51 صبح
mvcبيشتر من بخاطر url frendly بودنش دوست دارم وگرنه كد نويسي جالبي نداشت هرهند iss من چون 6 بود هر كاري كردم روش جواب نداد مثه اينه iis 7 لازمه البته دقيق نمي دونم از استيد اگه اشتباه مي گم راه نمايي كنند.
من كلا باش حال نكردم.

reza_62
دوشنبه 10 خرداد 1389, 08:49 صبح
میتونید درباره mvc یه منیع خوب معرفی کنید؟
pdf باشه فارسی هم باشه بهتره :لبخندساده:

انگلیسی این کتاب
Programming Microsoft® ASP.NET MVC
و اگر tutorial بخواهید
http://nerddinnerbook.s3.amazonaws.com/Intro.htm

Mostafa_Dindar
دوشنبه 10 خرداد 1389, 09:00 صبح
سايت ASP.NET (http://ww.ASP.NET)رو با Umbraco (http://umbraco.org) زدن .

منبع :
About Technical Debates (and ASP.NET Web Forms and ASP.NET MVC debates in particular)( وبلاگ آقاي اسكات گوتري) (http://weblogs.ASP.NET/scottgu/archive/2010/01/24/about-technical-debates-both-in-general-and-regarding-asp-net-web-forms-and-asp-net-mvc-in-particular.aspx)



میتونید درباره mvc یه منیع خوب معرفی کنید؟
pdf باشه فارسی هم باشه بهتره :لبخندساده:

http://barnamenevis.org/forum/showthread.php?t=206356&highlight=mvc

Mostafa_Dindar
دوشنبه 10 خرداد 1389, 23:53 عصر
اين مطلب رو الان خوندم ، اگرچه چيزهاي جديدي نگفته ، ولي خلاصه و به زبان فارسي هست :


منبع (http://sepidweb.ir/post/1389/01/27/%D9%85%D8%B2%D8%A7%DB%8C%D8%A7-%D9%88-%D9%85%D8%B9%D8%A7%DB%8C%D8%A8-ASPNET-MVC.aspx)

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

با توجه به ساختار MVC برنامه نویسان بیشتر مجبور خواهند شد تا کد خوانا تولید کنند. زیرا به طور طبیعی در ASP.NET MVC هر بخش باید کاری که بر عهده آن است انجام دهد و حداقل اطلاع از کاری که بخش های دیگر مسئول آن هستند داشته باشد. اما در Web Forms با ساختار Code-Behind در صفحات، Controller و View ترکیب شده اند.
Unit Testing در صورت استفاده از ASP.NET MVC فوق العاده آسان تر است. بیشتر بخوانید (http://sirasad.wordpress.com/2010/03/01/%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4-%D9%85%D8%AD%D9%88%D8%B1/)
در Web Forms صفحات در بین ارسال ها وضعیت خود را حفظ می کردند. کارها کمی آسانتر می شد، اما اینکه ارتباط client و server حقیقتا چگونه اتفاق می افتد مخفی بود. با حذف viewstate و postback توسعه وب برای متخصصان وب آسان تر خواهد بود و کنترل بیشتری بر ارتباط client و server وجود دارد. زیرا مطابق با طبیعت وب طراحی شده است.
با حذف viewstate و postback خروجی HTML بسیار خواناتر خواهد بود و کد HTML فارغ از کدهای اضافه مربوط به viewstate خواهد بود.
تقریبا بر روی کد HTML تولید شده کنترل کامل خواهیم داشت که در ASP.NET Web Forms ممکن نیست.
استفاده از javascript/ajax/jquery/asp.net ajax بسیار آسانتر خواهد بود. زیرا دیگر کدهای کنترل ها تغییر نخواهد کرد و دیگر چیزی شبیه به ctl501_panelContainer_GridView1 نخواهیم داشت.
SEO و بهینه سازی آدرس ها برای سایت های جستجو آسانتر خواهد بود. در Web Forms نیازمند این بودیم که آدرس های اینترنتی rewrite شوند، اما در ASP.NET MVC به این کار نیازی نخواهد بود
با کنترل کامل بر کد HTML تولید شده، امکان SEO بر اساس کد HTML نیز خواهیم داشت.
با جدا شدن view از controller طراحی صفحات وب استاندارد و زیبا دیگر پیچیده نیست و طراح وب می تواند بدون توجه به کار برنامه نویس viewها را آنگونه که می خواهد ایجاد کند و برنامه نویس آنگاه viewها را به کار خواهد گرفت و دیگر کار آنها با هم تداخل نخواهد کرد.
برای agile development فوق العاده است. زیرا در هر زمان باید یک قسمت کامل از نرم افزار ایجاد شود.
ASP.NET MVC به علت حذف لایه بندی های اضافی در معماری، فوق العاده سریعتر اجرا می شود.
آدرس های اینترنتی (urlها) RESTful هستند
در 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.
ویژگی های بسیاری در MVC Frameworkهای مشابه نظیر struts 2 وجود دارد که اگر توسط Microsoft پیاده سازی شود امکان کدنویسی برای سایت های پیچیده با حداقل کد امکان پذیر خواهد بود. ویژگی هایی نظیر انتقال خودکار داده ها، تبدیل خودکار انواع داده، تعیین صحت داده ها و موارد دیگر.
ASP.NET Web Forms سعی می کند تا پیچیدگی های HTML را از برنامه نویس دور کند. اما اگر طراح قصد داشته باشد ظاهر کنترل ها را تغییر دهد، مخصوصا اینکه از روش های مرسوم Web 2.0 برای طراحی ظاهر صفحات استفاده کند، گاهی به پیچیدگی های بیشتری برخورد خواهد کرد.
امکان تبدیل سایت های ساخته شده با استفاده از asp 3.0 به ASP.NET MVC راحت است.


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



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


نکات دیگری نیز قابل توجه است. استفاده از ASP.NET MVC با استفاده از Visual Studio Express نیز امکان پذیر است.

arian_sh3
سه شنبه 11 خرداد 1389, 00:10 صبح
در ASP.NET MVC امکان استفاده از Eventها وجود ندارد.



سلام دوستان.
ببخشید من خیلی متوجه این یک موضوع نشدم...
یعنی چی؟ مگه میشه؟