Sdílet prostřednictvím


Migrace z ASP.NET Core v .NET 8 na ASP.NET Core v .NET 9

Tento článek vysvětluje, jak aktualizovat ASP.NET Core v .NET 8 na ASP.NET Core v .NET 9.

Požadavky

Aktualizace verze sady .NET SDK v global.json

Pokud se spoléháte na global.json soubor určený pro konkrétní verzi sady .NET Core SDK, aktualizujte version vlastnost na nainstalovanou verzi sady .NET 9.0 SDK. Příklad:

{
  "sdk": {
-    "version": "8.0.100"
+    "version": "9.0.100"
  }
}

Aktualizace cílové architektury

Aktualizujte moniker cílového rozhraní (TFM) souboru projektu nanet9.0:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
-    <TargetFramework>net8.0</TargetFramework>
+    <TargetFramework>net9.0</TargetFramework>
  </PropertyGroup>

</Project>

Aktualizace odkazů na balíčky

V souboru projektu aktualizujte každý Microsoft.AspNetCore.*, Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*a System.Net.Http.Json balíček odkaz na Version atribut 9.0.0 nebo novější. Příklad:

<ItemGroup>
-   <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="8.0.2" />
-   <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.2" />
-   <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
-   <PackageReference Include="System.Net.Http.Json" Version="8.0.0" />
+   <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.0" />
+   <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" />
+   <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.0" />
+   <PackageReference Include="System.Net.Http.Json" Version="9.0.0" />
</ItemGroup>

Nahradit UseStaticFiles čím MapStaticAssets

Optimalizujte zpracování statických souborů ve webových aplikacích nahrazením UseStaticFilesMapStaticAssets v souboru aplikace Program :

- app.UseStaticFiles();
+ app.MapStaticAssets();

V aplikacích MVC & Razor Pages navíc potřebujete zřetězí volání za .WithStaticAssets nebo MapRazorPagesMapControllerRoute do Program.cs. Příklad najdete ve statických souborech v ASP.NET Core.

ASP.NET Core automaticky otisky prstů a předem komprimuje statické soubory v době sestavení a publikování a pak MapStaticAssets zobrazí optimalizované soubory jako koncové body pomocí směrování koncového bodu s odpovídajícími hlavičkami ukládání do mezipaměti.

Překlad názvů souborů s otiskem prstu z aplikace:

  • V Blazor aplikacích použijte ComponentBase.Assets tuto vlastnost. Aktualizujte explicitní odkazy na statické prostředky v Razor souborech komponent (.razor) pro použití @Assets["{ASSET PATH}"], kde {ASSET PATH} zástupný symbol je cesta k prostředku. Mějte na paměti, že by to nemělo být provedeno pro Blazor skripty architektury ().blazor.*.js V následujícím příkladu jsou bootstrap, Blazor šablona stylů aplikace projektu (app.css) a šablona stylů CSS (založená na oboru názvů BlazorSampleaplikace) propojeny v kořenové komponentě, obvykle komponenta App (Components/App.razor):

    <link rel="stylesheet" href="@Assets["bootstrap/bootstrap.min.css"]" />
    <link rel="stylesheet" href="@Assets["app.css"]" />
    <link rel="stylesheet" href="@Assets["BlazorSample.styles.css"]" />
    
  • V aplikacích MVC & Razor Pages automaticky přeloží pomocné rutiny značek skriptů a odkazů názvy souborů s otiskem prstu.

Pokud chcete při importu modulů JavaScriptu vyřešit názvy souborů s otiskem prstu, přidejte vygenerovanou mapu importu:

  • V Blazor aplikacích přidejte komponentu (ImportMap) do <head> obsahu kořenové komponenty aplikace, obvykle v dané komponentě App (App.razor):

    <ImportMap />
    
  • V aplikacích MVC & Razor přidejte <script type="importmap"></script> do hlavy hlavního souboru rozložení, který aktualizuje pomocník pro import značek map.

Další informace naleznete v následujících zdrojích:

Blazor

Přijetí zjednodušené serializace stavu ověřování pro Blazor Web Apps

Blazor Web Apps může volitelně přijmout zjednodušenou serializaci stavu ověřování.

V projektu serveru:

  • Odeberte zprostředkovatele stavu trvalého ověřování (PersistingAuthenticationStateProvider.cs).

  • Odeberte ze souboru registraci Program služby. Místo toho zřetězte volání na AddAuthenticationStateSerializationAddRazorComponents:

    - builder.Services.AddScoped<AuthenticationStateProvider, PersistingAuthenticationStateProvider>();
    
      builder.Services.AddRazorComponents()
          .AddInteractiveServerComponents()
          .AddInteractiveWebAssemblyComponents()
    +     .AddAuthenticationStateSerialization();
    

Rozhraní API serializuje pouze název na straně serveru a deklarace identity rolí pro přístup v prohlížeči. Pokud chcete zahrnout všechny deklarace identity, nastavte SerializeAllClaims na:true

.AddAuthenticationStateSerialization(options => options.SerializeAllClaims = true);

V klientském projektu (.Client):

  • Odeberte zprostředkovatele stavu trvalého ověřování (PersistentAuthenticationStateProvider.cs).

  • Odeberte ze souboru registraci Program služby. Místo toho volejte AddAuthenticationStateDeserialization kolekci služeb:

    - builder.Services.AddSingleton<AuthenticationStateProvider, PersistentAuthenticationStateProvider>();
    + builder.Services.AddAuthenticationStateDeserialization();
    

Další informace najdete v tématu Co je nového v ASP.NET Core 9.0.

Atribut vykreslování streamování už nevyžaduje parametr true.

V .NET 8 vykreslování streamování nutné předat true parametru enabled:

@attribute [StreamRendering(true)]

V rozhraní .NET 9 nebo novějších je možné true volitelně odebrat, protože true je teď výchozím nastavením parametru enabled:

@attribute [StreamRendering]

Další materiály