آموزش ASP.NET Core

دسته بندی: دات نت

ای اس پی دات نت کور

آنچه در این صفحه می خوانید:

معرفی ASP.Net Core

ASP.NET یک فریمورک توسعه وب محبوب برای ساخت برنامه های وب بر روی پلتفرم NET. است. ASP.NET Core نسخه اوپن سورس ASP.NET است که بر روی macOS ،Linux و Windows اجرا می شود. ASP.NET Core برای اولین بار در سال 2016 منتشر شد و طراحی مجدد نسخه های اولیه و تنها Windows-ASP.NET است. این فریمورک با بازنویسی کامل است که ASP.NET MVC و APP.NET را که قبلاً جداگانه بودند در یک مدل برنامه نویسی واحد متحد می کند. علی رغم اینکه یک فریمورک جدید است، که بر روی یک پشته وب جدید ساخته شده است، اما از سازگاری مفهومی با ASP.NET برخوردار است. برنامه های اصلی ASP.NET Core از نسخه های جانبی در کنار هم پشتیبانی می کنند که در آن برنامه های مختلف، در حال اجرا با همان دستگاه، می توانند نسخه های مختلف ASP.NET Core را هدف قرار دهند. این قابلیت با نسخه های قبلی ASP.NET امکان پذیر نیست.

ASP.NET Core کراس پلتفرم، با عملکرد بالا برای ساخت برنامه های مدرن، مبتنی بر ابر و مبتنی بر اینترنت است. با Core ASP.NET، می توانید:

  • ایجاد برنامه ها و سرویس های وب، برنامه های اینترنت اشیا و بک اند موبایل.
  • از ابزارهای توسعه مورد علاقه خود در Windows ،macOS و Linux استفاده کنید.
  • اعزام به ابر یا محل داخلی.
  • فریمروک NET Core. یا NET. را اجرا کنید.

ویژگی های ASP.Net Core

کارایی

عملکرد تمرکز اصلی ASP.NET Core است. این سریع تر از سایر فریمورک های وب محبوب در معیارهای مستقل TechEmpower است.

مدرن و نوآورانه

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

اوپن سورس

ASP.NET مانند بقیه موارد NET منبع آزاد در GitHub است. بیش از 60،000 توسعه دهنده و 3700 شرکت قبلاً در NET. مشارکت داشته اند.

ویندوز، لینوکس، macOS و داکر

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

استقرار انعطاف پذیر

زمان اجرای هسته ASP.NET که برنامه شما روی آن اجرا می شود می تواند به عنوان بخشی از برنامه شما مستقر شود یا به صورت مرکزی بر روی سرور وب شما نصب شود. ASP.NET Core برای کانتینر داکر نیز کاملاً مناسب است.

پشتیبانی

شما می توانید نسخه ASP.NET خود را با استفاده از سورس کد تهیه کنید، اما بیشتر برنامه های تولیدی به نسخه پشتیبانی شده از سیستم عامل نیاز دارند. مایکروسافت نسخه های رسمی NET را که بر روی سرورهای دارای مایکروسافت در آژور ساخته و آزمایش شده اند، ارسال می کند و دقیقاً مانند هر محصول مایکروسافت پشتیبانی می کند. Red Hat از دات نت کور روی لینوکس Red Hat Enterprise پشتیبانی می کند. Red Hat ساخت NET Core. را از سورس کد تهیه و اجرا کرده و آن را در مجموعه نرم افزار Red Hat در دسترس قرار می دهد. رد هت و مایکروسافت برای اطمینان از اینکه NET Core. به خوبی در RHEL کار می کند، همکاری می کنند.

چرا باید از ASP.Net Core استفاده کنیم؟

میلیون ها نفر از برنامه نویسان برای ایجاد برنامه های وب از ASP.NET 4.x استفاده کرده اند و به استفاده خود ادامه می دهند. ASP.NET Core یک طراحی و بازنویسی مجدد از ASP.NET 4.x است، با تغییرات معماری که منجر به یک فریمورک سبک تر و مدولار می شود. ASP.NET Core مزایای زیر را ارائه می دهد:

  • یک مفهوم واحد برای ایجاد UI وب و API های وب.
  • دارای معماری برای آزمایش.
  • Razor Pages سناریوهای کدگذاری متمرکز بر صفحه را آسان تر و پربارتر می کند.
  • Blazor به شما امکان می دهد از #C در مرورگر در کنار JavaScript استفاده کنید. منطق برنامه سمت سرور و کلاینت را به اشتراک بگذارید که همه با NET نوشته شده اند.
  • امکان توسعه و اجرای بر روی ویندوز، macOS و Linux.
  • اوپن سورس و جامعه محور.
  • ادغام فریمورک های مدرن، سمت مشتری و توسعه گردش کار.
  • یک سیستم پیکربندی مبتنی بر محیط آماده برای ابر.
  • تزریق وابستگی داخلی
  • پایپ لاین درخواست های HTTP سبک، با کارایی بالا و مدولار.
  • امکان میزبانی در موارد زیر: IIS، HTTP.sys، Nginx، Apache، Docker
  • نسخه به صورت جانبی.
  • ابزاری که توسعه وب مدرن را ساده تر می کند.
  • یک مفهوم واحد برای ساخت UI وب و API های وب

مقایسه ASP.Net Core با ASP.Net Core MVC

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

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

ASP.NET MVCدر هنگام ایجاد یک برنامه وب گزینه انتخاب MVC یا Web API یا هر دو را به ما می دهد. به این دلیل است که پشته وب برای MVC و Web API یکسان نیستند. ASP.NET Core MVC اکنون یک پشته وب هم تراز شده برای MVC و API وب دارد.

پروژه (Solution) ساختار تغییر می کند.

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

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

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

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

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

یک رویکرد جدید برای مدیریت بستگی و وابستگی مشتری از بسته‌ها

برای هر توسعه دهنده .Net آشنا خواهد بود که پوشه References همه DLL ها، بسته های NuGet را به طور خاص برای NET Framework نگه می دارد. از تجربه کار در Visual Studio IDE و استقرار برنامه های اصلی ASP.NET یا در ویندوز، لینوکس یا Mac با استفاده از .NET Core استفاده کنید. مدیریت سمت وابستگی سرور آن است. مدیریت وابستگی مشتری از اهمیت بیشتری برخوردار است زیرا طرف مشتری بسته های متفاوتی از سمت سرور دارد. طرف مشتری مطمئناً دارای jQuery ، Bootstrap ،grunt ، هر فریمورک Javascript مانند AngularJS ، ستون فقرات ، و غیره ، تصاویر ، پرونده های سبک خواهد بود. مدیریت بسته های سمت مشتری در جامعه منبع باز دارای دو نام "Libman" (تازه راه اندازی شده) و "NPM" است. آنها بخشی از "وابستگی ها" هستند.

بسته های سمت سرور موجب صرفه جویی در فضای در 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 داشته باشید، همه آنها از پوشه کاربران (Dotnet) در پوشه کاربران استفاده می کنند که تقریباً به چند مگابایت نزدیک است.

اسرار کاربر ASP.NET Core

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

آیا این نوشته را دوست داشتید؟