core icon indicating copy to clipboard operation
core copied to clipboard

Proposed .NET 8 Breaking Changes

Open richlander opened this issue 3 years ago • 2 comments

The following list defines breaking changes that are proposed for .NET 8.

Proposed:

  • https://github.com/dotnet/sdk/issues/10357

Carryovers from .NET 7:

  • https://github.com/dotnet/sdk/issues/23540
  • https://github.com/dotnet/sdk/issues/23545

dotnet build/publish produces RID-specific apps by default

Proposal: https://github.com/dotnet/sdk/issues/23540

The .NET SDK has produced portable apps since .NET Core 1.0. That may or may not have made sense, but it no longer does now. Portable apps are bigger, slower to startup, and less reliable in some scenarios. In addition, portable apps are not fully coherent since they have a RID-specific executable but portable assets. That means that you can use the executable for one RID environment and cannot for any other. It's an odd design choice. A perfect example is containers. RID-specific apps are always better for containers. Another example is client apps. Client apps require an executable, such that they should always be RID-specific.

Motivation for break:

  • Portable apps are good for a small subset of scenarios.
  • RID-specific apps are the only good option for a variety of popular scenarios.

dotnet build/publish does not produce an exe/apphost for portable apps by default

Proposal: https://github.com/dotnet/sdk/issues/23545

Portable apps are intended to run in multiple environments. By definition, an executable is RID-specific and therefore only compatible with one of the environments in which a portable app can run. It's possible that developers are happy with this asymmetry, but should opt into that experience.

Motivation for break:

  • The apphost makes portable apps incoherent.
  • It is easier to explain how to use portable apps in absence of an executable apphost.

richlander avatar Jun 25 '22 21:06 richlander

hi

cheveuxdelin avatar Sep 29 '22 23:09 cheveuxdelin

@richlander

Is this issue still relevant or can it be closed? .NET 8 is already in GA

The linked issue milestone seems to be .NET 9

deeprobin avatar Feb 26 '24 05:02 deeprobin