# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET MVC >  تفاوت page و view

## elham9

سلام

ممنون میشم تفاوت page و view رو بگید ؟ و اینکه کاربرد page ها در کدام قسمت سایت هست ؟کی از page استفاده کنیم کی از view?

----------


## hakim22

اگر منظور شما RazorPage هست این قابلیت فقط در ASP.NET Core 2.0 به بعد وجود دارد. در سایر ASP ها فقط View داریم. 

طبق نظر تیم توسعه ی ASP.NET Core شما همیشه باید از RazorPage استفاده کنید میگر آنکه به امکانات بیشتر از آن نیاز داشته باشید. 

قبلا از MVC برای همه ی کارها در ASP.NET  استفاده میشد. 

حالا مایکروسافت می گوید برای نمایش اطلاعات در یک صفحه (همان View)  از Page استفاده کنید و برای کار با داده مانند وب سرویس و ... از MVC استفاده کنید. 

مایکروسافت این روش رو Page Focused Develpment میخونه و تلاشی هست تا برای نمایش اطلاعات در یک صفحه ی وب مسیر کوتاهتری طی کنید. 

مشکل مایکروسافت این بود که اگر کسی می خواست اولین پروژه ی خودش رو با ASP.NET Core پیاده کنه و یک صفحه به کاربر نمایش بده مایکروسافت باید بهش میگفت که برو یک کنترلر بساز (بعد یاد میداد کنترلر چیه و چیکار میکنه ) بعد یک اکشن بساز بعد اکشن رو توضیح میداد بعد تازه به آموزش مدل و ویو میرسید. تا فقط یک صفحه ی ساده ی وب ایجاد کنه. 

این در مقایسه با فریم ورکهای دیگر وب مثل Node.js و PHP فرآیند بسیار طولانی تر بود. در هر دوی این تکنولوژی شما می توانید یک صفحه با برنامه نویسی وب بسازید بدون اینکه نیاز به ساختاری مانند MVC داشته باشید. می توانید بلافاصله شروع کنید و بعدا که بیشتر یاد گرفتید MVC را اضافه کنید. 

اما ASP.NET Core بر مبنای ساختاری به نام MVC پیاده شده . یعنی MVC شهروند درجه ی اول این فریم ورک است و اصولا صفحه به معنای اون چیزی که در PHP و Node.js داریم در ASP نداریم. مایکروسافت اومد و برای MVC یک مسیر میانبری به نام RazorPage ایجاد کرد. شما همچنان در حال استفاده از MVC هستید اما نیاز به کنترلر ندارید و وجود اکشن و مدل هم الزامی نیست. 

شما می توانید از یک RazorPage ساده شروع کنید و گام به گام به آن امکانات بیشتری اضافه کنید. همه ی قابلیت های Controller در یک  RazorPage هست ولی از RazorPage فقط برای نمایش اطلاعات (View) استفاده میشود. اگر می خواهید خروجی File یا Json داشته باشید بهتر است از Controller استفاده کنید.

این نکته رو هم اضافه کنم که در MVC شما ابتدا کنترلر می سازید بعد به آن اکشن اضافه میکنید و بعد Model رو پیاده می کنید و در آخر هم سراغ ویو میروید. 
اما در RazorPage مسیر کاملا بر عکسه. شما اول ویو رو میسازید. اگر نیاز به مدل داشتید اضافه می کنید. اگر نیاز به اکشن برای پردازش اطلاعات مدل بود اکشن رو اضافه می کنید و بعد از اکشن کار Page تمام میشود. دیگر نیازی به Controller ندارید.

----------


## elham9

خب بنابراین برای صفحاتی مثه لاگین و رجیستر و signout بنظر میاد که از پیج استفاده کنیم بهتر باشه؟

ممنون از توضیحات کامل و عالیتون

----------


## hakim22

در ASP.NET Core 2.1 به بعد همه ی صفحات مربوط به Identity مثل ورود و خروج و ... به صورت RazorPage قبلا ایجاد شده و درون یک کتابخانه ی مجزا قرار داده شده . اگر هم بخواهید آنها تغییر دهید باید از RazorPage جدید استفاده کنید. بنابر این پاسخ سوال شما مثبته.

----------


## mmbguide

سلام جناب hakim22

اگر امکان داره بفرمایید مشکل مطرح شده در لینک زر باید چطوری حل بشه؟

https://barnamenevis.org/showthread....A7%D9%85%D9%87

----------

