# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET MVC > حرفه ای: اعمال متداول با GridView - این بار در ASP.NET MVC

## Behrouz_Rad

MVC در مجموعه ی NET. معماری جدیدی است که امروزه کم کم جای خود را میان توسعه گران باز کرده است.
طرح اولیه ی MVC در سال 1973 در مرکز تحقیقات صنعتی Oslo در کشور نروژ توسط پروفوسور Trygve Reenskaug ایجاد شد. نام اولیه ی آن Thing Model View Editor بود.
در اکتبر سال 2007 و در کنفرانس ALT.NET، آقای Scott Guthrie که رهبری چندین تیم مرتبط با توسعه ی تکنولوژی های مرتبط با NET. رو در مایکروسافت بر عهده داره طرح اولیه ای رو برای پیاده سازی برنامه های ASP.NET بر مبنای معماری MVC به تعدادی از توسعه گران برای دریافت بازخورد اونها ارائه داد.
در نهایت، این معماری در طی ارائه ی چندین نسخه ی پیش نمایش منتشر شد و در حال حاضر، آخرین نسخه ی آن 2 در حالت RTM است.

اگر با ASP.NET Web Forms کار می کنید و قصد داشته باشید با ASP.NET MVC کار کنید، احتمالاً در همان مرتبه ی اول بسیار متعجب خواهید شد. نه کنترل Server-Side ای خواهید داشت، نه چیزی با عنوان ViewState دارید، نه Event ای وجود داره و نه PostBack ای!
تمامی این موارد رو خودتون باید پیاده سازی کنید...
در ASP.NET MVC کنترل تمامی موارد در دستان شماست و با سطح پایین تری از جزئیات برنامه نویسی وب ارتباط خواهید داشت.
به هر حال برخی ممکن هست بتوانند با MVC تعامل برقرار کنند و برخی نیز با همان Web Forms راحت هستند...

پس از ارائه ی پروژه ی "اعمال متداول با GridView" که بر مبنای Web Forms نوشتم، این بار تصمیم گرفتم این پروژه رو بر مبنای MVC بنویسم...
در این پروژه از jQuery بسیار استفاده شده است. در حقیقت اگر از ASP.NET MVC استفاده می کنید، به خاطر نوع معماری خاص آن حتماً نیاز به یک کتابخانه ی جاوا اسکریپت دارید. زمانی که پروژه ی ASP.NET MVC ایجاد می کنید، کتابخانه ی jQuery به طور خودکار به پروژه ی شما اضافه خواهد شد.

نکته 1) در اولین نسخه ی این پروژه، قابلیت های Paging و ویرایش وجود نداره که در نسخه ی دوم اضافه می کنم.
نکته 2) چون ممکن هست برخی دوستان همچنان از VS 2008 استفاده کنند، این پروژه رو با VS 2008 نوشتم. این پروژه با ASP.NET MVC 2 RTM نوشته شده که ابتدا باید بسته ی مربوطه رو از آدرس ذیل دانلود و نصب بفرمایید:
http://www.microsoft.com/downloads/d...displaylang=en

موفق باشید.

----------


## mmnoody2006

با سلام
بهروز خان چطور می تونم توی پروژه هام از MVC کمک بگیرم آیا شدنی می شه که توی یه پروژه
معمولی از این تکنولوژی کمک گرفت ..

----------


## Behrouz_Rad

> با سلام
> بهروز خان چطور می تونم توی پروژه هام از MVC کمک بگیرم آیا شدنی می شه که توی یه پروژه
> معمولی از این تکنولوژی کمک گرفت ..


متوجه منظورت نشدم :)

----------


## asp2.net

لینکش کار نمیکند

----------


## Behrouz_Rad

> لینکش کار نمیکند


مشکلی نداره... چند بار F5 بزن و در نهایت اگر موفق نشدی از روش های غیر معمول که برای ورود به یک سایت به کار می برند استفاده کن!

موفق باشید.

----------


## mmnoody2006

منظورم اینه که آیا می شه در پروژه ای که قبلا نوشته شده حالا از MVC در اون برنامه بهره برد؟

