Як використовувати мінімальну модель хостингу в ASP.NET Core 6

Як використовувати мінімальну модель хостингу в ASP.NET Core 6

ІТ

ASP.NET Core 6 представив нову модель хостингу, яка є набагато простішою, раціональнішою та зменшує кількість шаблонного коду, який потрібно написати, щоб запустити програму ASP.NET Core. У цій статті представлено цю нову модель хостингу з відповідними прикладами коду, де це доречно.

Щоб використовувати приклади коду в цій статті, у вашій системі повинна бути встановлена ​​Visual Studio 2022. Якщо у вас ще немає копії, ви можете завантажити Visual Studio 2022 тут.

Створіть проект веб-API ASP.NET Core у Visual Studio 2022

Спочатку створимо проект ASP.NET Core у Visual Studio 2022. Виконайте такі дії, щоб створити новий проект ASP.NET Core Web API 6:

  1. Запустіть IDE Visual Studio 2022.
  2. Натисніть на «Створити новий проект».
  3. У вікні Створення нового проекту виберіть ASP.NET Core Web API зі списку шаблонів, що з’явиться.
  4. Натисніть “Далі”.
  5. У вікні «Налаштувати новий проект» введіть назву та місце розташування нового проекту.
  6. За бажанням, активуйте прапорець «Зберігати рішення та проект в одному каталозі», залежно від ваших уподобань.
  7. Натисніть “Далі”.
  8. У наступному вікні виберіть «Додаткова інформація» зі спадного списку над .NET 6.0 як цільову платформу. Залиште «Тип аутентифікації» на «Немає» (за замовчуванням).
  9. Переконайтеся, що прапорці «Увімкнути Docker», «Налаштувати для HTTPS» та «Увімкнути підтримку відкритого API» знято, оскільки ми не використовуємо жодну з цих функцій тут.
  10. Натисніть Створити.

Ми будемо використовувати цей проект веб-API ASP.NET Core 6 для роботи з мінімальною моделлю хостингу в наступних розділах цієї статті.

Клас програми в ASP.NET Core 6

Коли ви створюєте новий проект ASP.NET Core 6 у Visual Studio, клас Program виглядає так:

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseAuthorization();
app.MapControllers();
app.Run();

Ми будемо використовувати цей клас у наступних розділах цієї статті.

Як запобігти атакам CSRF в ASP.NET Core

Налаштуйте проміжне програмне забезпечення в ASP.NET Core 6

Компоненти проміжного програмного забезпечення в конвеєрі запитів ASP.NET Core 6 використовуються для налаштування обробки запитів і відповідей. Ви можете використовувати проміжне програмне забезпечення для перегляду, маршрутизації або зміни повідомлень запитів і відповідей, які протікають по конвеєру.

Ми бачимо, як конфігурація проміжного програмного забезпечення в ASP.NET Core 6 була оптимізована порівняно з ASP.NET Core 5. Наступний фрагмент коду також можна використовувати для виконання статичного обслуговування файлів (тобто файлів HTML, CSS, зображень і JavaScript). додайте конвеєр обробки запитів в ASP.NET Core 5:

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.UseStaticFiles();
    }
  //Other members
}

Ця конфігурація була скорочена до двох рядків у ASP.NET Core 6. Ви можете написати наступний код, щоб додати те саме проміжне програмне забезпечення до конвеєру обробки запитів в ASP.NET Core 6:

// Configure the HTTP request pipeline.
var app = builder.Build();
app.UseStaticFiles();

Налаштуйте маршрутизацію в ASP.NET Core 6

Тепер давайте порівняємо конфігурацію маршрутизації в ASP.NET Core 5 і ASP.NET Core 6. Ви можете використовувати наступний розділ коду для створення кінцевої точки в програмі ASP.NET Core 5:

public class Startup
{
    public void Configure(IApplicationBuilder app)
    {
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("https://www.infoworld.com/", () =>
            "This is an endpoint created in ASP.NET 5");
        });
    }
}

Ви можете зробити те ж саме в ASP.NET Core 6, використовуючи набагато менше коду:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("https://www.infoworld.com/", () => "This is an endpoint created in ASP.NET 6");
app.Run();

Додайте постачальника журналів у ASP.NET Core 6

Постачальники журналів — це класи, які реалізують інтерфейс ILoggingProvider. Постачальники журналів зберігають журнали в місці призначення журналу, налаштованим у програмі. Виняток становить постачальник консольного журналу, який показує журнали як стандартний вихід. ASP.NET Core включає в себе такі вбудовані постачальники журналів:

  • консоль
  • Відлагоджувати
  • Джерело події
  • Журнал подій

Ви можете використовувати наведений нижче фрагмент коду, щоб додати консольний журнал у свою програму ASP.NET Core 5:

public static IHostBuilder CreateHostBuilder(string[] args) = >
Host.CreateDefaultBuilder(args).ConfigureLogging(loggingBuilder = > {
      loggingBuilder.ClearProviders();
      loggingBuilder.AddConsole();
}).ConfigureWebHostDefaults(webBuilder = >{
      webBuilder.UseStartup < Startup > ();
});

Знову ж таки, ASP.NET Core 6 менш детальний. Ви можете додати консольний журнал за допомогою трьох рядків коду в ASP.NET Core 6:

var builder = WebApplication.CreateBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole();

Додавання служб в ASP.NET Core 6

Синтаксис додавання служб змінився в ASP.NET Core 6, але він не є стислим. Ви можете додати служби до вбудованого контейнера ін’єкції залежностей у ASP.NET Core 5, використовуючи такий код:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMemoryCache();
    services.AddScoped<IProductRepository, ProductRepository>();
}

За допомогою цього коду ви можете зробити те ж саме в ASP.NET Core 6:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMemoryCache();
builder.Services.AddScoped<IProductRepository, ProductRepository>();
var app = builder.Build();

Додайте постачальника конфігурації в ASP.NET Core 6

Постачальники конфігурації використовуються для читання та запису даних конфігурації з різних попередньо налаштованих джерел даних конфігурації. ASP.NET Core 5 має чудову підтримку для роботи з даними конфігурації, що зберігаються у файлах JSON, змінних середовища, XML-файлах, INI-файлах, аргументах командного рядка тощо. Ви можете використовувати наведений нижче код для створення постачальника конфігурації в ASP.NET Core. додати 5:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration(config =>
        {
            config.AddIniFile("appsettings.ini");
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

І ви можете зробити те ж саме в ASP.NET Core 6 лише за три рядки:

var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddIniFile("appsettings.ini");
var app = builder.Build();

Нова парадигма хостингу в ASP.NET Core 6 спрощена і вимагає менше шаблонного коду для запуску та роботи вашої простої програми ASP.NET Core. Для зворотної сумісності ви все ще можете використовувати клас Startup в ASP.NET Core 6.

Як використовувати сторінку винятків розробника в ASP.NET Core MVC

Залишити відповідь