asp.net core و Asp.Net MVC دو فریمورک هستند که مایکروسافت ارائه دهنده هر دو است. در مقاله مفید و کاربردی  تفاوت asp.net core و mvc به بررسی تفاوت این دو فریمورک پرداخته شد و در مطلب زیر به بررسی کامل و جامع asp.net core پرداخته شده است تا با این فریمورک کاملا آشنا شوید.

در واقع ASP. Net Core یک طراحی جدید و قابل توجه از ASP. Net است. ما در این مقاله سعی داریم به این سوال جواب بدهیم که ASP. Net Core چیست و چگونه باعث توسعه برنامه‌های وب شده است، پس با ما همراه باشید.

ASP. Net Core چیست ؟

یک فریم ورک Open Source (منبع باز) و cross-platform تازه به شمار می‌رود که برای ساخت برنامه‌های متصل به اینترنت مانند برنامه‌های وب، برنامه‌های اینترنت اشیا و بک‌اند تلفن همراه مورد استفاده قرار می‌گیرد. برنامه‌های ASP. Net Core این قابلیت را دارند تا بر روی Net Core. یا به صورت کامل روی فریم ورک Net. استفاده شوند.

علاوه بر این برای گسترش بهینه‌ی فریمورک برنامه‌هایی که در cloud یا در محیط توسعه یافته اند، کاربرد دارد. همچنین برنامه‌های این فریمورک را به وسیله cross-platform در ویندوز، مک و لینوکس گسترش و اجرا کنید. اجزای این پلتفرم شامل modular (مدولار) با کمترین سربار است در زمان تولید راه حل‌های خود انعطاف‌پذیری را حفظ می‌نماید.

asp.net تصویر شاخص

پیشرفت‌های اساسی که به وسیله این برنامه حاصل می شود

  • توسعه روند کار و ادغام فریمورک‌های مدرن client-side
  • ارائه یک محیط cloud-ready مبتنی بر سیستم پیکربندی
  • یک گزارش واحد برای تهیه UI وب و API وب
  • Built-in dependency injection
  • راه درخواست مدولار HTTP و Lightweight جدید
  • امکان host در IIS یا self-host در روند خودش
  • پشتیبانی از نسخه اصلی side-by-side
  • یک ابزار جدید برای توسعه آسان و مدرن وب
  • ساخت و اجرای برنامه‌های کراس پلتفرم ASP. Net در ویندوز، مک و لینوکس
  • دارای Community (جامعه) متمرکز
  • Open Source (منبع باز)

ویژگی‌های اصلی این برنامه

  • عملکرد بالا
  • ناهمگام بودن از طریق async یا await
  • چارچوب‌های متحد MVC و Web API
  • دارای چندین محیط و حالت توسعه
  • حفاظت
  • CSRF دارای حافظه پنهان خروجی قابل توسعه
  • برنامه‌های وب self hosted
  • Action filters
  • جهانی‌سازی و بومی‌سازی
  • Swagger OpenAPI
  • پشتیبانی از کراس پلتفرم وcontainer
  • Dependency Injection
  • WebSockets & SignalR

خدمات و سرویس‌ها ASP. Net Core

خدمات شامل مواردی است که برای مصرف عمومی در یک برنامه تعریف شده است. این خدمات از طریق dependency عرضه می‌گردند.

به طور کلی ASP. Net Core از یک محتوای ساده کنترل وارونگی داخلی (IoC) که وظیفه پشتیبانی از سازنده به صورت پیش فرض دارد، تشکیل می‌شود. البته این محتوا می‌تواند به آسانی با IoC دلخواه شما جایگزین شود. علاوه بر مزیت اتصال آزاد، Dl خدمات در کل برنامه به شما عرضه می‌شود. به طور مثال ورود به سیستم در هر جای برنامه قابل دسترس است.

آناتومی برنامه

باید بدانید که ASP. Net Core به سادگی یک برنامه‌ی Console می‌تواند در ساخت یک سرور وب استفاده شود.

Main برای ساخت یک host (میزبان) برای برنامه وب از WebHostBuilder بهره می‌برد. این موضوع به این دلیل است که با استفاده از این برنامه روش‌های زیادی برای سرور وب (برای مثال UseKestrel) و کلاس راه اندازی (UseStartUp) تعریف می‌شود. در واقع WebHostBuilder روش‌های زیادی برای مشخص کردن محتوای ریشه از جمله UseIISIntegration برای میزبانی در IIS و IIS Express و UseContentRoot را ارائه می‌دهد.

