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.

  1. 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
    
  2. 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