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:
- Запустіть IDE Visual Studio 2022.
- Натисніть на «Створити новий проект».
- У вікні Створення нового проекту виберіть ASP.NET Core Web API зі списку шаблонів, що з’явиться.
- Натисніть “Далі”.
- У вікні «Налаштувати новий проект» введіть назву та місце розташування нового проекту.
- За бажанням, активуйте прапорець «Зберігати рішення та проект в одному каталозі», залежно від ваших уподобань.
- Натисніть “Далі”.
- У наступному вікні виберіть «Додаткова інформація» зі спадного списку над .NET 6.0 як цільову платформу. Залиште «Тип аутентифікації» на «Немає» (за замовчуванням).
- Переконайтеся, що прапорці «Увімкнути Docker», «Налаштувати для HTTPS» та «Увімкнути підтримку відкритого API» знято, оскільки ми не використовуємо жодну з цих функцій тут.
- Натисніть Створити.
Ми будемо використовувати цей проект веб-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
