مقایسه  ASP.NET Core با  MVC  (مزایا و معایب)
 تفاوت ASP.NET MVC با ASP.NET CORE

اغلب ما انسان ها دوست داریم که وب سایت ها و برنامه های تحت وب را توسعه داده و بهبود ببخشیم. علاوه بر آن هنگام وجود دو برنامه و نرم افزار با کارکرد مشابه، سراغ برنامه ای می رویم که توسعه داده تر می باشد.هنگام ایجاد یک برنامه سازمانی نیز ، اغلب ASP.NET MVC را نسبت به ASP.NET Core ترجیح می دهیم.

آموزش پروژه محور ASP.Net MVC5 

 تفاوت ASP.NET MVC با ASP.NET CORE

در سال ۲۰۱۶ ، مایکروسافت چارچوب جدیدی را با نام .Net Core معرفی کرد. این چارچوب، یک نسخه به روز شده از چارچوب .net موجود نیست بلکه مایکروسافت آن را به عنوان یک چارچوب کاملاً جدید توسعه داد. در دنیای توسعه وب امروز ، همه می خواهند برنامه های تحت وب را بر اساس چارچوبی امن ، مقیاس پذیر ، قابل انعطاف و آماده برای فضای ابری یا cloud بسازند.
بنابراین، اگر امروزه بخواهیم از Asp.Net Core به جای Asp.Net MVC استفاده کنیم ، قبل از استفاده از آن باید بدانیم که مزایا و معایبی که می توانیم از این فناوری جدید بدست آوریم چیست؟ همچنین چه ویژگی های جدیدی به آن اضافه شده است که در نسخه قبلی Net Framework. موجود نیست.
در این مقاله ، بر روی تفاوت ASP.NET MVC با ASP.NET CORE و مقایسه چارچوب های net. تمرکز کرده ایم.

در Asp.Net Core ، مزایای متعددی وجود دارد که می توانیم آن را نسبت به Asp.Net MVC برتری دهیم. طبق سخن مایکروسافت ، Asp.Net Core می تواند چارچوبی باشد که با ساختمان هر اپلیکیشن در بستر اینترنت و فضای ابری سازگار باشد. این چارچوب یک پلتفرم ( ویکی پدیا ) کاملاً منبع باز است.

پشتیبانی از پلت فرم CROSS

ASP.Net Core یک چارچوب با پلت فرم کراس یا چند سکویی است. بنابراین ، با استفاده از این چارچوب می توانیم هر برنامه ای را برای هر سیستم عاملی مانند ویندوز ، لینوکس ، macOS و غیره توسعه دهیم. ما می توانیم از این چارچوب برای توسعه برنامه های تحت وب ، برنامه های کنسول یا برنامه های دسک تاپ که می توانند در هر سیستم عاملی مستقر شوند استفاده کنیم. همچنین ، این چارچوب محیطی ابری برای توسعه و استقرار است.

تغییر ساختار پروژه

در برنامه Asp.Net Core ، ساختار فولدر پروژه یا راه حل ( solutions) تغییر کرده است. تفاوت عمده در ساختار پروژه این است که پروژه های Asp.Net Core حاوی هیچ فایل web.config مانند پروژه های Asp.Net MVC نیستند. بنابراین ، این سؤال پیش می آید که با این وجود ، این برنامه با تنظیمات کاملاً مختلف پیکربندی مانند تأیید اعتبار یا برنامه کد سطح پایین برای قالب بندی سطح پایین و غیره ، کار می کند یا خیر؟
در Asp.net Core ، این فایل ها توسط برخی از فایل های دیگر یعنی appsettings.json یا پیکربندی سفارشی مراقبت می شوند. در Asp.Net Core نیز ، پوشه جدیدی به نام wwwroot در ساختار پروژه اضافه خواهد شد.
این فایل ها اساساً ظرف تمام فایل های استاتیک هستند که باید به مرورگر ارسال شوند. مانند – css ، html ، JavaScript ، تصاویر و غیره.


تصویر زیر تفاوت آشکاری را در ساختار پروژه ها نشان داده است.
برای میزبانی و هاستینگ، فقط به IIS بستگی ندارد.
همانطور که بالاتر گفتیم، Asp.Net Core یک چارچوب Cross-Platformیا چند سکویی است ، بنابراین ما می توانیم برنامه های Asp.Net Core را نه تنها در IIS میزبانی کنیم بلکه می توان آن را در Nginx ، Apache ، Docker و غیره نیز میزبانی کرد.

نصب و راه اندازی

