ASP.NET MVC بهتر است یا ASP.NET CORE ؟ چه تفاوتی بین MVC و CORE وجود دارد؟ لطفا در مقایسه این دو همراه ما باشید.
سرفصلهای پست
Core یا MVC
افرادی که به دنبال پاسخ این سوالات هستند را می توان به دو دسته تقسیم کرد ، دسته اول کسانی هستند که قصد مهاجرت به ASP.NET Core را دارند و می خواهند که قبل از مهاجرت راجع به مزیتهای ASP.NET CORE و تغییراتی که داشته اطلاعاتی را به دست آوردند تا بررسی کنند که آیا ASP.NET Core ارزش مهاجرت را دارد یا خیر . چرا که این مهاجرت یک هزینه زمانی 5-6 ماهه برایشان به همراه خواهد داشت و در این مدت باید این تکنولوژی را یاد بگیرند و زمینه ی مهاجرت خود به ASP.NET Core را محیا کنند ، دسته دوم افرادی هستند که هیچ پیش زمینه برنامه نویسی تحت وب ندارند و بین دو راهی ASP.NET MVC و ASP.NET Core حسابی گیر افتاده اند.
برای پاسخ به سوال این دو دسته از دوستان ، من نمی خواهم خیلی وارد جزئیات شوم و ساختار پروژه ی ASP NET MVC و ASP NET Core را با هم مقایسه کنم چون تغییرات نسبتا زیاد بوده و از طرفی برای شما که هنوز وارد دنیای جذاب ASP.NET Core نشدید قابل درک نیست و ممکنه کمی گیج کننده باشد برای همین به صورت خیلی کلی و با زبان ساده به شما توضیح خواهم داد که ASP.NET MVC بهتر است یا ASP.NET Core ؟
فرق اول Open Source
قطعا زمانیکه که یک تکنولوژی جدید معرفی می شود نسبت به تکنولوژی های قدیمی حرف های جدیدی برای گفتن دارد و سعی کرده که نواقص تکنولوژی های قدیمی رو برطرف کند شرکت مایکروسافت هم هدفش از معرفی ASP.NET Core پاسخ به انتقادهایی بود که همیشه بهش میشد مثل Open Source نبودن یا مجانی نبودن ، پس شرکت مایکروسافت در قدم اول برای اینکه مشت محکمی بر دهان منتقدانش زده باشد قابلیت Open Source بودن را به ASP.NET Core اضافه کرد و در حال حاضر فریمورک ASP.NET Core به صورت Open Source در GitHub موجود است و شما می توانید ناظر بر پیشرفت های این فریمورک باشید و روند توسعه اش را دنبال کنید و همین طور می توانید کدهایی که داخل GitHub قرار داده شده رو تحلیل و بررسی کنید و درصورت نیاز این کدها را سفارشی سازی کنید. پس Open Source بودن یکی از مزیت های مهم ASP.NET Core نسبت به ASP.NET MVC هست و این قابلیت باعث می شود که ASP.NET Core سرعت رشدش چندین برابر ASP.NET MVC باشد چرا که برنامه نویسان زیادی از سراسر دنیا می توانند به توسعه این فریمورک کمک کنند.
فرق دوم Cross Platform
دومین مزیت و برتری ASP.NET Core در مقایسه با ASP.NET MVC ، قابلیت چندسکویی با Cross Platform است ، قطعا برای شما این سوال پیش اومده که Cross Platform یا چندسکویی یعنی چی ؟ الان براتون توضیح میدم ، Cross Platform بودن یعنی اینکه ASP.NET Core را می توانیم روی سیستم های مختلف مثل Windows ، Mac و Linux پیاده سازی و اجرا کنیم حالا این ویژگی ASP.NET Core چه فایده ای برای ما دارد ؟ این ویژگی باعث می شود که هزینه نگهداری نرم افزارمان کاهش پیدا کند چون دیگر مجبور نیستیم که از هاست ویندوزی که هزینه نسبتا بالایی دارد استفاده کنیم و می توانیم یک هاست لینوکسی را برای میزبانی انتخاب کنیم و این اقدام باعث می شود که هزینه نگهداری نرم افزار کاهش پیدا کند.
فرق سوم Security
امنیت یکی دیگر از دغدغه های برنامه نویسان است و وبسایتی که امنیت خوبی نداشته باشد زمینه ی بی اعتمادی و فرار کاربران را فراهم می کند در فریمورک ASP.NET Core یکسری فاکتورهای امنیتی اضافه شده و یکسری فاکتورهای امنیتی هم بهبود پیدا کرده است ، پس اگر یک سایت ایمن می خواهید ASP.NET Core می تواند گزینه ی بسیار بهتری باشد.
فرق چهارم Performance
و مورد آخری که می خواهیم بررسی کنیم سرعت سایت است که یکی از فاکتورهای مهم در سئو سایت محسوب می شود اگر شما یک سایت کند داشته باشید بی شک کاربران زیادی را از دست خواهید داد پس سرعت سایت می تواند شما را از رقبایتان پیش اندازد ، در فریمورک ASP.NET Core نسبت به فریمورک ASP.NET ، سرعت اجرا یا Performance خیلی خیلی بهتر شده است و تصویر زیر ، که از سایت ThechEmpower برای شما قرار دادم می تواند سند محکمی برای اثبات بهبود سرعت فریمورک ASP.NET Core باشد. ( از سایت ThechEmpower می توانید برای آنالیز فریمورک های مختلف از نظر سرعت استفاده کنید.)
در این تصویر فریمورک ASP.NET Core از نظر سرعت با اختلاف زیاد در صدر جدول قرار گرفته و فریمورک ASP.NET در انتهای جدول جا خوش کرده است و حسابی از نظر فاکتور سرعت کم آورده است.
پس به صورت کلی می توانیم این نتیجه گیری را داشته باشیم که کور انتخاب خیلی خیلی بهتری برای مهاجرت و آموزش نسبت به ام وی سی است و به عنوان سخن آخر ، امیدوارم که از این مقاله و ویدیوی آموزشی لذت ببرید و به پاسخ سوالتان رسیده باشید. ولی اگر سوالی درباره تفاوت بین core و mvc داشتید حتما در نظرات بپرسید.
13 پاسخ
سلام میخواستم بدونم سی شارپ و دات نت کر و سی اس اس و اچ تی ام ال کا فیه برای تموم شدن یا هنوز باید به یاد گیری ادامه بدیم ممنون میشم جواب بدید با تشکر
سلام
بله
با همین ها هم میشه کلی جا کار کرد و درامد کسب کرد.
درضمن وقتی مثلا سی شارپ یاد میگیرید، یاد گرفتن سایر زبان ها خیلی خیلی ساده تر میشه.
عالی
سلام مهندس وقت بخیر
به نظر شما یادگیری پروژه محور مفید تر هست یا یادگیری کلی و بدون محوریت پروژه
سلام محسن.
طبیعتا با پروژه
سلام من تازه میخوام ی زبون سمت سرور یاد بگیرم ، قبلا هم c++ و c# یاد گرفتم ولی با asp کلا آشنایی ندارم ،بنظر شما asp.core رو بخونم یا asp.net ، ایا پیش نیازی لازم هست که قبلش بخونم؟؟؟
سلام وقتتون بخیر
پیشنهاد من asp.net core هست چون جدیدترین تکنولوژی در حال حاضر هست.
اینکه شما سی شارپ کار کردید و بلد هستید خیلی خوب هست چون در فریمورک .net core از زبان برنامه نویسی سی شارپ می تونید برای برنامه نویسی استفاده کنید.
فرق asp.net mvc با asp.net fremwork رو میشه بگین چی هست؟
سلام وقتتون بخیر
در پروژه های asp.net و asp.net mvc از فریمورک asp.net برای توسعه پروژه استفاده میشود و تفاوت در این است که در پروژه های asp.net mvc از معماری mvc که شامل کنترلرها ، ویوها و مدل هاست استفاده می شود.
سلام
ممنون از توضیحات جامع و واضحتون من یک سوال داشتم تو قسمت web api چه تغییری داشته یعنی سرعتش و امنیتش بالاست؟
سلام ، وقتتون بخیر
بله هم سرعت و هم امنیت بالاتر ، مخصوصا توی .net core 3.0
با سلام.
ممنونم از مقاله خیلی خوب و قابل فهمی که نوشته اید.
من هم اکنون سایتم توسط یک برنامه نویس در حال کدنویسی باASP.NET Core است (حدودا 70 درصد انجام شده) و قصدم از یادگیری این است که بعد از تحویل سایت خودم بتونم توسعه و پشتیبانی لازم رو داشته باشم و به اصطلاح متکی به افراد نباشم.
بنابراین قصد دارم که مسیر برنامه نویسی را طی کنم. منتها اکنون با توجه به اینکه شما نوشتید کور بهتر است آیا می توانم با یادگیری کور، سایت موجود را توسعه بدهم و یا اینکه باید ازابتدا سایت کد نویسی شود؟
ممنونم اگر راهنمایی بفرمائید
سلام وقتتون بخیر ، هر برنامه نویس سبک برنامه نویسی خاص خودش رو دارد و قطعا بعد از تحویل پروژه سر درآوردن از کدهایی که یک برنامه نویس دیگر نوشته دشوار خواهد بود و باید زمان زیادی برای فهم کدها و سپس توسعه بزارید ، پیشنها میکنم شما آموزش asp.net core رو شروع کنید قطعا بعد از یادگیری علاقمند میشید که خودتون سایتتون رو از اول طراحی و پیاده سازی کنید. البته سورس پروژه رو حتما از برنامه نویس تحویل بگیرید .