mvc چیست ؟ چرا mvc ؟ تفاوت بین asp.net mvc و asp.net web form در چیست ؟

با پیدایش تکنولوژی MVC این ها و هزاران سوال دیگر در ذهن برنامه نویسان وب نقش بست. برنامه نویسانی که تا به آن زمان با تکنولوژی web form کار می کردند.
برای پاسخگویی به سوالات بالا ابتدا می بایست با برخی اصطلاحات آشنا شوید.

View چیست؟
view ها در اصل همان قالب صفحات وب می باشند، همان خروجی ای که باید برای مروگر کاربر ارسال شود. view ها بصورت مستقیم با تگ های html ، کدهای css  و  js سروکار دارند.

View Engine چیست؟
view engine یا موتورهای نمایش ، هسته اصلی asp.net هستند.
بخشی که وظیفه اش پردازش view ها و دستوراتی است که در داخل view ها نوشته شده است.

در asp.net به دو روش می توان یک وب سایت ایجاد کرد:
  1. با استفاده از تکنولوژی web form
  2. با استفاده از تکنولوژی mvc
در تکنولوژی وب فرم ، view ها درون فایل هایی با پسوند .aspx نگهداری می شوند (در اصل view ها بخش دیزاین صفحاتمان می باشند)
در وب فرم ، view ها بوسیله موتور نمایش ASPX پردازش می شوند.

در تکنولوژی mvc ، ویوها درون فایل هایی با پسوند cshtml.  یا vbhtml. می باشند (بسته به اینکه از سی شارپ و یا وی بی برای کد نویسی پروژه استفاده کنین) و از موتور نمایش Razor برای پردازش ویوها استفاده می شود (البته در mvc از موتور aspx هم می تونین استفاده کنین ولی موتور اختصاصی اش Razor است که مخصوصا برای پردازش view های mvc طراحی شده است و به نظرم سرعتشم خیلی بیشتر از aspx باید باشه)

mvc چیست؟
mvc مخفف Model - View - Controller است.
در mvc دیگر فایلی به نام صفحه وجود خارجی و فیزیکی ندارد! و همه چیز بر اساس شی گرایی و کلاس های مختلف بنا شده است.
پروژه های mvc دارای سه بخش اصلی با نام های Model  ، View  و Controller می باشند.

Model : کلاس های اشیایی که قرار است با آنها در پروژه کار کنیم در این بخش قرار می گیرند.
کلاس هایی مانند Person ، Product ، ShopingCard ، Members و ...

View : همان قالب های html  - css  - js  خروجی هستند که قرار است به کاربران نمایش داده شوند.
(به بیان ساده همون بخش دیزاین صفحات در تکنولوژی web form هستند)

Controller : بخش اصلی mvc و کنترل کننده درخواست ها (http request ها) هستند و مشخص می کنند که وقتی کاربری درخواست مشاهده آدرس  http://mysite.com و یا http://mysite.com/product و یا http://mysite/product/list را داد ، چه اطلاعاتی باید به کدام ویو پاس داده شود و سپس خروجی ویو دریافت و برای کاربر ارسال گردد.

نکته جالب در زمان کار با mvc این است که شما در آدرس های مختلف یک سایت پسوندهای معمول aspx. را مشاهده نمی نمایید.
این بدین دلیل است که آدرس صفحات در mvc بدین صورت ترجمه می شود:

http://mysite.com/{controller}/method/data

بنابراین وقتی درخواستی برای مشاهده آدرسی همانند http://mysite/product/list را می دهیم ، در اصل شما متد (تابع) list از کنترلر product را مستقیما فراخوانی (اجرا) می نمایید و خروجی تابع را در مروگر خود مشاهده می نمایید (می توان گفت که خروجی توابع کنترلر ها یک سند کامل html است)

جالب است ؟ یعنی کاربران سایت شما ، با ورود به آدرس های مختلف ، در اصل دارند توابع موجود در کنترلر های سایت شما را فراخوانی می نماییند.
در آموزش های بعد خواهید دید که خروجی متد ها (توابع) کنترلرها از نوع داده ای ActionResult است (محتویان یک سند html کامل).

به راستی که خیلی مهیج و جالب است.... نه ؟


متد Respository :
به بیان ساده ما در پروژه های mvc کدهایی که کار با اطلاعات منابع داده ای (دیتابیس SQL یا ...) را برایمان انجام می دهند را درون بخش Model نمی نویسیم و آنها را در بخش مجزایی می نویسیم تا کدهای آنها با کدهای بخش Model پروژه قاطی نشوند، به این کار که موجب جداسازی کدهای لایه دیتا با کدهای بخش Model می شوند ، اصطلاحا Respository می گویند.
پس اگر مثل بنده در درون مقالات آموزش MVC به این کلمه برخورد کردید ، اصلا نترسید .... چون چیز خاصی نیست!


اگر از این مقاله و mvc خوشتون اومده ، پیشنهاد می کنم آموزش های بعدی بنده رو دنبال کنید
در مقالات بعدی mvc را کامل تر بررسی می کنیم و نحوه ایجاد پروژه های mvc را نیز بیان می نماییم...
با آرزوی موفقیت.
ح.مراداف

نوشته شده در تاریخ پنجشنبه 11 مهر 1392    | توسط: ح.م    | طبقه بندی: آموزش mvc،     | نظرات()