----------


## Behrouz_Rad

> منظورم اینه که آیا می شه در پروژه ای که قبلا نوشته شده حالا از MVC در اون برنامه بهره برد؟


بله میشه. در MVC 2 مایکروسافت اجزای مختلف MVC رو در 3 فایل DLL مجزا قرار داد که با قرار دادن اونها در پوشه ی bin و کمی دستکاری Web.Config می تونی با MVC کار کنی.
این امکان برای شرکت هایی که پروژه ای رو بر مبنای Web Forms نوشتن و قصد دارن تا به تدریج به MVC مهاجرت کنن مناسب هست.
البته نظر شخصی من این هست که یا کل پروژه رو بر مبنای MVC بنویسید یا اصلاً ننویسید. زیبا نیست که ادغامی از دو حالت در یک پروژه وجود داشته باشه. در این حالت نه میشه اون پروژه رو MVC نامید و نه Web Forms...!
البته برخی موارد نیز استفاده از Web Forms در برنامه اجتناب ناپذیر هست. در نظر بگیرید از کامپوننتی استفاده کردید که بسیار غنی هست و بخش مهمی از پروژه بر مبنای اون هست. از اونجا که در MVC کنترل Server Side معنا نداره، مجبورید که از Web Forms نیز استفاده کنید.

موفق باشید.

----------


## mmnoody2006

اگه لطف کنید و چند تا از برنامه های آنلاین که الان دارن از این تکنولوژی استفاده می کنند معرفی کنید ممنون می شم 

آیا خود ماکروسافت از این تکنولوژی در پروژه هاش استفاده می کنه ؟

----------


## Behrouz_Rad

> اگه لطف کنید و چند تا از برنامه های آنلاین که الان دارن از این تکنولوژی استفاده می کنند معرفی کنید ممنون می شم


تعدادشون زیاد نیست. StackOverFlow.com یک نمونه هست.




> یا خود ماکروسافت از این تکنولوژی در پروژه هاش استفاده می کنه ؟


من تا به حال ندیدم در پروژه های خودش از MVC استفاده کنه.

موفق باشید.

----------


## Modifier

> من تا به حال ندیدم در پروژه های خودش از MVC استفاده کنه.
> 
> موفق باشید.


يه سوال : منظور از پروژه هاي ميكروسافت چيه ؟ 
مگه مايكروسافت هم مثل ما webapp يا deskapp مينويسه ؟
غير از dotnet nuke چيزه ديگه اي هم مگه هست ؟
ميشه نام ببريد؟

ممنون.  
ياعلي.

----------


## Behrouz_Rad

> يه سوال : منظور از پروژه هاي ميكروسافت چيه ؟ 
> مگه مايكروسافت هم مثل ما webapp يا deskapp مينويسه ؟
> غير از dotnet nuke چيزه ديگه اي هم مگه هست ؟
> ميشه نام ببريد؟
> 
> ممنون.  
> ياعلي.


DNN که مال مایکروسافت نیست... منظور پروژه هایی مثل Share Point هست یا حتی قسمتی از سایت خودش...

----------


## reza_62

mvc برای کسانی است که بخوان کنترل کاملی روی سایت و کدشون ، نحوه رندر شدن صفحات داشته باشند من خودم چون از کتابخانه های جاوااسکریپتی زیاد استفاده می کنم اکثر کد این ها با php هست که وقتی asp.net mvc بخونید اونا را راحت می فهمید ساختار asp.net mvc برام راحت تره در web form ما کنترل زیاد داریم ولی بعد یه مدت می گیم خوب حالا می خوام گریدم این قیافه ای باشه کلی باهاش ور می ری در آخر شما تقریبا یک گرید نویس شده اید یا منو ها و ... البته این سلیقه ای هست کلا تو این روش شما کنترل کامل روی تمام بخش های برنامه وبتون دارید حتی هر کدام از بخش های model ، controller و حتی view را نیز می توانید custom  کنید

----------


## gigil_Question

> من تا به حال ندیدم در پروژه های خودش از MVC استفاده کنه.
> 
> موفق باشید.


