В этом руководстве мы рассмотрим новый метод CreateEmptyBuilder
, который входит в состав .NET8 и позволяет нам создавать наименьшие возможные приложения, используя только те элементы, которые нам нужны. включить.
Как вы, вероятно, поняли из названия, CreateEmptyBuilder
создает пустой WebApplicationBuilder
, который мы затем можем использовать для добавления наших явных служб и промежуточного программного обеспечения. Давайте посмотрим, как мы можем его использовать, шаг за шагом.
Шаг 1: Мы вызываем CreateEmptyBuilder()
, чтобы создать пустой построитель.
var builder = WebApplication.CreateEmptyBuilder(new());
Шаг 2: Мы определяем Kestrel как WebHost
.
builder.WebHost.UseKestrelCore();
Шаг 3. Мы вызываем Build()
в сборщике для создания нашего приложения.
var app = builder.Build();
Шаг 4.Мы создаем и назначаем встроенное промежуточное программное обеспечение в нашем конвейере, которое будет выводить Hello, World! на каждый запрос.
app.Use(async (context, next) => { await context.Response.WriteAsync("Hello, World!"); await next(context); });
Шаг 5. Мы печатаем сообщение «Выполняется…» на консоль и запускаем в приложении. Теперь наше приложение готово принимать соединения.
Console.WriteLine("Running..."); app.Run();
Шаг 6: Мы открываем браузер и посещаем localhost по порту 5000, который является портом по умолчанию для Kestrel. Мы видим, что наше приложение запущено и в браузере отображается сообщение Hello, World!».
Шаг 7. Мы добавляем <PublishAot>true</PublishAot>
в файл .csproj проекта, чтобы включить AOT (заранее компиляцию).
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <PublishAot>true</PublishAot> </PropertyGroup> </Project>
Шаг 8. Мы открываем диалоговое окно Опубликовать и настраиваем Целевую среду выполнения в соответствии с нашей архитектурой. В этом примере это win-x64
, так как я использую 64-битную машину Intel в Windows.