Training
Learning path
Implement finance and operations apps - Training
Plan and design your project methodology to successfully implement finance and operations apps with FastTrack services, data management and more.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
If you're migrating an app to .NET 8, the breaking changes listed here might affect you. Changes are grouped by technology area, such as ASP.NET Core or Windows Forms.
This article categorizes each breaking change as binary incompatible or source incompatible, or as a behavioral change:
Binary incompatible - When run against the new runtime or component, existing binaries may encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
Source incompatible - When recompiled using the new SDK or component or to target the new runtime, existing source code may require source changes to compile successfully.
Behavioral change - Existing code and binaries may behave differently at run time. If the new behavior is undesirable, existing code would need to be updated and recompiled.
Title | Type of change |
---|---|
ConcurrencyLimiterMiddleware is obsolete | Source incompatible |
Custom converters for serialization removed | Behavioral change |
ISystemClock is obsolete | Source incompatible |
Minimal APIs: IFormFile parameters require anti-forgery checks | Behavioral change |
Rate-limiting middleware requires AddRateLimiter | Behavioral change |
Security token events return a JsonWebToken | Behavioral change |
TrimMode defaults to full for Web SDK projects | Source incompatible |
Title | Type of change |
---|---|
'ca-certificates' package removed from Alpine images | Binary incompatible |
Debian container images upgraded to Debian 12 | Binary incompatible/behavioral change |
Default ASP.NET Core port changed to 8080 | Behavioral change |
Kerberos package removed from Alpine and Debian images | Binary incompatible |
'libintl' package removed from Alpine images | Behavioral change |
Multi-platform container tags are Linux-only | Behavioral change |
New 'app' user in Linux images | Behavioral change |
Title | Type of change | Introduced |
---|---|---|
AesGcm authentication tag size on macOS | Behavioral change | Preview 1 |
RSA.EncryptValue and RSA.DecryptValue obsolete | Source incompatible | Preview 1 |
Title | Type of change |
---|---|
Host determines RID-specific assets | Binary incompatible/behavioral change |
.NET Monitor only includes distroless images | Behavioral change |
StripSymbols defaults to true | Behavioral change |
Title | Type of change |
---|---|
ActivatorUtilities.CreateInstance behaves consistently | Behavioral change |
ActivatorUtilities.CreateInstance requires non-null provider | Behavioral change |
ConfigurationBinder throws for mismatched value | Behavioral change |
ConfigurationManager package no longer references System.Security.Permissions | Source incompatible |
DirectoryServices package no longer references System.Security.Permissions | Source incompatible |
Empty keys added to dictionary by configuration binder | Behavioral change |
HostApplicationBuilderSettings.Args respected by HostApplicationBuilder ctor | Behavioral change |
ManagementDateTimeConverter.ToDateTime returns a local time | Behavioral change |
System.Formats.Cbor DateTimeOffset formatting change | Behavioral change |
Title | Type of change |
---|---|
Date and time converters honor culture argument | Behavioral change |
TwoDigitYearMax default is 2049 | Behavioral change |
Title | Type of change |
---|---|
CreateObjectFlags.Unwrap only unwraps on target instance | Behavioral change |
Custom marshallers require additional members | Source incompatible |
IDispatchImplAttribute API is removed | Binary incompatible |
JSFunctionBinding implicit public default constructor removed | Binary incompatible |
SafeHandle types must have public constructor | Source incompatible |
Title | Type of change |
---|---|
SendFile throws NotSupportedException for connectionless sockets | Behavioral change |
User info in mailto: URIs is compared |
Behavioral change |
Title | Type of change |
---|---|
IntPtr no longer used for function pointer types | Behavioral change |
Title | Type of change |
---|---|
BinaryFormatter disabled for most projects | Behavioral change |
PublishedTrimmed projects fail reflection-based serialization | Behavioral change |
Reflection-based deserializer resolves metadata eagerly | Behavioral change |
Title | Type of change |
---|---|
Anchor layout changes | Behavioral change |
Certs checked before loading remote images in PictureBox | Behavioral change |
DateTimePicker.Text is empty string | Behavioral change |
DefaultValueAttribute removed from some properties | Behavioral change |
ExceptionCollection ctor throws ArgumentException | Behavioral change |
Forms scale according to AutoScaleMode | Behavioral change |
ImageList.ColorDepth default is Depth32Bit | Behavioral change |
System.Windows.Extensions doesn't reference System.Drawing.Common | Source incompatible |
TableLayoutStyleCollection throws ArgumentException | Behavioral change |
Top-level forms scale minimum and maximum size to DPI | Behavioral change |
WFDEV002 obsoletion is now an error | Source incompatible |
.NET feedback
.NET is an open source project. Select a link to provide feedback:
Training
Learning path
Implement finance and operations apps - Training
Plan and design your project methodology to successfully implement finance and operations apps with FastTrack services, data management and more.