سلام
یه سوال داشتم و اون اینکه :
مگه بدون داشتن source یه پروژه میشه فهمید که با mvc نوشته شده یا نه؟
آیا به صرف اینکه در url به طور مستقیم آدرس صفحه قرار نگیره میشه گفت که یه پروژه با mvc نوشته شده ؟!!!

----------


## Behrouz_Rad

> سلام
> یه سوال داشتم و اون اینکه :
> مگه بدون داشتن source یه پروژه میشه فهمید که با mvc نوشته شده یا نه؟
> آیا به صرف اینکه در url به طور مستقیم آدرس صفحه قرار نگیره میشه گفت که یه پروژه با mvc نوشته شده ؟!!!


معمولاً از طریق بررسی Header های HTTP میشه زبان مورد استفاده رو متوجه شد و باز هم معمولاً از طریق بررسی وجود فیلد VIEWSTATE__ در صفحه میشه متوجه شد که از MVC استفاده شده یا خیر و یک سری موارد تخصصی دیگه.

موفق باشید.

----------


## araz_pashazadeh

آقای راد اگه امکانش هست کمی بیشتر در این مورد صحبت کنید و این که این روش چه مزایایی نسبت به وب فرم داره و آیا معایبی هم داره اصلا ارزش این را دارد که روش کار را عوض کنیم و از این روش استفاده کنیم...؟
با تشکر...

----------


## Behrouz_Rad

> آقای راد اگه امکانش هست کمی بیشتر در این مورد صحبت کنید و این که این روش چه مزایایی نسبت به وب فرم داره و آیا معایبی هم داره اصلا ارزش این را دارد که روش کار را عوض کنیم و از این روش استفاده کنیم...؟
> با تشکر...


دو دلیل عمده ی ظهور MVC که در همه جا ازش صحبت میشه، یکی فرمت بد خروجی HTML کنترل های ASP.NET هست که در ASP.NET 4.0 این مشکل تا حد زیادی بر طرف شده و همچنین CSS Friendly نیز یکی دیگه از گزینه های مطلوب برای خروجی مناسب هست. و دیگری وجود ViewState در صفحه هست که در حالت نرمال به دلیل اینکه میتونه حجم بالایی رو به خودش اختصاص بده و باعث بشه که یکی از فاکتورهای مهم در SEO که همانا حجم کمتر صفحات و سریعتر بالا آمدن صفحه هست نقض بشه.

MVC کار رو شما رو چند برابر می کنه. مدیریت State در MVC توسط برنامه نویس کاری نسبتاً سخت و زمانبر هست. من هنوز هم نمی دونم در پشت صحنه ی فکری ScottGu چی گذشته که چنین چیزی رو برای افرادی که با دو مفهوم کلیدی Server Controls و  ViewState انس گرفتند ارائه کرده.

طبق گفته ی خودش، وقتی با MVC آشنا شدید می تونید تصمیم بگیرید که این نوع معماری برای چه نوع پروژه هایی مفید هست. به نظر من فقط برای پروژه های کوچک مناسبه.

موفق باشید.

----------


## h.alizadeh

> طبق گفته ی خودش، وقتی با MVC آشنا شدید می تونید تصمیم بگیرید که این نوع معماری برای چه نوع پروژه هایی مفید هست. به نظر من فقط برای پروژه های کوچک مناسبه.


اوه،باتوجه به بحث های زیادی که بچه ها در سایت در این مورد می کردند کل حرفشون در مزایای MVCدر پروژه های بزرگ بود که!!!! مثل راحت شدن تغییرات در سایت و چندین نفره کار کردند روی بخش های مختلف و...

----------


## meysam_pro

پروژه نوشته شده، بیشتر یک مثال آموزشی برای شی گرایی هستش.(البته اگر از ابزارهایی مثل Resharper استفاده میشد، استایل بهتر(تر)ی هم میتونست داشته باشه.)
ولی در کل برای شروع یادگیری ASP.Net MVC خیلی خوبه.

----------


## sheipursheipur

سلام مرسی خیلی عالی بود

----------