در صورت نصب یک برنامه مرتبط که در چارچوب .Net توسعه یافته است ، یک بسته نصبی وجود دارد. البته برای نصب در محیط هایی مانند ویندوز به سیستم عامل مخصوص آن نیز نیاز است. اما از آنجا که .Net Core می تواند چند سکویی باشد ، بنابراین برنامه توسعه یافته در این چارچوب باید از قبل بسته بندی شود و به صورت جداگانه برای بسته نصب قرار داده شود. توسعه دهندگان باید بسته های Nuget را که شامل .net core است، کامپایل کنند.

پشتیبانی کامل .NET و .NET CORE

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

مجموعه ماژولار کتابخانه

.NET Framework و .NET Core به توسعه دهندگان این امکان را می دهد تا از کتابخانه های توسعه یافته استفاده کنند. توسعه دهندگان این امکان را دارند که به طور کامل از کتابخانه های مورد نیاز هر برنامه استفاده کنند و با حذف کتابخانه های بی فایده ، عملکرد برنامه را افزایش دهند.

توسعه برنامه موبایل

NET Framework. از هیچ چارچوب ماندگاری برای توسعه برنامه موبایل استقبال نمی کند. اما NET Core. با کمک کتابخانه معمولی NET. با Xamarin سازگار است. از این رو ، توسعه دهندگان می توانند از Xamarin برای نوشتن برنامه های موبایل چند پلتفرمی با زبان C # با کمک همان API ها استفاده کنند. توسعه دهندگان موبایل در حال استفاده زیاد از ابزارهای ارائه شده توسط Xamarin برای شخصی سازی برنامه تلفن همراه برای سیستم عامل های مختلف موبایل مانند Android ، iOS و Windows Phone هستند.

خدمات کوچک

چارچوب Net Core. باعث می شود که توسعه دهنده بتواند خدمات کوچک را بسیار راحت توسعه دهد NET Core. به برنامه نویسان اجازه می دهد تا با استفاده از تغییر در زبان های برنامه نویسی ، فناوری ها و چارچوب های متغیر ، خدمات ریز سرویس را ایجاد کنند. همچنین ، توسعه دهندگان می توانند با ترکیب یکپارچه چندین ریز سرویس ، یک سیستم قدرتمند بسازند.

عملکرد و قابلیت سنجی

NET Core نسبت به NET Framework. عملکردی منطقی تر دارد. مزایای net core. این است که به توسعه دهندگان اجازه می دهد تا عملکرد برنامه ها را به شدت تقویت کنند در حالی که هیچ سخت افزار یا زیرساختی را به کار نمی گیرند. همچنین ، به توسعه دهندگان این امکان را می دهد تا برنامه ها را مستقیماً در فضای ابری ایجاد و بررسی کرده و قرار دهند. از این رو ، توسعه دهندگان می توانند برای تقویت عملکرد و کمی بودن برنامه های خود ، سرویس خود را به NET Core تغییر دهند.
ما می توانیم با کمک بسته های Nuget مرجع هر مجموعه ، کتابخانه یا بسته نصبی را اضافه کنیم. وقتی بارگیری این بسته ها را با استفاده از NuGet Manager Console اجرا می کنیم ، همه بسته ها در پوشه Packages در سلسله مراتب پوشه Project بارگیری شده اند ASP.NET . Core با ذخیره تمام بسته های مربوط به توسعه آن در پوشه Users و ایجاد برنامه های ASP.NET Core ، ویژوال استادیو آنها را از پوشه Users ارجاع می دهد. این ویژگی با نام Runtime Store برای NET Core. انجام می شود اگرچه در حال حاضر حدود ۱۰۰ نمونه برنامه ASP.NET Core داریم که همه آنها از واحد dotnet در پوشه Users استفاده می کنند.

وابستگی سمت سرور و مشتری

در مورد Net Frameworks. ، توسعه دهندگان با نحوه مراجعه به dll یا Nuget Packages در یک پروژه با استفاده از Visual Studio IDE آشنایی دارند. بنابراین ، با کمک Visual Studio IDE می توانیم برنامه های خود را در سیستم عامل ها از جمله ویندوز ، لینوکس یا Unit مستقر کنیم.

 تفاوت ASP.NET MVC با ASP.NET CORE

مدیریت سرور وابستگی های آن

مدیریت وابستگی در سمت کلاینت بسیار مورد نیاز است زیرا در سمت کلاینت بسته های کاملاً متفاوتی از نظر سرور وجود دارد. سمت کلاینت مطمئناً دارای jQuery ، Bootstrap ، grunt ، انواع فریم ورک JavaScript مانند AngularJS ، Backbone ، تصاویر و غیره خواهد بود. “Bower” و “NPM” نام دو تا از مهم ترین منابع برای حفظ مدیریت بسته سمت کلاینت به عنوان بخشی از توابع ها است.