Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Door James Newton-King
gRPC ondersteunt .NET native ahead-of-time (AOT) in .NET 8. Systeemeigen AOT maakt het publiceren van gRPC-client- en server-apps mogelijk als kleine, snelle systeemeigen uitvoerbare bestanden.
Waarschuwing
In .NET 8 zijn niet alle ASP.NET Core-functies compatibel met Systeemeigen AOT. Zie ASP.NET Core- en Native AOT-compatibiliteit voor meer informatie.
Aan de slag
AOT-compilatie vindt plaats wanneer de app wordt gepubliceerd. Systeemeigen AOT is ingeschakeld met de PublishAot
optie.
Voeg
<PublishAot>true</PublishAot>
toe aan het projectbestand van de gRPC-client- of serverapp. Hiermee schakelt u systeemeigen AOT-compilatie in tijdens het publiceren en inschakelen van dynamische codegebruiksanalyse tijdens het bouwen en bewerken.<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <PublishAot>true</PublishAot> </PropertyGroup> <ItemGroup> <PackageReference Include="Grpc.AspNetCore" Version="2.51.0" /> <PackageReference Include="Google.Protobuf" Version="3.22.0" /> </ItemGroup> </Project>
Systeemeigen AOT kan ook worden ingeschakeld door de
--aot
optie op te geven met de ASP.NET Core gRPC-sjabloon:dotnet new grpc --aot
Publiceer de app voor een specifieke runtime-id (RID) met behulp van
dotnet publish -r <RID>
.
De app is beschikbaar in de publicatiemap en bevat alle code die nodig is om erin uit te voeren.
Systeemeigen AOT-analyse omvat alle code van de app en de bibliotheken waarvan de app afhankelijk is. Bekijk systeemeigen AOT-waarschuwingen en voer corrigerende stappen uit. Het is een goed idee om publicatie-apps regelmatig te testen om problemen vroeg in de ontwikkelingslevenscyclus te detecteren.
Publicatiegrootte optimaliseren
Een systeemeigen AOT-uitvoerbaar bestand bevat alleen de code van externe afhankelijkheden die nodig zijn om de app te ondersteunen. Ongebruikte code wordt automatisch weggesneden.
De publicatiegrootte van een ASP.NET Core gRPC-service kan worden geoptimaliseerd door de hostbouwer te maken met WebApplication.CreateSlimBuilder()
. Deze opbouwfunctie biedt een minimale lijst met functies die vereist zijn voor het uitvoeren van een ASP.NET Core-app.
var builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddGrpc();
var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.Run();
Voordelen van het gebruik van systeemeigen AOT
Apps die met Systeemeigen AOT zijn gepubliceerd, hebben:
- Geminimaliseerde schijfvoetafdruk
- Verminderde opstarttijd
- Geheugenvraag verminderen
Zie Voordelen van het gebruik van systeemeigen AOT met ASP.NET Core voor meer informatie en voorbeelden van de voordelen die Native AOT biedt.