9 تفاوت اساسی asp net Core و MVC چیست؟

9

بهترین روش برای یادگیری موارد جدید در هر فناوری ، مقایسه با نسخه قبلی آن است. در اینجا می توان تفاوت بین ASP.NET Core (MVC) و ASP.NET MVC 5 را با ایجاد یک نمونه و مقایسه ساختار راه حل پروژه بین آنها درک کرد. خوب ، ما تفاوتهای زیادی بین ASP.NET Core MVC و ASP.NET MVC 5 در ساختار راه حل وجود دارد ، بیایید بدون اینکه کد نوشته شود ، آنها را کشف کنیم.

چگونه بدون هیچ دانش اولیه برنامه نویسی را شروع کنیم؟

نگاهی گذرا به پیشرفتهای اصلیASP.NET

  •   برنامه های cross-platform ASP.NET را در ویندوز ، مک و لینوکس بسازید و اجرا کنید

  •    ساخته شده در NET.Core ، که از نسخه واقعی برنامه جانبی پشتیبانی می کند

  •    ابزار جدیدی که توسعه وب مدرن را ساده می کند

  •    پشته وب هم تراز شده برای MVC و API وب

  •    پیکربندی مبتنی بر محیط، آماده برای ابر

  •    پشتیبانی یکپارچه برای ایجاد و استفاده از بسته های NuGet

  •    پشتیبانی داخلی برای تزریق وابستگی

  •    امکان میزبانی در IIS یا خود میزبان در روند خود

تفاوت 1 - پشته وب هم تراز برای ASP.NET Core MVC و API های وب

ASP.NET MVC 5 در هنگام ایجاد یک برنامه وب گزینه انتخاب MVC یا Web API یا هر دو را به ما می دهد. به این دلیل است که پشته وب برای MVC 5 و Web API یکسان نبودند. ASP.NET Core MVC اکنون یک پشته وب هم تراز شده برای MVC و API وب دارد. تصویر زیر کادر تأیید MVC و Web API GREYED است ، در حالی که MVC 5 گزینه اضافه کردن API وب را دارد.

 diffrent asp.netmvc and asp.net core new project

تفاوت 2 - ساختار (پروژه)، تغییر ساختار

اگر کاوشگر راه حل ASP.NET Core MVC را در سمت چپ مشاهده می کنید ، Web.config ، Global.asax وجود ندارد. سپس نحوه برخورد با تنظیمات پیکربندی ، احراز هویت و شروع برنامه اجرای ویژه کد. appsettings.json ، پرونده های پیکربندی سفارشی برخی از پرونده هایی هستند که عملکرد فایل های از دست رفته از ASP.NET MVC را انجام می دهند. 5. اگر به پوشه نگاه کنیم ، تغییرات بسیاری وجود دارد.

asp.net mvc and core new project

تفاوت 3 - ASP.NET هسته هدفهای اصلی .NET را هدف قرار می دهد

ما در حال کار بر روی چارچوب کامل .NET هستیم ، این یک تجربه شگفت انگیز است و تاکنون ادامه خواهد یافت. هسته اصلی دات نت چیست؟

اوه ، کراس پلت فرم !! بله ، اکنون می توانیم برنامه های وب ASP.NET Core را در برابر هسته .NET توسعه دهیم و در ویندوز یا لینوکس یا مک اجرا کنیم. صبر کنید هنوز تمام نشده است ، نه تنها ما می توانیم در سیستم عامل ویندوز بلکه در لینوکس ، مک با استفاده از ویژوال استودیو کد یا هر ویرایشگر کد دیگری مانند Vim ، Atom ، Sublime توسعه دهیم


 

تفاوت 4 - برنامه های اصلی ASP.NET برای میزبانی به IIS احتیاج ندارند

تعجب نکنید ، هدف ASP.NET Core کراس پلت فرم با استفاده از NET.Core است. با توجه به این نکته ، مایکروسافت تصمیم گرفت که نه تنها در IIS میزبان برنامه های اصلی ASP.NET باشد بلکه می تواند خود میزبان باشد یا از سرور Nginx در لینوکس استفاده کند. Kestrel یک سرور وب داخلی برای پردازش درخواست خواهد بود

 

تفاوت 5 - پوشه wwwroot برای پرونده های استاتیک

پوشه wwwroot نمایانگر ریشه واقعی برنامه وب هنگام اجرای سرور وب است. فایلهای استاتیک مانند config.json که در wwwroot نیستند هرگز قابل دسترسی نخواهند بود و نیازی به ایجاد قوانین ویژه برای جلوگیری از دسترسی به پرونده های حساس نیست. این پرونده های استاتیک ممکن است ساده باشند مانند: HTML ، Javascript ، CSS ، تصاویر ، کتابخانه و غیره باشند.

علاوه بر مزایای امنیتی ، پوشه wwwroot وظایف متداول مانند بسته بندی و کوچک سازی را نیز ساده می کند که هم اکنون می توانید با سهولت بیشتری در یک فرایند ساخت استاندارد وارد شوید و با استفاده از ابزارهایی مانند Grunt به صورت خودکار انجام شود. نام پوشه "wwwroot" را نیز می توان تغییر داد. این پرونده های استاتیک ممکن است ساده باشند مانند: HTML ، Javascript ، CSS ، تصاویر ، کتابخانه و غیره باشند.

 

 