همچنین روش‌هایی برای تولید و اجرای IWebHost ارائه می‌کند که به عنوان host برنامه مورد استفاده قرار می‌گیرد و برنامه شروع دنبال کردن از درخواست‌های ورودی HTTP می‌کند.

Startup

روش UseStartup در WebHost Builder برای مشخص کردن کلاس Startup برای برنامه شما است.

کلاس Startup در مواقعی که شما line (خط یا سطر) رسیدگی به درخواست را بیان می‌کنید و سرویس‌های لازم برای برنامه را پیکربندی می‌کنید، تعریف می‌شود. کلاس Startup به صورت public (عمومی) است و شامل روش‌های ذیل است:

  • پیکربندی کردن و تعریف خدمات مورد استفاده برنامه (نظیرASP. Net MVC Core framework, Entity Framework Core Identity و…)
  • پیکربندی و تعریف درخواست middleware (میان افزار)
  • Middleware (میان افزار)
  • شما با استفاده از Middleware درخواست خود را در ASP. Net Core می‌نویسید.

middleware با انجام منطق ناهمزمان یا ناهمگام خود بر روی HttpContext به ترتیب میان‌افزار بعدی را فرا می‌خواند یا اینکه درخواست را پایان می‌دهد. در واقع با استفاده از middleware شما از dependency در پکیج NuGet و برای فراخوانی متد متناظر IApplicationBuilder روش پیکربندی کردن، بهره برده اید.

مجموعه همراه با ASP. Net Core، شامل موارد ذیل است:

  • احراز هویت
  • مسیریابی
  • پرونده‌های ثابت
  • استفاده از هر middleware مبتنی بر OWIN
  • علاوه بر این موارد می‌توانید middleware (میان افزار) سفارشی دلخواه خود را بسازید.

سرورها در ASP. Net Core

باید بدانید در این برنامه مدل میزبانی مستقیماً به درخواست‌ها جواب نمی‌دهد. پیاده‌سازی درخواست به برنامه مبتنی به پیاده‌سازی سرور HTTP است. درخواست ارسال شده به عنوان مجموعه‌ای از ویژگی‌های interface (رابط) در HttpContext ارائه می‌شود.

ASP. NET Core از یک سرور وب cross-platform مدیریت شده به نام Kestrel تشکیل می‌شود که به طور معمول بعد از یک وب سرور تولیدی مانند IIS یا nginx ارائه می‌گردد.

Content Root (ریشه محتوا)

مسیر اصلی هر محتوایی که توسط برنامه مورد استفاده قرار می‌گیرد نظیر بازدیدها و محتوای وب به عنوان content root یا ریشه محتوا شناخته می‌شود. به طور معمول content root به عنوان مسیر پایه‌ی برنامه، برای host کردن اجرای برنامه‌ها و البته برای تعیین مکان (location) دیگری با WebHostBuilder مورد استفاده قرار می‌گیرد.

Web Root (ریشه وب)

به طور مستقیم در پروژه‌ی شما برای static recourses (منابع استاتیک) نظیر JS، CSS و فایل‌های تصویری به صورت عمومی وجود دارد. فایل‌های استاتیک به طور پیش فرض فقط پرونده‌ها از فهرست web root یا همان ریشه وب (و زیرشاخه‌ها) توسط Middleware (میان افزار) ارائه می‌شود.

Configuration (پیکربندی)

در این پلتفرم از یک مدل پیکربندی تازه برای مدیریت جفت‌های ساده‌ی name-value استفاده می‌شود. این مدل پیکربندی جدید بر اساس System. Configuration یا web. config ارائه نمی‌شود و در واقع از مجموعه‌ی ارائه دهندگان Configuration (پیکربندی) خارج شده است.

ارائه دهندگان پیکربندی داخلی برای فعال کردن پیکربندی environment-based از انواع مختلفی قالب‌های فایل (XML، JSON، INI) و متغیرهای محیطی پشتیبانی می‌کنند.

محیط‌ها در ASP. Net Core

محیط‌ها نظیر development (توسعه) و production (تولید) یک مفهوم first – class (درجه یک) در ASP. NET Core ارائه می‌کنند که با استفاده از متغیرهای محیط تنظیم می‌گردد.