استفاده از MVC برای کسی که مدتها برنامهنویس ASP.NET WebForm بوده تجربه دلهرهآوری است. از روی شنیدهها میدانستم که MVC بخشی از کارهای خودکار WebForm را که باعث جدایی برنامهنویس و ماهیت طبیعی HTML و Web شده بود را حذف کرده است. یعنی در MVC از یک جایی به بعد این خود برنامهنویس است که باید ارتباط Server و Client را برقرار کند. هر چقدر که پروژه بیشتر جلو میرفت حس میکردم که فاصلهام با جدایی موعود کمتر و کمتر میشود. حسی شبیه به take-off هواپیما از روی زمین، با کمی اغراق.
فکر میکنم که دیروز این لحظه جدایی فرا رسید و من یاد گرفتم که چطور یک Form را با کمک Html.BeginForm در MVC بسازم، اطلاعات آن را با کمک $(“#FormId”).serialize() و $.post() در jQuery به سرور ارسال کنم و در نهایت در سرور با استفاده از متودی در Controllerهای تعریف شده MVC سمت سرور اطلاعات را دریافت کرده و مورد پردازش قرار دهم.
حالا که آن دلهره را پشت سر گذاشتهام (اقلاً بخشی از آن را)، آن حس تبدیل به حسی شیرین و ظفرمندانه شده است. علاوه بر این حس میکنم بعد از مدتها توانستهام با کد client side آشتی کرده و با احترام با آن برخورد کنم. در این رابطه باید ممنون پروژه و راهنمایی مفید یک سایت باشم.
Comments
کار کردن با jQuery در ASP.NET MVC ساده تر از ASP.NET Web Form هست.
همین مثالی که شما درباره Form serialize و طبعا load کردن یک view در div و انجام اعمال سرور ساید در آن ذکر کردید اگر در web form قرار به پیاده سازی بود اولین مشکلی پیش می آمد تداخل viewstate بارگزاری شده با viewstate صحفه ی جاری بود.
یاد گرفتن mvc واسه من خیلی سخت بود. بخصوص که تنهایی این کار رو شروع کردم. ساده ترین کارها واسم کلی طول کشید که انجام بدم. بالاخره تونستم یه برنامه تستی ساده رو باهاش انجام بدم. ولی الان که نگاه می کنم می بینم اونقدرها هم وحشتناک نبود. آموزشش خیلی طول میکشه. کار باهاش اونقدرها سخت نیست. البته من client side رو زیاد کار کردم تو web form . ولی راستش هنوز جرات ندارم یه کار واقعی رو باهاش شروع کنم! نظر شما چیه؟
قدیمترها یک بار تو دام ViewState افتاده بودم، در یک برنامه Web Scraping. مجبور بودم همیشه ViewState و یک متغیر دیگر را نگه داشته و با درخواستهای بعدی بفرستم.
من هنوز خیلی در عمق ASP.NET MVC و jQuery نرفتم. ولی توصیه کلی من این است که از یاد گرفتن نترسید.
افشار اگر میخواهی اطلاعات یک فرم رو به صورت Ajax به سمت سرور پاس بدی. از Ajax.BeginForm استفاده کن من خیلی خوشم مییاد ازش. مثل UpdatePanel خودمونه ولی فوق العاده سبک (از این سبکتر نمیشه!)، نیازی به کد نویسی JS نداره و عالی کار میکنه.
راستش رو بخای اول از همین Ajax.BeginForm و یک چیز مشابه دیگه استفاده کردم ولی چون نتونستم ازش استفاده کنم از خیرش گذشتم. شاید پارامترهاش رو درست set نکرده بودم.
فقط نکتهای که داره اینه که کنترلری که بهش جواب میده باید خروجیش از نوع PartialViewResult باشه. و البته باید id المانی که میخوایی بعد از Request بروزرسانی بشه رو هم به Optionهای Ajax.BeginForm بدی. ولی قبول دارم که کلاً MVC بدون jQuery معنی نداره. بلاخره باید با jQuery مستقیم کار کنی مخصوصاً کارهای Web 2.0 کدهای JS بیشتر از CS میشه.
موفق باشی.
weqwe
خیلی حس جالبیه، من هم مثل شما در حال یادگیری MVC هستم البته تازه کارم، میخواستم ببینم شما برای شروع چی رو پیشنهاد میکنین؟
فکر کنم تجربه شما خیلی بمن کمک بکنه.
من حدودا یک ساله که قصد یادگیری MVC رو دارم.اما یکی اینکه سیستمم اجازه نمیداد :))
دوم اینکه میترسیدم نتونم کارایی که با WebForm انجام میدادم با MVC انجام بدم. اما الان دیگه میخوام شروع کنم.
شما منبع خوبی سراغ دارین؟ فارسی و اگه نبود انگلیسی؟
@ناصر، امیر:
من خودم با کتاب Apress Pro ASP.NET MVC 3 Framework by Adam Freeman and Steven Sanderson شروع کردم ولی دوستان دیگر کتاب Wrox Professional ASP.NET MVC 3 را پیشنهاد کردهاند. هنوز کتاب دوم را ندیدهام ولی به احتمال زیاد من هم با آن ادامه دهم. اطلاعات بیشتر: http://blog.afsharm.com/2011/12/pro-aspnet-mvc-3.html
من مال Apress رو تا یه جایی خوندم. ولی برای شروع به نطرم مال wrox بهتره
خیلی مایلم تصاویر یا دمویی از نمونه پروژه های انجام شده با MVC رو ببینم.
هست همچین چیزی؟
لطفاً ایمیل بزنید
واسه منی که سالها با asp classic کار کردم یه اتفاق لذت بخشه. چون از کدهای پشت فحه ساخته شده و خودکار دات نت متنفرم. دوس دارم خدوم همه چی رو هدایت کنم
آره. داشتن کنترل روی همه چیز لذت و البته قدرت خاصی به آدم میده.