تفاوت 6 - رویکرد جدید به مدیریت وابستگی طرف سرور و مشتری از بسته ها.

هر توسعه دهنده .NET می داند که پوشه References همه DLL ها ، بسته های NuGet را به طور خاص برای NET Framework نگه می دارد. از تجربه کار در Visual Studio 2019 IDE و استقرار برنامه های اصلی ASP.NET یا در ویندوز ، لینوکس یا Mac با استفاده از NET.Core استفاده کنید.

مدیریت سمت وابستگی سرور آن است. مدیریت وابستگی مشتری از اهمیت بیشتری برخوردار است زیرا طرف مشتری بسته های متفاوتی از سمت سرور دارد.

طرف مشتری مطمئناً دارای jQuery ، Bootstrap ، grunt ، هر چارچوب Javascript مانند AngularJS ، ستون فقرات و غیره ، تصاویر ، فایل های سبک خواهد بود. مدیریت بسته مشتری در جامعه با منبع آزاد دارای دو نام "LibMan" (تازه راه اندازی شده) و "NPM" است. آنها بخشی از "وابستگی ها" هستند.

تفاوت 7 - بسته های سمت سرور موجب صرفه جویی در فضای در ASP.NET Core می شوند

ما از مدیر بسته NuGet برای اضافه کردن مرجع جامع ، کتابخانه ، چارچوب یا بسته های شخص ثالث استفاده کرده ایم. آنها می توانند از NuGet بارگیری شوند که پوشه "بسته ها" را در ساختار پروژه ایجاد می کند

30 نمونه از برنامه های ASP.NET ، همه آنها از بسته های NuGet برای مرجع کردن وابستگی های هر فضای دیسک پر هزینه تقریبا 70 مگابایت استفاده می کنند ، بنابراین تقریباً با استفاده از فضای دیسک 2 گیگابایتی برای ذخیره بسته ها حتی اگر همه یکسان هستند. برخی از توسعه دهندگان SMART این مسئله را می دانند ، اما برخی مشکلات خود را ارائه می دهند.

ASP.NET Core با ذخیره تمام بسته های مربوط به توسعه آن در پوشه Users و در حین ایجاد برنامه های اصلی ASP.NET Core ، Visual Studio آنها را از پوشه Users ارجاع می دهد. این ویژگی با نام Runtime Store برای NET.Core 2 نامگذاری شده است اکنون حتی اگر 100 نمونه برنامه ASP.NET Core داشته باشید ، همه آنها از پوشه Users که تقریباً به چند مگابایت نزدیک است ، اشاره می کنند.

تفاوت 8 - پشتیبانی وابسته به تزریق داخلی (AS) برای هسته  ASP.NET  

تزریق وابستگی (DI) به کد کاملاً همراه و قابل آزمایش و دسترسی می باشد ، بسیار مهم است زیرا به نوشتن تست واحد کمک می کند. در برنامه های ASP.NET MVC 5/4 یا برنامه های کلاسیک مبتنی بر ASPX ، از کانتینرهای جداگانه DI استفاده می کنیم که مانند Unity ، AutoFac ، StructureMap و غیره استفاده می شوند. ما مجبور شدیم پروژه خود را بسازیم تا از DI استفاده کنیم ، تلاش اضافی آن.

اکنون در برنامه های اصلی ASP.NET ، تزریق وابستگی داخلی ایجاد شده است. فقط برخی از خدمات را ایجاد کرده و آماده استفاده از DI شوید. در واقع نمونه برنامه هسته MVC دارای DI است که در آن ساخته شده است ، "Startup.cs" را باز کرده و به دنبال روش "پیکربندی سرویس (خدمات IServiceCollection)" می گردیم.

هدف اصلی آن پیکربندی خدماتی مانند EF ، تأیید هویت ، اضافه کردن MVC و خدمات دلخواه دست نویس مانند IEmailServer و ISmsSender است.

 

تفاوت 9 - اسرار کاربر هسته ASP.NET

بسیاری از اوقات ما در حین کار توسعه داده های حساس را در داخل پروژه پروژه نگه می داریم ، غالباً ما به اشتباه از طریق به اشتراک گذاری کد ، این اسرار را با دیگران به اشتراک می گذاریم ، و به طور تصادفی آن را TFS (کنترل منبع) اضافه می کنیم.

مدتی ممکن است این مسئله را تجربه کرده باشیم. برنامه های مبتنی بر هسته ASP.NET اکنون مفهومی از اسرار کاربر دارند. ابزار Secret Manager مکانیسم کلی تری برای ذخیره داده های حساس برای کارهای توسعه در خارج از درخت پروژه شما فراهم می کند.
تفاوت های بسیاری در مقایسه با ASP.NET MVC 5/4 وجود دارد اما اگر نتوانیم کد های دیگری را بنویسیم ، اگر بتوانیم این تفاوت ها را پیدا کنیم ، بدین معنی است که مایکروسافت از لحاظ ساخت متن باز بسیار جلوتر رفته است.

دیدگاه ها (0)

دیدگاه خود را بیان کنید