gRPC ve Yerel AOT
Yayınlayan James Newton-King
gRPC, .NET 8'de .NET yerel önceden (AOT) destekler. Yerel AOT, gRPC istemci ve sunucu uygulamalarının küçük, hızlı yerel yürütülebilir dosyalar olarak yayımlanmasını sağlar.
Uyarı
.NET 8'de tüm ASP.NET Core özellikleri Yerel AOT ile uyumlu değildir. Daha fazla bilgi için bkz . ASP.NET Core ve Native AOT uyumluluğu.
Kullanmaya başlayın
Uygulama yayımlandığında AOT derlemesi gerçekleşir. Yerel AOT seçeneğiyle PublishAot
etkinleştirilir.
gRPC istemcisine veya sunucu uygulamasının proje dosyasına ekleyin
<PublishAot>true</PublishAot>
. Bu, yayımlama sırasında Yerel AOT derlemesini etkinleştirir ve derleme ve düzenleme sırasında dinamik kod kullanımı analizini etkinleştirir.<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>
Yerel AOT, ASP.NET Core gRPC şablonuyla seçeneği belirtilerek
-aot
de etkinleştirilebilir:dotnet new grpc -aot
uygulamasını kullanarak
dotnet publish -r <RID>
belirli bir çalışma zamanı tanımlayıcısı (RID) için yayımlayın.
Uygulama yayımlama dizininde kullanılabilir ve içinde çalıştırmak için gereken tüm kodları içerir.
Yerel AOT analizi, uygulamanın tüm kodunu ve uygulamanın bağımlı olduğu kitaplıkları içerir. Yerel AOT uyarılarını gözden geçirin ve düzeltici adımları uygulayın. Geliştirme yaşam döngüsünün başlarındaki sorunları keşfetmek için uygulamaları yayımlamayı sık sık test etmek iyi bir fikirdir.
Yayımlama boyutunu iyileştirme
Yerel AOT yürütülebilir dosyası yalnızca uygulamayı desteklemek için gereken dış bağımlılıklardan alınan kodu içerir. Kullanılmayan kod otomatik olarak kırpılır.
ASP.NET Core gRPC hizmetinin yayımlama boyutu, ile WebApplication.CreateSlimBuilder()
konak oluşturucusu oluşturularak iyileştirilebilir. Bu oluşturucu, bir ASP.NET Core uygulamasını çalıştırmak için gereken özelliklerin en az listesini sağlar.
var builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddGrpc();
var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.Run();
Yerel AOT kullanmanın avantajları
Yerel AOT ile yayımlanan uygulamalar:
- Simge durumuna küçültülmüş disk ayak izi
- Daha kısa başlatma süresi
- Bellek talebini azaltma
Yerel AOT'nin sağladığı avantajlar hakkında daha fazla bilgi ve örnek için bkz . ASP.NET Core ile Yerel AOT kullanmanın avantajları.
Ek kaynaklar
ASP.NET Core