diff --git a/.openpublishing.redirection.core.json b/.openpublishing.redirection.core.json index f3b4df027df30..d72d8c27a8c73 100644 --- a/.openpublishing.redirection.core.json +++ b/.openpublishing.redirection.core.json @@ -113,6 +113,10 @@ "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/optimizeforreading-arg.md", "redirect_url": "/dotnet/core/compatibility/8.0" }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md", + "redirect_url": "/dotnet/core/compatibility/10.0" + }, { "source_path_from_root": "/docs/core/compatibility/corefx.md", "redirect_url": "/dotnet/core/compatibility/3.0" @@ -199,6 +203,10 @@ "source_path_from_root": "/docs/core/compatibility/sdk/8.0/tool-rollforward.md", "redirect_url": "/dotnet/core/compatibility/8.0" }, + { + "source_path_from_root": "/docs/core/compatibility/sdk/10.0/version-requirements.md", + "redirect_url": "/dotnet/core/compatibility/10.0" + }, { "source_path_from_root": "/docs/core/compatibility/serialization.md", "redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-deserialize-rewraps-exceptions" diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md index 6cba46b248d87..3fd8081fd90c9 100644 --- a/docs/core/compatibility/10.0.md +++ b/docs/core/compatibility/10.0.md @@ -17,57 +17,56 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af ## ASP.NET Core -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [Cookie login redirects disabled for known API endpoints](aspnet-core/10/cookie-authentication-api-endpoints.md) | Behavioral change | Preview 7 | -| [Deprecation of WithOpenApi extension method](aspnet-core/10/withopenapi-deprecated.md) | Source incompatible | Preview 7 | -| [Exception diagnostics suppressed when TryHandleAsync returns true](aspnet-core/10/exception-handler-diagnostics-suppressed.md) | Behavioral change | Preview 7 | -| [IActionContextAccessor and ActionContextAccessor are obsolete](aspnet-core/10/iactioncontextaccessor-obsolete.md) | Source incompatible/behavioral change | Preview 7 | -| [IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated](aspnet-core/10/openapi-analyzers-deprecated.md) | Source incompatible | Preview 7 | -| [IPNetwork and ForwardedHeadersOptions.KnownNetworks are obsolete](aspnet-core/10/ipnetwork-knownnetworks-obsolete.md) | Source incompatible | Preview 7 | -| [Microsoft.Extensions.ApiDescription.Client package deprecated](aspnet-core/10/apidescription-client-deprecated.md) | Source incompatible | Preview 7 | -| [Razor run-time compilation is obsolete](aspnet-core/10/razor-runtime-compilation-obsolete.md) | Source incompatible | Preview 7 | -| [WebHostBuilder, IWebHost, and WebHost are obsolete](aspnet-core/10/webhostbuilder-deprecated.md) | Source incompatible | RC 1 | +| Title | Type of change | +|-------|-------------------| +| [Cookie login redirects disabled for known API endpoints](aspnet-core/10/cookie-authentication-api-endpoints.md) | Behavioral change | +| [Deprecation of WithOpenApi extension method](aspnet-core/10/withopenapi-deprecated.md) | Source incompatible | +| [Exception diagnostics suppressed when TryHandleAsync returns true](aspnet-core/10/exception-handler-diagnostics-suppressed.md) | Behavioral change | +| [IActionContextAccessor and ActionContextAccessor are obsolete](aspnet-core/10/iactioncontextaccessor-obsolete.md) | Source incompatible/behavioral change | +| [IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated](aspnet-core/10/openapi-analyzers-deprecated.md) | Source incompatible | +| [IPNetwork and ForwardedHeadersOptions.KnownNetworks are obsolete](aspnet-core/10/ipnetwork-knownnetworks-obsolete.md) | Source incompatible | +| [Microsoft.Extensions.ApiDescription.Client package deprecated](aspnet-core/10/apidescription-client-deprecated.md) | Source incompatible | +| [Razor run-time compilation is obsolete](aspnet-core/10/razor-runtime-compilation-obsolete.md) | Source incompatible | +| [WebHostBuilder, IWebHost, and WebHost are obsolete](aspnet-core/10/webhostbuilder-deprecated.md) | Source incompatible | ## Containers -| Title | Type of change | Introduced version | -|--------------------------------------------------------------------------------|-------------------|--------------------| -| [Default .NET images use Ubuntu](containers/10.0/default-images-use-ubuntu.md) | Behavioral change | Preview 1 | +| Title | Type of change | +|--------------------------------------------------------------------------------|-------------------| +| [Default .NET images use Ubuntu](containers/10.0/default-images-use-ubuntu.md) | Behavioral change | ## Core .NET libraries -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [ActivitySource.CreateActivity and ActivitySource.StartActivity behavior change](core-libraries/10.0/activity-sampling.md) | Behavioral change | Preview 1 | -| [Arm64 SVE nonfaulting loads require mask](core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md) | Binary/source incompatible | Preview 1 | -| [BufferedStream.WriteByte no longer performs implicit flush](core-libraries/10.0/bufferedstream-writebyte-flush.md) | Behavioral change | Preview 4 | -| [C# 14 overload resolution with span parameters](core-libraries/10.0/csharp-overload-resolution.md) | Behavioral change | Preview 1 | -| [Consistent shift behavior in generic math](core-libraries/10.0/generic-math.md) | Behavioral change | Preview 1 | -| [Default trace context propagator updated to W3C standard](core-libraries/10.0/default-trace-context-propagator.md) | Behavioral change | Preview 4 | -| [DriveInfo.DriveFormat returns Linux filesystem types](core-libraries/10.0/driveinfo-driveformat-linux.md) | Behavioral change | Preview 6 | -| [DynamicallyAccessedMembers annotation removed from DefaultValueAttribute ctor](core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md) | Binary/source incompatible | Preview 7 | -| [Explicit struct Size disallowed with InlineArray](core-libraries/10.0/inlinearray-explicit-size-disallowed.md) | Binary incompatible | Preview 7 | -| [FilePatternMatch.Stem changed to non-nullable](core-libraries/10.0/filepatternmatch-stem-nonnullable.md) | Source incompatible/behavioral change | RC 1 | -| [GnuTarEntry and PaxTarEntry no longer includes atime and ctime by default](core-libraries/10.0/tar-atime-ctime-default.md) | Behavioral change | Preview 5 | -| [LDAP DirectoryControl parsing is now more stringent](core-libraries/10.0/ldap-directorycontrol-parsing.md) | Behavioral change | Preview 1 | -| [MacCatalyst version normalization](core-libraries/10.0/maccatalyst-version-normalization.md) | Behavioral change | Preview 1 | -| [.NET runtime no longer provides default termination signal handlers](core-libraries/10.0/sigterm-signal-handler.md) | Behavioral change | Preview 5 | -| [System.Linq.AsyncEnumerable included in core libraries](core-libraries/10.0/asyncenumerable.md) | Source incompatible | Preview 1 | -| [Type.MakeGenericSignatureType argument validation](reflection/10/makegeneric-signaturetype-validation.md) | Behavioral change | Preview 3 | -| [YMM embedded rounding removed from AVX10.2](core-libraries/10.0/ymm-embedded-rounding.md) | Behavioral change | Preview 5 | +| Title | Type of change | +|-------|-------------------| +| [ActivitySource.CreateActivity and ActivitySource.StartActivity behavior change](core-libraries/10.0/activity-sampling.md) | Behavioral change | +| [Arm64 SVE nonfaulting loads require mask](core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md) | Binary/source incompatible | +| [BufferedStream.WriteByte no longer performs implicit flush](core-libraries/10.0/bufferedstream-writebyte-flush.md) | Behavioral change | +| [C# 14 overload resolution with span parameters](core-libraries/10.0/csharp-overload-resolution.md) | Behavioral change | +| [Consistent shift behavior in generic math](core-libraries/10.0/generic-math.md) | Behavioral change | +| [Default trace context propagator updated to W3C standard](core-libraries/10.0/default-trace-context-propagator.md) | Behavioral change | +| [DriveInfo.DriveFormat returns Linux filesystem types](core-libraries/10.0/driveinfo-driveformat-linux.md) | Behavioral change | +| [DynamicallyAccessedMembers annotation removed from DefaultValueAttribute ctor](core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md) | Binary/source incompatible | +| [Explicit struct Size disallowed with InlineArray](core-libraries/10.0/inlinearray-explicit-size-disallowed.md) | Binary incompatible | +| [FilePatternMatch.Stem changed to non-nullable](core-libraries/10.0/filepatternmatch-stem-nonnullable.md) | Source incompatible/behavioral change | +| [GnuTarEntry and PaxTarEntry no longer includes atime and ctime by default](core-libraries/10.0/tar-atime-ctime-default.md) | Behavioral change | +| [LDAP DirectoryControl parsing is now more stringent](core-libraries/10.0/ldap-directorycontrol-parsing.md) | Behavioral change | +| [MacCatalyst version normalization](core-libraries/10.0/maccatalyst-version-normalization.md) | Behavioral change | +| [.NET runtime no longer provides default termination signal handlers](core-libraries/10.0/sigterm-signal-handler.md) | Behavioral change | +| [System.Linq.AsyncEnumerable included in core libraries](core-libraries/10.0/asyncenumerable.md) | Source incompatible | +| [Type.MakeGenericSignatureType argument validation](reflection/10/makegeneric-signaturetype-validation.md) | Behavioral change | ## Cryptography -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [CoseSigner.Key can be null](cryptography/10.0/cosesigner-key-null.md) | Behavioral/source incompatible change | Preview 7 | -| [MLDsa and SlhDsa 'SecretKey' members renamed](cryptography/10.0/mldsa-slhdsa-secretkey-to-privatekey.md) | Source incompatible | RC 1 | -| [OpenSSL cryptographic primitives aren't supported on macOS](cryptography/10.0/openssl-macos-unsupported.md) | Behavioral change | Preview 6 | -| [OpenSSL 1.1.1 or later required on Unix](cryptography/10.0/openssl-version-requirement.md) | Behavioral change | GA | -| [X500DistinguishedName validation is stricter](cryptography/10.0/x500distinguishedname-validation.md) | Behavioral change | Preview 1 | -| [X509Certificate and PublicKey key parameters can be null](cryptography/10.0/x509-publickey-null.md) | Behavioral/source incompatible change | Preview 3 | -| [Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE](cryptography/10.0/version-override.md) | Behavioral change | Preview 1 | +| Title | Type of change | +|-------|-------------------| +| [CoseSigner.Key can be null](cryptography/10.0/cosesigner-key-null.md) | Behavioral/source incompatible change | +| [MLDsa and SlhDsa 'SecretKey' members renamed](cryptography/10.0/mldsa-slhdsa-secretkey-to-privatekey.md) | Source incompatible | +| [OpenSSL cryptographic primitives aren't supported on macOS](cryptography/10.0/openssl-macos-unsupported.md) | Behavioral change | +| [OpenSSL 1.1.1 or later required on Unix](cryptography/10.0/openssl-version-requirement.md) | Behavioral change | +| [X500DistinguishedName validation is stricter](cryptography/10.0/x500distinguishedname-validation.md) | Behavioral change | +| [X509Certificate and PublicKey key parameters can be null](cryptography/10.0/x509-publickey-null.md) | Behavioral/source incompatible change | +| [Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE](cryptography/10.0/version-override.md) | Behavioral change | ## Entity Framework Core @@ -75,88 +74,87 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af ## Extensions -| Title | Type of change | Introduced version | -|-------|---------------------|--------------------| -| [BackgroundService runs all of ExecuteAsync as a Task](extensions/10.0/backgroundservice-executeasync-task.md) | Behavioral change | Preview 1 | -| [Null values preserved in configuration](extensions/10.0/configuration-null-values-preserved.md) | Behavioral change | Preview 7 | -| [Message no longer duplicated in Console log output](extensions/10.0/console-json-logging-duplicate-messages.md) | Behavioral change | Preview 7 | -| [ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly](extensions/10.0/provideraliasattribute-moved-assembly.md) | Source incompatible | Preview 4 | -| [Removed DynamicallyAccessedMembers annotation from trim-unsafe Microsoft.Extensions.Configuration code](extensions/10.0/dynamically-accessed-members-configuration.md) | Binary incompatible | Preview 6 | +| Title | Type of change | +|-------|---------------------| +| [BackgroundService runs all of ExecuteAsync as a Task](extensions/10.0/backgroundservice-executeasync-task.md) | Behavioral change | +| [Null values preserved in configuration](extensions/10.0/configuration-null-values-preserved.md) | Behavioral change | +| [Message no longer duplicated in Console log output](extensions/10.0/console-json-logging-duplicate-messages.md) | Behavioral change | +| [ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly](extensions/10.0/provideraliasattribute-moved-assembly.md) | Source incompatible | +| [Removed DynamicallyAccessedMembers annotation from trim-unsafe Microsoft.Extensions.Configuration code](extensions/10.0/dynamically-accessed-members-configuration.md) | Binary incompatible | ## Globalization -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE](globalization/10.0/version-override.md) | Behavioral change | Preview 1 | +| Title | Type of change | +|-------|-------------------| +| [Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE](globalization/10.0/version-override.md) | Behavioral change | ## Install tool -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [dotnet.acquire API for VS Code no longer always downloads latest](install-tool/3.0.0/vscode-dotnet-acquire-no-latest.md) | Behavioral change | .NET Install Tool 3.0.0 | +| Title | Type of change | +|-------|-------------------| +| [dotnet.acquire API for VS Code no longer always downloads latest](install-tool/3.0.0/vscode-dotnet-acquire-no-latest.md) | Behavioral change | ## Interop -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [Single-file apps no longer look for native libraries in executable directory](interop/10.0/native-library-search.md) | Behavioral change | Preview 6 | -| [Specifying DllImportSearchPath.AssemblyDirectory only searches the assembly directory](interop/10.0/search-assembly-directory.md) | Behavioral change | Preview 5 | +| Title | Type of change | +|-------|-------------------| +| [Single-file apps no longer look for native libraries in executable directory](interop/10.0/native-library-search.md) | Behavioral change | +| [Specifying DllImportSearchPath.AssemblyDirectory only searches the assembly directory](interop/10.0/search-assembly-directory.md) | Behavioral change | ## Networking -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [HTTP/3 support disabled by default with PublishTrimmed](networking/10.0/http3-disabled-with-publishtrimmed.md) | Source incompatible | Preview 6 | -| [Streaming HTTP responses enabled by default in browser HTTP clients](networking/10.0/default-http-streaming.md) | Behavioral change | Preview 3 | -| [`Uri` length limits removed](networking/10.0/uri-length-limits-removed.md) | Behavioral change | Preview 7 | +| Title | Type of change | +|-------|-------------------| +| [HTTP/3 support disabled by default with PublishTrimmed](networking/10.0/http3-disabled-with-publishtrimmed.md) | Source incompatible | +| [Streaming HTTP responses enabled by default in browser HTTP clients](networking/10.0/default-http-streaming.md) | Behavioral change | +| [`Uri` length limits removed](networking/10.0/uri-length-limits-removed.md) | Behavioral change | ## SDK and MSBuild -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [.NET CLI `--interactive` defaults to `true` in user scenarios](sdk/10.0/dotnet-cli-interactive.md) | Behavioral change | Preview 3 | -| [`dotnet` CLI commands log non-command-relevant data to stderr](sdk/10.0/dotnet-cli-stderr-output.md) | Behavioral change | RC 2 | -| [.NET tool packaging creates RuntimeIdentifier-specific tool packages](sdk/10.0/dotnet-tool-pack-publish.md) | Behavioral change | Preview 6 | -| [Default workload configuration from 'loose manifests' to 'workload sets' mode](sdk/10.0/default-workload-config.md) | Behavioral change | Preview 2 | -| [dnx.ps1 file is no longer included in .NET SDK](sdk/10.0/dnx-ps1-removed.md) | Source incompatible | GA | -| [`dotnet new sln` defaults to SLNX file format](sdk/10.0/dotnet-new-sln-slnx-default.md) | Behavioral change | RC 1 | -| [`dotnet package list` performs restore](sdk/10.0/dotnet-package-list-restore.md) | Behavioral change | Preview 4 | -| [`dotnet restore` audits transitive packages](sdk/10.0/nugetaudit-transitive-packages.md) | Behavioral change | Preview 3 | -| [`dotnet tool install --local` creates manifest by default](sdk/10.0/dotnet-tool-install-local-manifest.md) | Behavioral change | Preview 7 | -| [`dotnet watch` logs to stderr instead of stdout](sdk/10.0/dotnet-watch-stderr.md) | Behavioral change | RC 2 | -| [project.json not supported in `dotnet restore`](sdk/10.0/dotnet-restore-project-json-unsupported.md) | Source incompatible | Preview 7 | -| [SHA-1 fingerprint support deprecated in `dotnet nuget sign`](sdk/10.0/dotnet-nuget-sign-sha1-deprecated.md) | Behavioral change | Preview 1 | -| [MSBUILDCUSTOMBUILDEVENTWARNING escape hatch removed](sdk/10.0/custom-build-event-warning.md) | Behavioral change | Preview 1 | -| [MSBuild custom culture resource handling](sdk/10.0/msbuild-custom-culture.md) | Behavioral change | Preview 1 | -| [NU1510 is raised for direct references pruned by NuGet](sdk/10.0/nu1510-pruned-references.md) | Source incompatible | Preview 1 | -| [NuGet packages with no runtime assets aren't included in deps.json](sdk/10.0/deps-json-trimmed-packages.md) | Source incompatible | Preview 5 | -| [PackageReference without a version raises an error](sdk/10.0/nu1015-packagereference-version.md) | Behavioral change | Preview 6 | -| [PrunePackageReference privatizes direct prunable references](sdk/10.0/prune-packagereference-privateassets.md) | Behavioral change | Preview 7 | -| [Version requirements for .NET 10 SDK](sdk/10.0/version-requirements.md) | Behavioral change | RC 2 | -| [HTTP warnings promoted to errors in `dotnet package list` and `dotnet package search`](sdk/10.0/http-warnings-to-errors.md) | Behavioral/source incompatible change | Preview 4 | -| [NUGET_ENABLE_ENHANCED_HTTP_RETRY environment variable removed](sdk/10.0/nuget-enhanced-http-retry-removed.md) | Behavioral change | Preview 6 | -| [NuGet logs an error for invalid package IDs](sdk/10.0/nuget-packageid-validation.md) | Behavioral change | RC 1 | +| Title | Type of change | +|-------|-------------------| +| [.NET CLI `--interactive` defaults to `true` in user scenarios](sdk/10.0/dotnet-cli-interactive.md) | Behavioral change | +| [`dotnet` CLI commands log non-command-relevant data to stderr](sdk/10.0/dotnet-cli-stderr-output.md) | Behavioral change | +| [.NET tool packaging creates RuntimeIdentifier-specific tool packages](sdk/10.0/dotnet-tool-pack-publish.md) | Behavioral change | +| [Default workload configuration from 'loose manifests' to 'workload sets' mode](sdk/10.0/default-workload-config.md) | Behavioral change | +| [dnx.ps1 file is no longer included in .NET SDK](sdk/10.0/dnx-ps1-removed.md) | Source incompatible | +| [`dotnet new sln` defaults to SLNX file format](sdk/10.0/dotnet-new-sln-slnx-default.md) | Behavioral change | +| [`dotnet package list` performs restore](sdk/10.0/dotnet-package-list-restore.md) | Behavioral change | +| [`dotnet restore` audits transitive packages](sdk/10.0/nugetaudit-transitive-packages.md) | Behavioral change | +| [`dotnet tool install --local` creates manifest by default](sdk/10.0/dotnet-tool-install-local-manifest.md) | Behavioral change | +| [`dotnet watch` logs to stderr instead of stdout](sdk/10.0/dotnet-watch-stderr.md) | Behavioral change | +| [project.json not supported in `dotnet restore`](sdk/10.0/dotnet-restore-project-json-unsupported.md) | Source incompatible | +| [SHA-1 fingerprint support deprecated in `dotnet nuget sign`](sdk/10.0/dotnet-nuget-sign-sha1-deprecated.md) | Behavioral change | +| [MSBUILDCUSTOMBUILDEVENTWARNING escape hatch removed](sdk/10.0/custom-build-event-warning.md) | Behavioral change | +| [MSBuild custom culture resource handling](sdk/10.0/msbuild-custom-culture.md) | Behavioral change | +| [NU1510 is raised for direct references pruned by NuGet](sdk/10.0/nu1510-pruned-references.md) | Source incompatible | +| [NuGet packages with no runtime assets aren't included in deps.json](sdk/10.0/deps-json-trimmed-packages.md) | Source incompatible | +| [PackageReference without a version raises an error](sdk/10.0/nu1015-packagereference-version.md) | Behavioral change | +| [PrunePackageReference privatizes direct prunable references](sdk/10.0/prune-packagereference-privateassets.md) | Behavioral change | +| [HTTP warnings promoted to errors in `dotnet package list` and `dotnet package search`](sdk/10.0/http-warnings-to-errors.md) | Behavioral/source incompatible change | +| [NUGET_ENABLE_ENHANCED_HTTP_RETRY environment variable removed](sdk/10.0/nuget-enhanced-http-retry-removed.md) | Behavioral change | +| [NuGet logs an error for invalid package IDs](sdk/10.0/nuget-packageid-validation.md) | Behavioral change | ## Serialization -| Title | Type of change | Introduced version | -|-------|-------------------|--------------------| -| [XmlSerializer no longer ignores properties marked with ObsoleteAttribute](serialization/10/xmlserializer-obsolete-properties.md) | Behavioral change | Preview 1 | +| Title | Type of change | +|-------|-------------------| +| [XmlSerializer no longer ignores properties marked with ObsoleteAttribute](serialization/10/xmlserializer-obsolete-properties.md) | Behavioral change | ## Windows Forms -| Title | Type of change | Introduced version | -|--------------------------------------------------------|---------------------|--------------------| -| [API obsoletions](windows-forms/10.0/obsolete-apis.md) | Source incompatible | Preview 1 | -| [Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types](windows-forms/10.0/menuitem-contextmenu.md) | Source incompatible | Preview 1 | -| [Renamed parameter in HtmlElement.InsertAdjacentElement](windows-forms/10.0/insertadjacentelement-orientation.md) | Source incompatible | Preview 1 | -| [TreeView checkbox image truncation](windows-forms/10.0/treeview-text-location.md) | Behavioral change | Preview 1 | -| [StatusStrip uses System RenderMode by default](windows-forms/10.0/statusstrip-renderer.md) | Behavioral change | Preview 1 | -| [System.Drawing OutOfMemoryException changed to ExternalException](windows-forms/10.0/system-drawing-outofmemory-externalexception.md) | Behavioral change | Preview 5 | +| Title | Type of change | +|--------------------------------------------------------|---------------------| +| [API obsoletions](windows-forms/10.0/obsolete-apis.md) | Source incompatible | +| [Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types](windows-forms/10.0/menuitem-contextmenu.md) | Source incompatible | +| [Renamed parameter in HtmlElement.InsertAdjacentElement](windows-forms/10.0/insertadjacentelement-orientation.md) | Source incompatible | +| [TreeView checkbox image truncation](windows-forms/10.0/treeview-text-location.md) | Behavioral change | +| [StatusStrip uses System RenderMode by default](windows-forms/10.0/statusstrip-renderer.md) | Behavioral change | +| [System.Drawing OutOfMemoryException changed to ExternalException](windows-forms/10.0/system-drawing-outofmemory-externalexception.md) | Behavioral change | ## Windows Presentation Foundation (WPF) -| Title | Type of change | Introduced version | -|-------|---------------------------------------|--------------------| -| [Empty ColumnDefinitions and RowDefinitions are disallowed](wpf/10.0/empty-grid-definitions.md) | Source incompatible | Preview 5 | -| [Incorrect usage of DynamicResource causes application crash](wpf/10.0/dynamicresource-crash.md) | Source incompatible/behavioral change | Preview 4 | +| Title | Type of change | +|-------|---------------------------------------| +| [Empty ColumnDefinitions and RowDefinitions are disallowed](wpf/10.0/empty-grid-definitions.md) | Source incompatible | +| [Incorrect usage of DynamicResource causes application crash](wpf/10.0/dynamicresource-crash.md) | Source incompatible/behavioral change | diff --git a/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md b/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md index 07960d9828a69..fb8c54973cd10 100644 --- a/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md +++ b/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md @@ -16,7 +16,7 @@ The `IncludeOpenAPIAnalyzers` MSBuild property and its associated MVC API analyz ## Previous behavior -Previously, developers could set `true` in their Web SDK projects to enable MVC API analyzers without any warnings or deprecation notices. +Previously, you could set `true` in your Web SDK projects to enable MVC API analyzers without any warnings or deprecation notices. ```xml diff --git a/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md b/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md index bba3504a2ba5a..c5df8303c9f15 100644 --- a/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md +++ b/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md @@ -16,15 +16,15 @@ For more information about the container image platforms available at .NET 10's ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Previous behavior -.NET 9 and earlier default tags reference images based on Debian. +In .NET 9 and earlier versions, default tags referenced images based on Debian. ## New behavior -Default tags reference images based on Ubuntu. +Starting in .NET 10, default tags reference images based on Ubuntu. ## Type of breaking change diff --git a/docs/core/compatibility/core-libraries/10.0/activity-sampling.md b/docs/core/compatibility/core-libraries/10.0/activity-sampling.md index 04c63c8246214..c6ab8aebb859c 100644 --- a/docs/core/compatibility/core-libraries/10.0/activity-sampling.md +++ b/docs/core/compatibility/core-libraries/10.0/activity-sampling.md @@ -12,34 +12,34 @@ The . +Previously, the `AsyncEnumerable` class in the [community-maintained `System.Linq.Async` package](https://www.nuget.org/packages/System.Linq.Async) provided LINQ support for . ## New behavior @@ -40,7 +40,7 @@ If `System.Linq.Async` is consumed indirectly via another package, avoid ambigui ```xml - compile + compile ``` diff --git a/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md b/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md index ed0c749a0d2b1..85cb67150b8ca 100644 --- a/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md +++ b/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md @@ -3,7 +3,6 @@ title: "Breaking change - BufferedStream.WriteByte no longer performs implicit f description: "Learn about the breaking change in .NET 10 where BufferedStream.WriteByte no longer performs an implicit flush when the internal buffer is full." ms.date: 10/13/2025 ai-usage: ai-assisted -ms.custom: https://github.com/dotnet/docs/issues/496356 dev_langs: - "csharp" - "vb" @@ -15,7 +14,7 @@ The ` or `Span` parameters can p ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Type of breaking change diff --git a/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md b/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md index 5a7394ef77805..5887b12bf9014 100644 --- a/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md +++ b/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md @@ -12,15 +12,15 @@ The default trace context propagator has been switched from the legacy propagato ## Version introduced -.NET 10 Preview 4 +.NET 10 ## Previous behavior -The method returned an instance of the legacy propagator. By default, was set to this legacy instance. +Previously, the method returned an instance of the legacy propagator. By default, was set to this legacy instance. ## New behavior -The method now returns an instance of the W3C propagator. By default, is set to this W3C instance. +Starting in .NET 10, the method returns an instance of the W3C propagator. By default, is set to this W3C instance. Example of setting the default propagator to the legacy propagator: @@ -30,7 +30,7 @@ DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3C ## Type of breaking change -This is a [behavioral change](../../categories.md#behavioral-change). +This change is a [behavioral change](../../categories.md#behavioral-change). ## Reason for change diff --git a/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md b/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md index 08e7ae4048bf6..76ecf80f614c8 100644 --- a/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md +++ b/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md @@ -11,7 +11,7 @@ The , the parsing of objects was fairly loose: +Previously, as a result of using , the parsing of objects was fairly loose: - The ASN.1 tags of each value weren't checked. - Trailing data after the end of the parsed DirectoryControl was ignored, as was trailing data within an ASN.1 SEQUENCE. @@ -24,7 +24,7 @@ While not a breaking change, Windows always encoded ASN.1 tags with a four-byte ## New behavior -The DirectoryControl parsing is much more stringent, and is now consistent across platforms and versions: +Starting in .NET 10, the DirectoryControl parsing is much more stringent, and is now consistent across platforms and versions: - ASN.1 tags are now checked. - Trailing data is no longer permitted. diff --git a/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md b/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md index bd0bc72aed39a..5ae7052cf27c0 100644 --- a/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md +++ b/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md @@ -11,15 +11,15 @@ This update ensures that MacCatalyst version components retrieved from the OS ar ## Previous behavior -The build component in `Version` was not previously normalized, which led to incorrect version checks on MacCatalyst when only two components (major and minor) were provided. This resulted in invalid version checks. +Previously, the build component in `Version` was not normalized, which led to incorrect version checks on MacCatalyst when only two components (major and minor) were provided. This resulted in invalid version checks. ## New behavior -The MacCatalyst build component is now normalized to `0`, ensuring consistent version checks. The revision component is always set to `-1`, as it is not specified on MacCatalyst or iOS. +Starting in .NET 10, the MacCatalyst build component is normalized to `0`, ensuring consistent version checks. The revision component is always set to `-1`, as it is not specified on MacCatalyst or iOS. ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Type of breaking change diff --git a/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md b/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md index ebfae8f1750a9..5d2899fccd8d5 100644 --- a/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md +++ b/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md @@ -13,7 +13,7 @@ This change reverts the termination signal handling behavior to what it used to ## Version introduced -.NET 10 Preview 5 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md b/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md index b67428c0e94e9..2b4af4761dd0c 100644 --- a/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md +++ b/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md @@ -12,7 +12,7 @@ All Arm64 SVE nonfaulting load APIs have been updated to include a `mask` parame ## Version introduced -.NET 10 Preview 7 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md b/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md index 49a023cfa3d9a..f124f4b6241c4 100644 --- a/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md +++ b/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md @@ -15,7 +15,7 @@ Other minor fixes have been made to to prioritize roun ## Version introduced -.NET 10 Preview 5 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md b/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md deleted file mode 100644 index 297f26ed59de6..0000000000000 --- a/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Breaking change: YMM embedded rounding removed from AVX10.2" -description: Learn about the .NET 10 breaking change in core .NET libraries where support for YMM embedded rounding was removed from AVX10.2. -ms.date: 06/06/2025 ---- - -# YMM embedded rounding removed from AVX10.2 - -Support for YMM embedded rounding has been removed from the type. - -## Previous behavior - -In previous .NET 10 Preview versions, the [affected APIs](#affected-apis) in were available. - -## New behavior - -Starting in Preview 5, the [affected APIs](#affected-apis) in are removed and no longer available. - -## Version introduced - -.NET 10 Preview 5 - -## Type of breaking change - -This change can affect [binary compatibility](../../categories.md#binary-compatibility) and [source compatibility](../../categories.md#source-compatibility). - -## Reason for change - -Intel pivoted direction and now requires that AVX10.2 also implement AVX512. Since ZMM embedded rounding is always available, the YMM embedded rounding feature isn't necessary. - -## Recommended action - -Because the hardware isn't yet available, no users should be affected by this change. - -## Affected APIs - -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToSByteWithSaturationAndZeroExtendToInt32` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToByteWithSaturationAndZeroExtendToInt32` -- `System.Runtime.Intrinsics.X86.Avx10v2.Add` -- `System.Runtime.Intrinsics.X86.Avx10v2.Divide` -- `System.Runtime.Intrinsics.X86.Avx10v2.Multiply` -- `System.Runtime.Intrinsics.X86.Avx10v2.Scale` -- `System.Runtime.Intrinsics.X86.Avx10v2.Sqrt` -- `System.Runtime.Intrinsics.X86.Avx10v2.Subtract` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector128Int32` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector128Single` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector128UInt32` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Double` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Int32` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Int64` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Single` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256UInt32` -- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256UInt64` diff --git a/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md b/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md index 5895cb696d6e7..db142694407e5 100644 --- a/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md +++ b/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md @@ -12,15 +12,15 @@ In .NET 10, the , don't work on macOS even if OpenSSL is available, and a exception is thrown. +Starting in .NET 10, classes that are specific to OpenSSL, such as , don't work on macOS even if OpenSSL is available, and a exception is thrown. throws a exception. diff --git a/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md b/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md index 3c9c7da74ae40..c03223bc2ec00 100644 --- a/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md +++ b/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md @@ -11,7 +11,7 @@ Starting in .NET 10, OpenSSL 1.1.1 or later is required on Unix platforms where ## Version introduced -.NET 10 GA +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/cryptography/10.0/version-override.md b/docs/core/compatibility/cryptography/10.0/version-override.md index 7fcb4574d7630..eb81b32f6208b 100644 --- a/docs/core/compatibility/cryptography/10.0/version-override.md +++ b/docs/core/compatibility/cryptography/10.0/version-override.md @@ -11,15 +11,15 @@ ai-usage: ai-assisted ## Previous behavior -The `CLR_OPENSSL_VERSION_OVERRIDE` environment variable was used to specify the preferred OpenSSL version to be loaded in the application. +Previously, the `CLR_OPENSSL_VERSION_OVERRIDE` environment variable was used to specify the preferred OpenSSL version to be loaded in the application. ## New behavior -The `DOTNET_OPENSSL_VERSION_OVERRIDE` environment variable is used to specify the preferred OpenSSL version to be loaded in the application. +Starting in .NET 10, the `DOTNET_OPENSSL_VERSION_OVERRIDE` environment variable is used to specify the preferred OpenSSL version to be loaded in the application. ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Type of breaking change diff --git a/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md b/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md index 150dd22b4fcdb..74982c3ed5883 100644 --- a/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md +++ b/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md @@ -18,7 +18,7 @@ Starting in .NET 10, components that violate encoding rules throw a and has changed. When these objects contain a key without algorithm parameters, they now return `null` instead of an empty array. +The behavior of and has changed. When these objects contain a key without algorithm parameters, they now return `null` instead of an empty array. ## Version introduced -.NET 10 Preview 3 +.NET 10 ## Previous behavior - or objects that contained a key without algorithm parameters would return an empty array when accessing the key algorithm parameters. +Previously, or objects that contained a key without algorithm parameters returned an empty array when accessing the key algorithm parameters. ```csharp byte[] parameters = certificate.GetKeyAlgorithmParameters(); @@ -25,7 +25,7 @@ byte[] parameters = certificate.GetKeyAlgorithmParameters(); ## New behavior - or objects that contain a key without algorithm parameters will return `null` when accessing the key algorithm parameters. +Starting in .NET 10, or objects that contain a key without algorithm parameters return `null` when accessing the key algorithm parameters. ```csharp byte[] parameters = certificate.GetKeyAlgorithmParameters(); diff --git a/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md b/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md index a41155ff77ced..f9a4725f6b7e4 100644 --- a/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md +++ b/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md @@ -3,7 +3,6 @@ title: "Breaking change: BackgroundService runs all of ExecuteAsync as a Task" description: "Learn about the breaking change in .NET 10 where BackgroundService now runs the entirety of ExecuteAsync on a background thread instead of running the synchronous portion on the main thread." ms.date: 10/13/2025 ai-usage: ai-assisted -ms.custom: https://github.com/dotnet/runtime/issues/116181 --- # BackgroundService runs all of ExecuteAsync as a Task diff --git a/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md b/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md index aea7ee007a2e4..f3db0f28140c1 100644 --- a/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md +++ b/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md @@ -18,7 +18,7 @@ The update also includes improvements to support binding `null` values within ar ## Version introduced -.NET 10 Preview 7 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md b/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md index ae33060e537b6..dc3c1e0b8a657 100644 --- a/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md +++ b/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md @@ -12,7 +12,7 @@ When logging to the console using the JSON formatter, log messages are no longer ## Version introduced -.NET 10 Preview 7 +.NET 10 ## Previous behavior @@ -51,7 +51,7 @@ Starting in .NET 10, `Message` appears only at the top level and not inside the ## Type of breaking change -This is a [behavioral change](../../categories.md#behavioral-change). +This change is a [behavioral change](../../categories.md#behavioral-change). ## Reason for change diff --git a/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md b/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md index 397929aa9a1ed..96eca13b9253b 100644 --- a/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md +++ b/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md @@ -12,7 +12,7 @@ ms.custom: https://github.com/dotnet/docs/issues/47433 ## Version introduced -.NET 10 Preview 6 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md b/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md index c33f4f2876698..d64b8fcecbbcd 100644 --- a/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md +++ b/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md @@ -11,7 +11,7 @@ The attribute has bee ## Version introduced -.NET 10 Preview 4 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/globalization/10.0/version-override.md b/docs/core/compatibility/globalization/10.0/version-override.md index fc1cc13e80a3b..d7a73dcf67d77 100644 --- a/docs/core/compatibility/globalization/10.0/version-override.md +++ b/docs/core/compatibility/globalization/10.0/version-override.md @@ -11,15 +11,15 @@ ai-usage: ai-assisted ## Previous behavior -The `CLR_ICU_VERSION_OVERRIDE` environment variable was used to specify the preferred ICU version to be loaded in the application. +Previously, the `CLR_ICU_VERSION_OVERRIDE` environment variable was used to specify the preferred ICU version to be loaded in the application. ## New behavior -The `DOTNET_ICU_VERSION_OVERRIDE` environment variable is used to specify the preferred ICU version to be loaded in the application. +Starting in .NET 10, the `DOTNET_ICU_VERSION_OVERRIDE` environment variable is used to specify the preferred ICU version to be loaded in the application. ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Type of breaking change diff --git a/docs/core/compatibility/interop/10.0/native-library-search.md b/docs/core/compatibility/interop/10.0/native-library-search.md index 012ce97ee8864..08411cbb05d16 100644 --- a/docs/core/compatibility/interop/10.0/native-library-search.md +++ b/docs/core/compatibility/interop/10.0/native-library-search.md @@ -13,7 +13,7 @@ The application directory is no longer added to `NATIVE_DLL_SEARCH_DIRECTORIES` ## Version introduced -.NET 10 Preview 6 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/interop/10.0/search-assembly-directory.md b/docs/core/compatibility/interop/10.0/search-assembly-directory.md index ab6a92192c018..929135332713a 100644 --- a/docs/core/compatibility/interop/10.0/search-assembly-directory.md +++ b/docs/core/compatibility/interop/10.0/search-assembly-directory.md @@ -12,11 +12,11 @@ Starting in .NET 10, if you specify was specified as the only search flag, the runtime searched the assembly directory first. If the library was not found, it fell back to the operating system's default library search behavior. +Previously, when was specified as the only search flag, the runtime searched the assembly directory first. If the library was not found, it fell back to the operating system's default library search behavior. For example, with the following code, the runtime would search the assembly directory and then fall back to the OS search paths. @@ -27,7 +27,7 @@ public static extern void ExampleMethod(); ## New behavior -When is specified as the only search flag, the runtime searches only in the assembly directory. It *doesn't* fall back to the operating system's default library search behavior. +Starting in .NET 10, when is specified as the only search flag, the runtime searches only in the assembly directory. It *doesn't* fall back to the operating system's default library search behavior. The previous code example now only searches the assembly directory for *example.dll*. If the library is not found there, a is thrown. diff --git a/docs/core/compatibility/networking/10.0/default-http-streaming.md b/docs/core/compatibility/networking/10.0/default-http-streaming.md index 4661eee91bc8c..0cd2230dc9f21 100644 --- a/docs/core/compatibility/networking/10.0/default-http-streaming.md +++ b/docs/core/compatibility/networking/10.0/default-http-streaming.md @@ -12,11 +12,11 @@ Browser HTTP clients now enable streaming HTTP responses by default. Consequentl ## Version introduced -.NET 10 Preview 3 +.NET 10 ## Previous behavior -In browser environments such as WebAssembly (WASM) and Blazor, the HTTP client buffered the entire response by default. The object contained a unless you explicitly opted in to streaming responses using the `WebAssemblyEnableStreamingResponse` option. +Previously, in browser environments such as WebAssembly (WASM) and Blazor, the HTTP client buffered the entire response by default. The object contained a unless you explicitly opted in to streaming responses using the `WebAssemblyEnableStreamingResponse` option. ```csharp var response = await httpClient.GetAsync("https://example.com"); @@ -25,7 +25,7 @@ var contentStream = await response.Content.ReadAsStreamAsync(); // Returns Memor ## New behavior -Streaming HTTP responses are now enabled by default. The no longer contains a . Instead, returns a `BrowserHttpReadStream`, which does not support synchronous operations. +Starting in .NET 10, streaming HTTP responses are enabled by default. The no longer contains a . Instead, returns a `BrowserHttpReadStream`, which does not support synchronous operations. ```csharp var response = await httpClient.GetAsync("https://example.com"); diff --git a/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md b/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md index 5656f067a7bf0..a5bdaef00f49d 100644 --- a/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md +++ b/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md @@ -12,7 +12,7 @@ Setting `PublishTrimmed` or `PublishAot` to `true` in the project disables HTTP/ ## Version introduced -.NET 10 Preview 6 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md b/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md index 99bf1830872d5..cf329d6d131a0 100644 --- a/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md +++ b/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md @@ -11,7 +11,7 @@ Methods that create instances (constructors and [!NOTE] -> In a later .NET 10 preview, a related change was made such that [direct prunable package references](prune-packagereference-privateassets.md) are automatically excluded from the `.nuspec` file. However, you'll still get the `NU1510` warning to clean up your project. +> Later in .NET 10, a related change was made such that [direct prunable package references](prune-packagereference-privateassets.md) are automatically excluded from the `.nuspec` file. However, you'll still get the `NU1510` warning to clean up your project. ## Type of breaking change diff --git a/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md b/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md index 452f90a00b9c2..9981f2daa9502 100644 --- a/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md +++ b/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md @@ -11,11 +11,11 @@ The `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable no longer has any ef ## Version introduced -.NET 10 Preview 6 +.NET 10 ## Previous behavior -When the `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable was set to `false`, NuGet used the old retry behavior with a fixed 200ms delay between failed HTTP calls instead of exponential back-off. +Previously, when the `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable was set to `false`, NuGet used the old retry behavior with a fixed 200ms delay between failed HTTP calls instead of exponential back-off. ## New behavior @@ -23,7 +23,7 @@ The `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable has no effect. NuGet ## Type of breaking change -This is a [behavioral change](../../categories.md#behavioral-change). +This change is a [behavioral change](../../categories.md#behavioral-change). ## Reason for change diff --git a/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md b/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md index bfa40997be2b0..080d19ed276ed 100644 --- a/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md +++ b/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md @@ -11,7 +11,7 @@ NuGet now validates package IDs when they're used to create URLs in .NET 10. If ## Version introduced -.NET 10 RC 1 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md b/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md index 80113ca459aff..94e4d3da08eb7 100644 --- a/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md +++ b/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md @@ -12,7 +12,7 @@ The [`dotnet restore` command](../../../tools/dotnet-restore.md), which restores [NuGetAudit](../8.0/dotnet-restore-audit.md) was introduced in .NET 8 to emit warnings for packages with known security vulnerabilities. By default, only direct package references were audited, however, it was possible to change the `NuGetAuditMode` property to include all packages. -In .NET 9 preview 6, NuGetAuditMode's default was changed to `all` for all projects, and this change was reverted back to `direct` in the .NET 9.0.101 SDK. +In a .NET 9 preview version, NuGetAuditMode's default was changed to `all` for all projects, and this change was reverted back to `direct` in the .NET 9.0.101 SDK. ## New behavior diff --git a/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md b/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md index 2fbeaf2aafd2f..18fd7ff12a41e 100644 --- a/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md +++ b/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md @@ -11,11 +11,11 @@ The [PrunePackageReference](/nuget/consume-packages/package-references-in-projec ## Version introduced -.NET 10 Preview 7 +.NET 10 ## Previous behavior -Starting in .NET 10 Preview 1, if pruning was enabled, directly prunable `PackageReference` items might have generated an [`NU1510` warning](/nuget/reference/errors-and-warnings/nu1510) but still appeared in the generated *.nuspec* dependencies list, even if the package was provided by the platform. +Previously, if pruning was enabled, directly prunable `PackageReference` items still appeared in the generated *.nuspec* dependencies list, even if the package was provided by the platform. (And if your project targeted .NET 10, they might have generated a [`NU1510` warning](/nuget/reference/errors-and-warnings/nu1510).) For example, consider a multi-targeting project with the following configuration: @@ -44,7 +44,7 @@ Such a project file generated a *.nuspec* file with dependencies for both target ## New behavior -Starting in .NET 10 Preview 7, when pruning is enabled, directly prunable `PackageReference` items are automatically marked with `PrivateAssets=all` and `IncludeAssets=none`, which excludes them from the generated dependencies for target frameworks where they're provided by the platform. (However, if your project targets .NET 10 or later, you'll still get the `NU1510` warning until you remove the reference from your project.) +Starting in .NET 10, when pruning is enabled, directly prunable `PackageReference` items are automatically marked with `PrivateAssets=all` and `IncludeAssets=none`, which excludes them from the generated dependencies for target frameworks where they're provided by the platform. (However, if your project targets .NET 10 or later, you'll still get a [`NU1510` warning](/nuget/reference/errors-and-warnings/nu1510) until you remove the reference from your project.) The same project configuration now generates a *.nuspec* file with the prunable dependency removed from the target framework that provides it (.NET 10): @@ -60,7 +60,7 @@ The same project configuration now generates a *.nuspec* file with the prunable ## Type of breaking change -This is a [behavioral change](../../categories.md#behavioral-change). +This change is a [behavioral change](../../categories.md#behavioral-change). ## Reason for change diff --git a/docs/core/compatibility/sdk/10.0/version-requirements.md b/docs/core/compatibility/sdk/10.0/version-requirements.md deleted file mode 100644 index 194d534e224db..0000000000000 --- a/docs/core/compatibility/sdk/10.0/version-requirements.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Breaking change: Version requirements for .NET 10 SDK" -description: Learn about the breaking change in the .NET 10 SDK where specific versions of Visual Studio and MSBuild are required. -ms.date: 10/08/2025 -ai-usage: ai-generated ---- -# Version requirements for .NET 10 SDK - -Per the [published support rules](../../../porting/versioning-sdk-msbuild-vs.md#targeting-and-support-rules), the minimum Visual Studio and MSBuild version for each new major release is updated with a one quarter delay. For the .NET 10 release: - -- 10.0.100 requires version 17.14 to be loaded but only supports targeting .NET 9 in that version. -- To target `net10.0`, you must use version 18.0 or later. - -## Version introduced - -.NET 10 RC 2 - -## Previous behavior - -The previous minimum Visual Studio version for .NET 10 previews was 17.13 to allow time for release and more adoption of Visual Studio version 17.14. - -## New behavior - -- .NET 10.0.100 will only load on Visual Studio version 17.14 or later. -- .NET 10.0.100 warns when targeting `net10.0` on Visual Studio version 17.14. To target `net10.0`, you must use Visual Studio version 18.0 or later. - -## Type of breaking change - -This change is a [behavioral change](../../categories.md#behavioral-change). - -## Reason for change - -This change is part of the standard support policy for the SDK as not all prior versions of Visual Studio and MSBuild can be supported. - -## Recommended action - -Upgrade to Visual Studio 2026 to target `net10.0`. If you only need to target `net9.0` or earlier, you can use Visual Studio version 17.14 or later. - -## Affected APIs - -N/A - -## See also - -- [Targeting and support rules](../../../porting/versioning-sdk-msbuild-vs.md#targeting-and-support-rules) diff --git a/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md b/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md index 927093eefec28..529df364c67a0 100644 --- a/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md +++ b/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md @@ -13,7 +13,7 @@ With this change, properties marked with `[Obsolete]` are now serialized by defa ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Previous behavior @@ -23,10 +23,10 @@ In previous versions of .NET, properties marked with the `[Obsolete]` attribute public class Example { public string NormalProperty { get; set; } = "normal"; - + [Obsolete("This property is deprecated")] public string ObsoleteProperty { get; set; } = "obsolete"; - + [XmlIgnore] public string IgnoredProperty { get; set; } = "ignored"; } diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index cdd46b00d6fe3..59f1bd2e330d3 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -66,8 +66,6 @@ items: href: core-libraries/10.0/sigterm-signal-handler.md - name: System.Linq.AsyncEnumerable included in core libraries href: core-libraries/10.0/asyncenumerable.md - - name: YMM embedded rounding removed from AVX10.2 - href: core-libraries/10.0/ymm-embedded-rounding.md - name: Cryptography items: - name: CoseSigner.Key can be null @@ -166,8 +164,6 @@ items: href: sdk/10.0/nu1015-packagereference-version.md - name: PrunePackageReference privatizes direct prunable references href: sdk/10.0/prune-packagereference-privateassets.md - - name: Version requirements for .NET 10 SDK - href: sdk/10.0/version-requirements.md - name: Serialization items: - name: XmlSerializer no longer ignores properties marked with ObsoleteAttribute diff --git a/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md b/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md index afb741bde02eb..2739d9cf2e006 100644 --- a/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md +++ b/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md @@ -1,6 +1,6 @@ --- title: "Breaking change: Renamed parameter in HtmlElement.InsertAdjacentElement" -description: Learn about the .NET 10 Preview 1 breaking change in Windows Forms where the parameter `orient` was renamed to `orientation`. +description: Learn about the breaking change in Windows Forms where the parameter `orient` was renamed to `orientation`. ms.date: 01/30/2025 ai-usage: ai-assisted --- @@ -11,7 +11,7 @@ ai-usage: ai-assisted ## Previous behavior -Calls to included the `orient` parameter: +Previously, calls to included the `orient` parameter: ```csharp element.InsertAdjacentElement(orient: HtmlElementInsertionOrientation.AfterEnd, newElement); @@ -27,7 +27,7 @@ element.InsertAdjacentElement(orientation: HtmlElementInsertionOrientation.After ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Type of breaking change diff --git a/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md b/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md index f281914be35ef..7a48dc2858196 100644 --- a/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md +++ b/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md @@ -8,11 +8,11 @@ ms.custom: https://github.com/dotnet/docs/issues/44738 # Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types -This document describes a breaking change introduced in .NET 10 Preview 1. Applications that reference both Windows Presentation Foundation (WPF) and Windows Forms (WinForms) must disambiguate certain types, such as `MenuItem` and `ContextMenu`, to avoid compile-time errors. +Applications that reference both Windows Presentation Foundation (WPF) and Windows Forms (WinForms) must now disambiguate certain types, such as `MenuItem` and `ContextMenu`, to avoid compile-time errors. ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md b/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md index 6cd2b0bf296b8..fa8594d4ae7cf 100644 --- a/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md +++ b/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md @@ -10,7 +10,7 @@ Some Windows Forms APIs have been marked as obsolete, starting in .NET 10. ## Previous behavior -In previous .NET versions, these APIs can be used without any build warning. +Previously, the [affected APIs](#affected-apis) could be used without any build warnings. ## New behavior @@ -18,11 +18,11 @@ In .NET 10 and later versions, use of these APIs produces a compile-time warning The following table lists the custom diagnostic IDs and their corresponding warning messages. -| Diagnostic ID | Description | Severity | Version introduced | -| - | - | -| [WFDEV004](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev004) | , and the corresponding events are obsolete. Use , , and instead. | Warning | Preview 1 | -| [WFDEV005](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev005) | method is obsolete. Use methods instead. | Warning | Preview 1 | -| [WFDEV006](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev006) | , , , , , are obsolete. They're provided for binary compatibility with .NET Framework. | Warning | Preview 1 | +| Diagnostic ID | Description | Severity | +|---------------|-------------|----------| +| [WFDEV004](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev004) | , and the corresponding events are obsolete. Use , , and instead. | Warning | +| [WFDEV005](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev005) | method is obsolete. Use methods instead. | Warning | +| [WFDEV006](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev006) | , , , , , are obsolete. They're provided for binary compatibility with .NET Framework. | Warning | ## Version introduced diff --git a/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md b/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md index 062264432873a..de190e5fd8796 100644 --- a/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md +++ b/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md @@ -9,7 +9,7 @@ ms.date: 02/12/2025 ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Previous behavior diff --git a/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md b/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md index 8c1049f6bee74..a2ecb35f3b09c 100644 --- a/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md +++ b/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md @@ -14,11 +14,11 @@ GDI+ error handling in System.Drawing has been updated to throw . +Previously, when GDI+ encountered `Status.OutOfMemory` errors (often due to invalid input rather than actual memory issues), System.Drawing APIs threw . ## New behavior diff --git a/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md b/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md index 01307f712a5b8..e0229b05da8ff 100644 --- a/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md +++ b/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md @@ -23,7 +23,7 @@ By setting the switch `"System.Windows.Forms.TreeView.MoveTreeViewTextLocationOn ## Version introduced -.NET 10 Preview 1 +.NET 10 ## Type of breaking change diff --git a/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md b/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md index fa7f53e45077e..5daaefbbca21c 100644 --- a/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md +++ b/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md @@ -8,15 +8,15 @@ ms.custom: https://github.com/dotnet/docs/issues/46089 # Incorrect usage of DynamicResource causes application crash -Beginning with .NET 10 Preview 4, applications using `DynamicResource` incorrectly now crash at runtime. +Applications that use `DynamicResource` incorrectly now crash at run time. ## Version introduced -.NET 10 Preview 4 +.NET 10 ## Previous behavior -Applications that incorrectly initialized `DynamicResource` would continue running without crashing. The values would fall back to defaults, and an `InvalidOperationException` would appear in the output. +Previously, applications that incorrectly initialized `DynamicResource` would continue running without crashing. The values would fall back to defaults, and an `InvalidOperationException` would appear in the output. ## New behavior diff --git a/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md b/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md index 22fcd1e2983af..688a7e77961de 100644 --- a/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md +++ b/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md @@ -12,7 +12,7 @@ Starting with .NET 10, WPF applications fail to build if `