دسته بندی ها
00:46 1398/09/19

انتخاب بین AspCoreMVC یا AspCorePages

مشخصات سوال کننده :
کاربر : AliNoori     امتیاز کاربر : 136     رتبه کاربر : 11
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 2774
هوش مصنوعی

پاسخ هوش مصنوعی

انتخاب بین ASP.NET Core MVC و ASP.NET Core Pages بستگی به نوع پروژه و نیازهای شما دارد. در اینجا مزایا و معایب هرکدام را بررسی می کنیم:

ASP.NET Core MVC:

  • مدل طراحی MVC (Model-View-Controller) برای برنامه های بزرگ و پیچیده مناسب است.

  • تفکیک واضح بین منطق کسب و کار، نمایش و کنترل داده.

  • قابلیت استفاده مجدد از کد و تست پذیری بهتر.

ASP.NET Core Pages:

  • برای پروژه های کوچک و ساده تر که نیاز به کنترل پیچیده ندارد، مناسب است.

  • کدنویسی کمتر و ساده تر، مخصوصاً برای صفحات وب.

  • مدل صفحه محور که می تواند سریعتر برای توسعه و نگهداری باشد.

به طور خلاصه، اگر پروژه شما بزرگ و پیچیده است، ASP.NET Core MVC گزینه بهتری است. اما اگر پروژه ای کوچک و ساده دارید، ASP.NET Core Pages می تواند انتخاب مناسبی باشد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : hamid_b 13:33 1398/09/19

یکی از امکاناتی که در نسخه ۲ از تکنولوژی Asp.net core معرفی شده Page ها هستند. در نگاه اول از نظر کارایی بسیار شبیه به View ها می باشند.

نکته اولی که باید به آن دقت کنید اینکه به ساختار MVC تا قبل از Asp.net Core 2 ساختار ام وی سی سنتی و یا traditional MVC گفته می شود. تا همینجای کار شاید به یک نکته پی برده باشید و آن این است که ما گفتیم ام وی سی سنتی!!! یعنی Page ها با چیزی که تا به حال با آن کار می کردیم متفاوت می باشد و دیگر از ساختار model-controller-view پیروی نمی کند.

page ها هم مانندview ها از Razor view استفاده می کنند. البته در Page ها از Razor Page استفاده می شود که خود زیر مجموعه ای از Razor View می باشد. بنابراین می توان گفت اولین تفاوت Page با View این می باشد که Page ها یا همان صفحات از Razor Page ها استفاده می کنند اما View ها از Razor View استفاده می کند.

در بالای Page ها برای اینکه نشان داده شود که این یک Page می باشد از @page استفاده می شود. در ادامه میتوانید یک نمونه از یک Page ساده را مشاهده نمایید.

 

@page
@model LibraryProject.Pages.TestRazorModel
@{
ViewData[“Title”] = “TestRazor”;
Layout = “~/Views/Shared/_Layout.cshtml”;
}

<h2>TestRazor</h2>

 

تفاوت مهم دیگری که Page ها با View ها دارند این است که Page ها خود مختار هستند، به این معنی که مانند View ها وابسته به کنترلر نیستند. در واقع مثل Web Form ها دارای Code-behind هستند. می توان گفت یک Page همه چیز را همراه خود دارد یعنی هم کدهای Html و Css و … و هم کدهای سی شارپ. بنابراین از نظر فنی شما یک فایل با پسوند cshtml خواهید داشت و یک فایل با پسوند cshtml.cs که فایل دوم همان فایل کدنویسی سی شارپ (code-behind)  می باشد که به عنوان کنترلر عمل می کند در حالی که در مدل ام وی سی سنتی شما یک کنترلر دارید، یک مدل یا ویومدل و یک ویو دارید.

دقت کنید که در ویوها تمامی عملیات از طریق اکشن ها انجام میگیرد و در واقع ویوها مبتنی بر اکشن هستند. اما در Page ها علاوه بر اکشن ها توسط متدهای onPost و OnGet هم عملیات نمایش صفحات و ارسال داده ها به سرور انجام می پذیرد.

 

منبع این لینک و این لینک

به این پاسخ امتیاز بدهید    2
امتیاز: 518 رتبه: 4
پاسخ دهنده : taqech 07:59 1402/07/22

در مجموع Razor Page تکنولوژی جدیدتری از MVC هست و به همین جهت امکانات و انعطاف پذیری بیشتری داره

به این پاسخ امتیاز بدهید    0
امتیاز: 10 رتبه: 70
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود