Zásadní změny v .NET 9

Pokud migrujete aplikaci na .NET 9, můžou vás tyto zásadní změny ovlivnit. Změny jsou seskupené podle oblasti technologií, jako je ASP.NET Core nebo model Windows Forms.

Tento článek kategorizuje každou zásadní změnu jako binárně nekompatibilní nebo zdrojově nekompatibilní, nebo jako změnu v chování:

  • Binární nekompatibilní – Při spuštění v novém prostředí runtime nebo proti nové součásti mohou stávající binární soubory narazit na zásadní změnu chování, například na selhání při načítání nebo spuštění. V takovém případě je vyžadována rekompilace.

  • Zdroj nekompatibilní – Při opětovném zkompilování pomocí nové sady SDK nebo komponenty nebo cílení na nový modul runtime může stávající zdrojový kód vyžadovat úspěšné kompilace zdrojových změn.

  • Změna chování – Existující kód a binární soubory se můžou chovat jinak za běhu. Pokud je nové chování nežádoucí, stávající kód bude potřeba aktualizovat a znovu zkompilovat.

ASP.NET Core

Podívejte se na zásadní změny v ASP.NET Core 9.

Containers

Nadpis Typ změny Představená verze
obrazy kontejneru už neinstalují zlib Změna chování Preview 7
Bitové kopie .NET Monitor byly zjednodušeny na značky obsahující pouze verzi Změna chování Preview 5

Core .NET knihovny

Nadpis Typ změny Představená verze
Přidání ZipArchiveEntry s CompressionLevel nastaví obecné příznaky bitů hlavičky centrálního adresáře ZIP Změna chování Preview 5
Upravená podpora UnsafeAccessor pro neotevřené obecné typy Změna chování Preview 6
Zastaralosti rozhraní API s vlastními diagnostickými ID Nekompatibilní zdroj (Násobek)
Rozlišení přetížení ovlivňující implicitní operátory StringValues je nejednoznačné Nekompatibilní zdroj GA
Maximální délka bigInteger Změna chování Preview 6
BinaryReader.ReadString() vrátí "\uFFFD" u poškozených sekvencí. Změna chování Preview 7
params Nekompatibilní zdroj
Vytváření pole typu System.Void není povoleno Změna chování Preview 1
Výchozí Equals() a GetHashCode() vyvolání pro typy označené pomocí InlineArrayAttribute Změna chování Preview 6
EnumConverter ověřuje, že registrované typy jsou výčet Změna chování Preview 7
FromKeyedServicesAttribute už neinjektuje neklíčový parametr. Změna chování RC 1
Úvodní zpětné volání pro IncrementingPollingCounter je asynchronní Změna chování RC 1
Uplatňuje se omezení velikosti struktury datového pole. Změna chování Preview 1
InMemoryDirectoryInfo předřazuje rootDir k souborům Změna chování Preview 1
Nová přetížení metod TimeSpan.From*(), která přebírají celá čísla Nekompatibilní zdroj Preview 3
nová verze některých balíčků OOB Nekompatibilní zdroj Preview 5
RuntimeHelpers.GetSubArray vrátí jiný typ. Změna chování Preview 1
String.Trim(params ReadOnlySpan<char>) přetížení odebráno Nekompatibilní zdroj/binární soubor GA
Podpora prázdných proměnných prostředí Změna chování Preview 6
Názvy zipArchiveEntry a komentáře respektují příznak UTF8 Změna chování RC 1

Kryptografie

Nadpis Typ změny Představená verze
Odebraná rozhraní API ze System.Security.Cryptography.Pkcs netstandard2.0 Nekompatibilní zdroj GA
SafeEvpPKeyHandle.DuplicateHandle zvýší referenci popisovače Změna chování Preview 7
Některé konstruktory pro X509Certificate2 a X509Certificate jsou nyní zastaralé. Nekompatibilní zdroj Preview 7
Zjednodušená životnost privátního klíče Windows Změna chování Preview 7

Nasazení

Nadpis Typ změny Představená verze
Nepoužívané desktopové balíčky runtime prostředí Windows/macOS/Linux MonoVM Nekompatibilní zdroj Preview 7
Proměnné prostředí mají přednost v nastavení běhu aplikace. Změna chování GA

Entity Framework Core

Podívejte se na zásadní změny v EF Core 9.

Interoperabilita

Nadpis Typ změny Představená verze
Funkce CET je ve výchozím nastavení podporovaná Binární nekompatibilní Preview 6

kompilátor JIT

Nadpis Typ změny Představená verze
Převody plovoucích bodů na celá čísla jsou saturující Změna chování Preview 4
Některá rozhraní API SVE byla odebrána. Nekompatibilní zdroj RC 2

Sítě

Nadpis Typ změny Představená verze
HttpClient bezpodmínečně hlásí server.port metriky Změna chování Preview 7
Protokolování HttpClientFactory ve výchozím nastavení rediguje hodnoty hlaviček. Změna chování RC 1
HttpClientFactory používá SocketsHttpHandler jako primární obslužnou rutinu. Změna chování Preview 6
HttpListenerRequest.UserAgent může být null Nekompatibilní zdroj Preview 1
Redaction dotazu URI v událostech HttpClient EventSource Změna chování Preview 7
Redaction dotazu URI v protokolech IHttpClientFactory Změna chování Preview 7

SDK a MSBuild

Nadpis Typ změny Představená verze
dotnet sln add nepovoluje neplatné názvy souborů Změna chování 9.0.2xx
dotnet watchnekompatibilní s Hot Reload pro staré frameworky Změna chování RC 1
dotnet workload změna výstupu příkazů Změna chování Preview 1
installer Verze úložiště už není zdokumentovaná. Změna chování Preview 5
Správa uživatelských kulturních zdrojů nástroje MSBuild Změna chování 9.0.200/9.0.300
Nové výchozí identifikátory RID použité při cílení na rozhraní .NET Framework Nekompatibilní zdroj GA
Terminal Logger je výchozí Změna chování Preview 1
Požadavky na verzi pro sadu .NET 9 SDK Nekompatibilní zdroj GA
Upozornění emitované pro platformu .NET Standard 1.x Nekompatibilní zdroj Preview 6
Upozornění vydané pro cílovou verzi .NET 7 Nekompatibilní zdroj GA

Serializace

Nadpis Typ změny Představená verze
BinaryFormatter vždy vyvolá výjimku Změna chování Preview 6
Nullable vlastnosti JsonDocument se deserializují na JsonValueKind.Null Změna chování Preview 1
Čtečka metadat System.Text.Json nyní odstraňuje úniky v názvech vlastností metadat Změna chování GA

model Windows Forms

Nadpis Typ změny Představená verze
BindingSource.SortDescriptions nevrací hodnotu null. Změna chování Preview 1
Změny poznámek ohledně nulovatelnosti Nekompatibilní zdroj Preview 1
ComponentDesigner.Initialize vyvolá Výjimku ArgumentNullException Změna chování Preview 1
DataGridViewRowAccessibleObject.Name počáteční index řádku Změna chování Preview 1
Podpora pro IMsoComponent je založena na dobrovolném přihlášení Změna chování Preview 2
Nové analyzátory zabezpečení Nekompatibilní zdroj RC 1
Žádná výjimka, pokud dataGridView má hodnotu null Změna chování Preview 1
PictureBox vyvolává výjimky typu HttpClient Změna chování Preview 6
StatusStrip používá jiný výchozí renderer Změna chování GA

WPF (Windows Presentation Foundation)

Nadpis Typ změny Představená verze
GetXmlNamespaceMaps změna typu Změna chování / Nekompatibilní zdroj Preview 3

Viz také