From 04942b9d2a0d614542a8b578deda4f2edcc0ff54 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Thu, 12 Sep 2024 20:32:34 -0700 Subject: [PATCH] Use relative URLs (#9500) --- release-notes/9.0/install-linux.md | 2 +- .../9.0/preview/preview1/9.0.0-preview.1.md | 4 ++-- .../9.0/preview/preview2/9.0.0-preview.2.md | 4 ++-- .../9.0/preview/preview2/aspnetcore.md | 2 +- .../9.0/preview/preview2/dotnetmaui.md | 2 +- release-notes/9.0/preview/preview2/runtime.md | 2 +- release-notes/9.0/preview/preview2/sdk.md | 4 ++-- .../9.0/preview/preview3/9.0.0-preview.3.md | 4 ++-- .../9.0/preview/preview4/9.0.0-preview.4.md | 4 ++-- .../9.0/preview/preview5/9.0.0-preview.5.md | 4 ++-- .../9.0/preview/preview6/9.0.0-preview.6.md | 4 ++-- .../9.0/preview/preview6/dotnetmaui.md | 2 +- .../9.0/preview/preview7/9.0.0-preview.7.md | 4 ++-- .../9.0/preview/preview7/aspnetcore.md | 16 +++++++-------- release-notes/9.0/preview/preview7/csharp.md | 11 +++++----- .../9.0/preview/preview7/dotnetmaui.md | 20 +++++++++---------- .../9.0/preview/preview7/libraries.md | 10 +++++----- release-notes/9.0/preview/preview7/runtime.md | 20 +++++++++---------- release-notes/9.0/preview/preview7/sdk.md | 16 +++++++-------- release-notes/9.0/preview/rc1/9.0.0-rc.1.md | 4 ++-- release-notes/9.0/preview/rc1/aspnetcore.md | 6 +++--- release-notes/9.0/preview/rc1/dotnetmaui.md | 6 +++--- release-notes/9.0/preview/rc1/libraries.md | 5 ++--- release-notes/9.0/preview/rc1/sdk.md | 6 +++--- 24 files changed, 80 insertions(+), 82 deletions(-) diff --git a/release-notes/9.0/install-linux.md b/release-notes/9.0/install-linux.md index 5783a47f02f..fa3c81ab52c 100644 --- a/release-notes/9.0/install-linux.md +++ b/release-notes/9.0/install-linux.md @@ -35,7 +35,7 @@ Preview release installers are not available from the Microsoft package reposito Here's what the script does. -- Detects the distribution and version. The script supports platforms and versions listed in [.NET 9.0 - Supported OS versions](https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md). +- Detects the distribution and version. The script supports platforms and versions listed in [.NET 9.0 - Supported OS versions](supported-os.md). - Determines if additional system dependencies or utilities are needed to successfully complete and install them. For example, `tar` is used to unpack the installer packages. - Downloads the tar.gz containing the .NET preview installer packages for the detected distribution. - Downloads the system dependency installer, if needed. diff --git a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md index 55b582ee6d0..303bf0b6fbc 100644 --- a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md +++ b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md @@ -615,13 +615,13 @@ Microsoft.CodeAnalysis.AnalyzerUtilities | 3.11.0-beta1.24072.1 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/9.0.0-preview.1.md +[release-notes]: 9.0.0-preview.1.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-1/ diff --git a/release-notes/9.0/preview/preview2/9.0.0-preview.2.md b/release-notes/9.0/preview/preview2/9.0.0-preview.2.md index 7da852623d3..a484b04ee04 100644 --- a/release-notes/9.0/preview/preview2/9.0.0-preview.2.md +++ b/release-notes/9.0/preview/preview2/9.0.0-preview.2.md @@ -731,13 +731,13 @@ Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers | 3.11.0-beta1.24122.1 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview2/9.0.0-preview.2.md +[release-notes]: 9.0.0-preview.2.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.2-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.2-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-2 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-2/ diff --git a/release-notes/9.0/preview/preview2/aspnetcore.md b/release-notes/9.0/preview/preview2/aspnetcore.md index 4271e2277f3..5eb0022ebfa 100644 --- a/release-notes/9.0/preview/preview2/aspnetcore.md +++ b/release-notes/9.0/preview/preview2/aspnetcore.md @@ -17,7 +17,7 @@ ASP.NET Core updates in .NET 9 Preview 2: .NET 9 Preview 2: - [Discussion](https://aka.ms/dotnet/9/preview2) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/README.md) +- [Release notes](README.md) ## Blazor component constructor injection diff --git a/release-notes/9.0/preview/preview2/dotnetmaui.md b/release-notes/9.0/preview/preview2/dotnetmaui.md index e10e7f24db3..283c42866f0 100644 --- a/release-notes/9.0/preview/preview2/dotnetmaui.md +++ b/release-notes/9.0/preview/preview2/dotnetmaui.md @@ -11,7 +11,7 @@ The team is continuing work on core fundamentals of the .NET MAUI SDK to improve .NET 9 Preview 2: * [Discussion](https://aka.ms/dotnet/9/preview2) -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/README.md) +* [Release notes](README.md) ## .NET for Android diff --git a/release-notes/9.0/preview/preview2/runtime.md b/release-notes/9.0/preview/preview2/runtime.md index 506e895f7b4..39410164dc3 100644 --- a/release-notes/9.0/preview/preview2/runtime.md +++ b/release-notes/9.0/preview/preview2/runtime.md @@ -13,7 +13,7 @@ Runtime updates in .NET 9 Preview 2: .NET 9 Preview 2: - [Discussion](https://aka.ms/dotnet/9/preview2) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/README.md) +- [Release notes](README.md) ## Loop Optimizations: IV Widening diff --git a/release-notes/9.0/preview/preview2/sdk.md b/release-notes/9.0/preview/preview2/sdk.md index e0afffb454e..644d272862b 100644 --- a/release-notes/9.0/preview/preview2/sdk.md +++ b/release-notes/9.0/preview/preview2/sdk.md @@ -22,10 +22,10 @@ We've added an option to `dotnet tool install` that lets users decide how .NET T SDK updates in .NET 2 Preview 2: -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/sdk.md) +- [Release notes](sdk.md) - [What's new in the .NET Runtime in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation .NET 9 Preview 2: - [Discussion](https://aka.ms/dotnet/9/preview2) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/README.md) \ No newline at end of file +- [Release notes](README.md) \ No newline at end of file diff --git a/release-notes/9.0/preview/preview3/9.0.0-preview.3.md b/release-notes/9.0/preview/preview3/9.0.0-preview.3.md index 09f1bb4b987..7829b889a89 100644 --- a/release-notes/9.0/preview/preview3/9.0.0-preview.3.md +++ b/release-notes/9.0/preview/preview3/9.0.0-preview.3.md @@ -734,13 +734,13 @@ Microsoft.CodeAnalysis.NetAnalyzers | 9.0.0-preview.24165.2 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview3/9.0.0-preview.3.md +[release-notes]: 9.0.0-preview.3.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.3-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.3-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-3 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-3/ diff --git a/release-notes/9.0/preview/preview4/9.0.0-preview.4.md b/release-notes/9.0/preview/preview4/9.0.0-preview.4.md index 4dae0ee12ac..9788a13d8b3 100644 --- a/release-notes/9.0/preview/preview4/9.0.0-preview.4.md +++ b/release-notes/9.0/preview/preview4/9.0.0-preview.4.md @@ -732,13 +732,13 @@ Microsoft.CodeAnalysis.RulesetToEditorconfigConverter | 3.11.0-beta1.24216.2 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview4/9.0.0-preview.4.md +[release-notes]: 9.0.0-preview.4.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.4-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.4-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-4 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-4/ diff --git a/release-notes/9.0/preview/preview5/9.0.0-preview.5.md b/release-notes/9.0/preview/preview5/9.0.0-preview.5.md index d9897f051e0..592d2ac0c6e 100644 --- a/release-notes/9.0/preview/preview5/9.0.0-preview.5.md +++ b/release-notes/9.0/preview/preview5/9.0.0-preview.5.md @@ -735,13 +735,13 @@ Microsoft.Net.Compilers.Toolset.Framework | 4.11.0-2.24269.3 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview5/9.0.0-preview.5.md +[release-notes]: 9.0.0-preview.5.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.5-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.5-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-4 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-4/ diff --git a/release-notes/9.0/preview/preview6/9.0.0-preview.6.md b/release-notes/9.0/preview/preview6/9.0.0-preview.6.md index 47907987343..eb8a1006690 100644 --- a/release-notes/9.0/preview/preview6/9.0.0-preview.6.md +++ b/release-notes/9.0/preview/preview6/9.0.0-preview.6.md @@ -737,13 +737,13 @@ Microsoft.EntityFrameworkCore.Templates | 9.0.0-preview.6.24327.4 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/Preview6/9.0.0-preview.6.md +[release-notes]: 9.0.0-preview.6.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.6-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.6-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-6 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-6/ diff --git a/release-notes/9.0/preview/preview6/dotnetmaui.md b/release-notes/9.0/preview/preview6/dotnetmaui.md index c11b8fca0a2..e3c8f5b00e6 100644 --- a/release-notes/9.0/preview/preview6/dotnetmaui.md +++ b/release-notes/9.0/preview/preview6/dotnetmaui.md @@ -8,7 +8,7 @@ The team is continuing work on core fundamentals of the .NET MAUI SDK to improve .NET 9 Preview 6: * [Discussion](https://aka.ms/dotnet/9/preview6) -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview6/README.md) +* [Release notes](README.md) ## .NET for Android diff --git a/release-notes/9.0/preview/preview7/9.0.0-preview.7.md b/release-notes/9.0/preview/preview7/9.0.0-preview.7.md index cfe2fcfd70c..4b1f7998d49 100644 --- a/release-notes/9.0/preview/preview7/9.0.0-preview.7.md +++ b/release-notes/9.0/preview/preview7/9.0.0-preview.7.md @@ -735,13 +735,13 @@ Microsoft.EntityFrameworkCore.Templates | 9.0.0-preview.7.24405.3 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/Preview7/9.0.0-preview.7.md +[release-notes]: 9.0.0-preview.7.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.7-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.7-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-Preview-7 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-Preview-7/ diff --git a/release-notes/9.0/preview/preview7/aspnetcore.md b/release-notes/9.0/preview/preview7/aspnetcore.md index eb9466a7a5e..d0f0a4a9e33 100644 --- a/release-notes/9.0/preview/preview7/aspnetcore.md +++ b/release-notes/9.0/preview/preview7/aspnetcore.md @@ -16,7 +16,7 @@ Here's a summary of what's new in ASP.NET Core in this preview release: ASP.NET Core updates in .NET 9 Preview 7: -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/aspnetcore.md) +- [Release notes](aspnetcore.md) - [What's new in ASP.NET Core in .NET 9](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) documentation. - [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/9.0#aspnet-core) - [Roadmap](https://aka.ms/aspnet/roadmap) @@ -24,7 +24,7 @@ ASP.NET Core updates in .NET 9 Preview 7: .NET 9 Preview 7: - [Discussion](https://aka.ms/dotnet/9/preview7) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/README.md) +- [Release notes](README.md) ## SignalR supports trimming and Native AOT @@ -227,18 +227,18 @@ Thank you [@joegoldman2](https://github.com/joegoldman2) for this contribution! We'd like to thank @josephdecock from @DuendeSoftware for adding Pushed Authorization Requests (PAR) to ASP.NET Core's `OpenIdConnectHandler`. Joe described the background and motivation for enabling PAR in [his API proposal](https://github.com/dotnet/aspnetcore/issues/51686) as follows: > Pushed Authorization Requests (PAR) is a relatively new [OAuth standard](https://datatracker.ietf.org/doc/html/rfc9126) that improves the security of OAuth and OIDC flows by moving authorization parameters from the front channel to the back channel (that is, from redirect URLs in the browser to direct machine to machine http calls on the back end). -> +> > This prevents an attacker in the browser from: -> +> > - Seeing authorization parameters (which could leak PII) and from > - Tampering with those parameters (e.g., the attacker could change the scope of access being requested). -> +> > Pushing the authorization parameters also keeps request URLs short. Authorize parameters might get very long when using more complex OAuth and OIDC features such as Rich Authorization Requests, and URLs that are long cause issues in many browsers and networking infrastructure. -> +> > The use of PAR is encouraged by the [FAPI working group](https://openid.net/wg/fapi/) within the OpenID Foundation. For example, [the FAPI2.0 Security Profile](https://openid.bitbucket.io/fapi/fapi-2_0-security-profile.html) requires the use of PAR. This security profile is used by many of the groups working on open banking (primarily in Europe), in health care, and in other industries with high security requirements. -> +> > PAR is supported by a number of identity providers, including -> +> > - Duende IdentityServer > - Curity > - Keycloak diff --git a/release-notes/9.0/preview/preview7/csharp.md b/release-notes/9.0/preview/preview7/csharp.md index 444d0fa99a2..97f92ed146f 100644 --- a/release-notes/9.0/preview/preview7/csharp.md +++ b/release-notes/9.0/preview/preview7/csharp.md @@ -2,24 +2,23 @@ Summary of what's new in C# in this release: -- [Prioritize better overloads with `OverloadResolutionPriority` attribute](#prioritize-better-overloads-with-overloadresolutionpriority-attribute) +* [Prioritize better overloads with `OverloadResolutionPriority` attribute](#prioritize-better-overloads-with-overloadresolutionpriority-attribute) What's new in C# for .NET 9: -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/csharp.md) +* [Release notes](csharp.md) * [What's new in C# 13](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-13) documentation. * [Breaking changes in C# 13](https://learn.microsoft.com/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%209) documentation. .NET 9 Preview 7: * [Discussion](https://aka.ms/dotnet/9/preview7) -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/README.md) +* [Release notes](README.md) ## Prioritize better overloads with `OverloadResolutionPriority` attribute -C# introduces a new attribute, `System.Runtime.CompilerServices.OverloadResolutionPriority`, that can be used by API authors to adjust the relative priority of overloads within a single type as a means of steering API consumers to use specific APIs, even if those APIs would normally be considered ambiguous or otherwise not be chosen by C#'s overload resolution rules. This helps framework and library authors guide API usage as they APIs as they develop new and better patterns. +C# introduces a new attribute, `System.Runtime.CompilerServices.OverloadResolutionPriority`, that can be used by API authors to adjust the relative priority of overloads within a single type as a means of steering API consumers to use specific APIs, even if those APIs would normally be considered ambiguous or otherwise not be chosen by C#'s overload resolution rules. This helps framework and library authors guide API usage as they APIs as they develop new and better patterns. The `OverloadResolutionPriorityAttribute` can be used in conjunction with the [`ObsoleteAttribute`](https://learn.microsoft.com/dotnet/api/system.obsoleteattribute). A library author may mark properties, methods, types and other programming elements as obsolete, while leaving them in place for backwards compatibility. Using programming elements marked with the `ObsoleteAttribute` will result in compiler warnings or errors. However, the type or member is still visible to overload resolution and may be selected over a better overload or cause an ambiguity failure. The `OverloadResolutionPriorityAttribute` lets library authors fix these problems by lowering the priority of obsolete members when there are better alternatives. -We've already started using this attribute in the .NET libraries, with [Debug.Assert](https://github.com/dotnet/runtime/blob/019d7580a27db97f1fbdcf0d26f7ae3fa54fc2d1/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Debug.cs#L81). This particular change is discussed in more detail in the [Libraries release notes](./libraries.md#debugassert-now-reports-assert-condition-by-default). - +We've already started using this attribute in the .NET libraries, with [Debug.Assert](https://github.com/dotnet/runtime/blob/019d7580a27db97f1fbdcf0d26f7ae3fa54fc2d1/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Debug.cs#L81). This particular change is discussed in more detail in the [Libraries release notes](./libraries.md#debugassert-now-reports-assert-condition-by-default). \ No newline at end of file diff --git a/release-notes/9.0/preview/preview7/dotnetmaui.md b/release-notes/9.0/preview/preview7/dotnetmaui.md index bd8d487e33d..a365d997b4e 100644 --- a/release-notes/9.0/preview/preview7/dotnetmaui.md +++ b/release-notes/9.0/preview/preview7/dotnetmaui.md @@ -16,13 +16,13 @@ Here's a summary of what's new in .NET MAUI in this preview release: * [Xcode Sync for CLI and Visual Studio Code](#xcode-sync-for-cli-and-visual-studio-code) .NET MAUI updates in .NET 9 Preview 7: -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/dotnetmaui.md) +* [Release notes](dotnetmaui.md) * [What's new in .NET MAUI in .NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation. * [GitHub Release](https://aka.ms/maui9p7) .NET 9 Preview 7: * [Discussion](https://aka.ms/dotnet/9/preview7) -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/README.md) +* [Release notes](README.md) ## Introduction of `HybridWebView` @@ -181,7 +181,7 @@ The new `TitleBar` control enables developers the ability to create custom title ![Overview of title bar control](./media/titlebar-overview.png) -The `TitleBar` control can now be set for the `Window.TitleBar` property for any `Window`. +The `TitleBar` control can now be set for the `Window.TitleBar` property for any `Window`. ```xml @@ -208,7 +208,7 @@ It can also be set in C# code: protected override void OnAppearing() { base.OnAppearing(); - + Window.TitleBar = new TitleBar { Title = "MAUI App", @@ -272,11 +272,11 @@ Application.Current?.ActivateWindow(secondWindow); The binding mode for `IsVisible` and `IsEnabled` on the `BackButtonBehavior` is now `BindingMode.OneWay` instead of `BindingMode.OneTime`. This allows you to more easily control the behavior of the back button at runtime using data bindings. ```xml - + + IconOverride="back.png" /> ... @@ -284,7 +284,7 @@ The binding mode for `IsVisible` and `IsEnabled` on the `BackButtonBehavior` is ## `BlazorWebView` backward compatibility host address -.NET 9 Preview 7 changes the default behavior for hosting content to be `localhost` on iOS and Mac Catalyst 18 and newer. Starting with iOS and Mac Catalyst 18 the internal `0.0.0.0` address used to host the `BlazorWebView`'s content no longer works and causes the `BlazorWebView` to not load and render as an empty rectangle. +.NET 9 Preview 7 changes the default behavior for hosting content to be `localhost` on iOS and Mac Catalyst 18 and newer. Starting with iOS and Mac Catalyst 18 the internal `0.0.0.0` address used to host the `BlazorWebView`'s content no longer works and causes the `BlazorWebView` to not load and render as an empty rectangle. In order to continue using `0.0.0.0`, activate this behavior using a switch in `MauiProgram.cs`: @@ -410,7 +410,7 @@ To clean up the native views, call the `DisconnectHandler` method. layout2.DisconnectHandler(); ``` -When disconnecting, the action will continue down the tree until it completes or arrives at a control that has set a manual policy. +When disconnecting, the action will continue down the tree until it completes or arrives at a control that has set a manual policy. ## New `ProcessTerminated` event on `WebView` Control @@ -422,7 +422,7 @@ When disconnecting, the action will continue down the tree until it completes or When working with remote notifications it is now easier to get insight into when a user registers or receives remove notifications. -* `ReceivedRemoteNotifications` - Invoked when a remote notification is received. +* `ReceivedRemoteNotifications` - Invoked when a remote notification is received. * `RegisteredForRemoteNotifications` - Invoked when the app has successfully registered for remote notifications. ```csharp @@ -462,7 +462,7 @@ For more information see the [App Lifecycle documentation](https://learn.microso Xcode sync (xcsync) is a tool that enables developers to leverage Xcode for managing Apple specific files with .NET projects including asset catalogs, plist, storyboard, and xib files. The tool has two main commandes to generates a temporary Xcode project from a .NET project and to synchronize changes to the Xcode files back to the .NET project for iOS, tvOS, macOS, or Mac Catalyst. -To generate or sync these files you can use the `dotnet build` command with `xcsync-generate` or `xcsync-sync` and passing in a project file and additional parameters for the project TFM in a multi-targeted project, Xcode location, and verbosity. +To generate or sync these files you can use the `dotnet build` command with `xcsync-generate` or `xcsync-sync` and passing in a project file and additional parameters for the project TFM in a multi-targeted project, Xcode location, and verbosity. ```bash dotnet build /t:xcsync-generate diff --git a/release-notes/9.0/preview/preview7/libraries.md b/release-notes/9.0/preview/preview7/libraries.md index cb58eca9933..7629df200f6 100644 --- a/release-notes/9.0/preview/preview7/libraries.md +++ b/release-notes/9.0/preview/preview7/libraries.md @@ -19,15 +19,15 @@ New in .NET Libraries with this release: Libraries updates in .NET 9 Preview 7: -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/libraries.md) +- [Release notes](libraries.md) - [What's new in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation .NET 9 Preview 7: - [Discussion](https://aka.ms/dotnet/9/preview7) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/README.md) -- [Runtime release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/runtime.md) -- [SDK release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/sdk.md) +- [Release notes](README.md) +- [Runtime release notes](runtime.md) +- [SDK release notes](sdk.md) ## Removal of `BinaryFormatter` is complete @@ -270,7 +270,7 @@ XPS documents coming from a V4 XPS virtual printer could not be opened using the ## Marking `Tensor` as `[Experimental]` -We announced the [addition of `Tensor`](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview4/libraries.md#new-tensort-type) earlier in .NET 9. Adding new built-in types for exchanging tensor data across libraries and allowing accelerated handling for core operations is an important but large undertaking. The work done in .NET 9 currently encompasses 8 types and nearly 600 new public APIs, many of which are generic and can support a `T` that is arbitrary or constrained to one of the [generic math interfaces](https://learn.microsoft.com/en-us/dotnet/standard/generics/math). +We announced the [addition of `Tensor`](../preview4/libraries.md#new-tensort-type) earlier in .NET 9. Adding new built-in types for exchanging tensor data across libraries and allowing accelerated handling for core operations is an important but large undertaking. The work done in .NET 9 currently encompasses 8 types and nearly 600 new public APIs, many of which are generic and can support a `T` that is arbitrary or constrained to one of the [generic math interfaces](https://learn.microsoft.com/dotnet/standard/generics/math). Due to the size of this work and the recognized importance of it to the long term capability of the .NET ecosystem, it has been decided to mark these new APIs as `[Experimental]` (see https://learn.microsoft.com/dotnet/api/system.diagnostics.codeanalysis.experimentalattribute) for .NET 9 and to plan on supporting them officially in .NET 10 instead. This is being done to allow time for additional feedback from the community and important libraries in the .NET ecosystem that plan on taking advantage of the provided functionality. It also gives us additional time to coordinate with improvements in the C# language to ensure a great end-to-end experience. diff --git a/release-notes/9.0/preview/preview7/runtime.md b/release-notes/9.0/preview/preview7/runtime.md index 66fbabff9a8..a113fbf692a 100644 --- a/release-notes/9.0/preview/preview7/runtime.md +++ b/release-notes/9.0/preview/preview7/runtime.md @@ -10,21 +10,21 @@ Runtime updates in .NET 9 Preview 7: -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/runtime.md) +- [Release notes](runtime.md) - [What's new in the .NET Runtime in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation .NET 9 Preview 7: - [Discussion](https://aka.ms/dotnet/9/preview7) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/README.md) -- [Libraries release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/libraries.md) -- [SDK release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/sdk.md) +- [Release notes](README.md) +- [Libraries release notes](libraries.md) +- [SDK release notes](sdk.md) ## ARM64 SVE Support .NET 9 introduces experimental support for the [Scalable Vector Extension (SVE)](https://en.wikipedia.org/wiki/AArch64#Scalable_Vector_Extension_(SVE)), a SIMD instruction set for ARM64 CPUs. .NET already supports the [NEON instruction set](https://en.wikipedia.org/wiki/AArch64#AArch64_features), so on NEON-capable hardware, your applications can leverage 128-bit vector registers. SVE supports flexible vector lengths all the way up to 2048 bits, unlocking more data processing per instruction; in .NET 9, `System.Numerics.Vector` is 128 bits wide when targeting SVE, and future work will enable scaling of its width to match the target machine's vector register size. You can accelerate your .NET applications on SVE-capable hardware using the new `System.Runtime.Intrinsics.Arm.Sve` APIs. To learn more about SVE in .NET, check out [dotnet/runtime #93095](https://github.com/dotnet/runtime/issues/93095), and to track which APIs are completed, check out [dotnet/runtime #99957](https://github.com/dotnet/runtime/issues/99957). -Note that SVE support in .NET 9 is experimental. The APIs under `System.Runtime.Intrinsics.Arm.Sve` are marked with [`ExperimentalAttribute`](https://learn.microsoft.com/en-us/dotnet/fundamentals/apicompat/preview-apis#experimentalattribute), which means they are subject to change in future releases. Additionally, debugger stepping and breakpoints through SVE-generated code may not function properly, resulting in application crashes or corruption of data. +Note that SVE support in .NET 9 is experimental. The APIs under `System.Runtime.Intrinsics.Arm.Sve` are marked with [`ExperimentalAttribute`](https://learn.microsoft.com/dotnet/fundamentals/apicompat/preview-apis#experimentalattribute), which means they are subject to change in future releases. Additionally, debugger stepping and breakpoints through SVE-generated code may not function properly, resulting in application crashes or corruption of data. ## Post-Indexed Addressing on ARM64 In .NET code, we frequently use index variables to read sequential regions of memory. @@ -59,7 +59,7 @@ Here's what the updated assembly looks like: ldr w0, [x1], #0x04 ``` -The `#0x04` at the end means the address in `x1` will be incremented by four bytes after it is used to load an integer into `w0`. In Preview 7, RyuJIT now uses post-indexed addressing when generating ARM64 code. While x64 does not support post-indexed addressing, Preview 2 introduced [induction variable widening](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview2/runtime.md#loop-optimizations-iv-widening), which is similarly useful for optimizing memory accesses with loop index variables. +The `#0x04` at the end means the address in `x1` will be incremented by four bytes after it is used to load an integer into `w0`. In Preview 7, RyuJIT now uses post-indexed addressing when generating ARM64 code. While x64 does not support post-indexed addressing, Preview 2 introduced [induction variable widening](../preview2/runtime.md#loop-optimizations-iv-widening), which is similarly useful for optimizing memory accesses with loop index variables. To learn more about post-indexed addressing support in RyuJIT, check out [dotnet/runtime #105181](https://github.com/dotnet/runtime/pull/105181). @@ -187,7 +187,7 @@ Dynamic Adaptation To Application Sizes ([DATAS](https://github.com/dotnet/runti The existing Server GC mode takes a different approach than DATAS. It aims to improve throughput and treats the process as the dominant one on the machine. The amount of allocations it allows before triggering the next GC is based on throughput, not application size. So it can grow the heap very aggressively if it needs to and there’s memory available. This can result in very different heap sizes when you run the process on machines with different hardware specs. What some folks have observed is the heap can grow much bigger when they move their process to a machine with many more cores and more memory. Server GC also doesn’t necessarily adjust the heap down aggressively if the workload becomes much lighter. -Because DATAS aims to adapt to the application memory requirement, it means if your application is doing the same work, the heap size should be the same or similar when you run your app on machines with different specs. And if your workload becomes lighter or heavier the heap size is adjusted accordingly. +Because DATAS aims to adapt to the application memory requirement, it means if your application is doing the same work, the heap size should be the same or similar when you run your app on machines with different specs. And if your workload becomes lighter or heavier the heap size is adjusted accordingly. DATAS helps most with bursty workloads where the heap size should be adjusted according to how demanding the workload is, particularly as demand decreases. This is especially important in memory-constrained environments where it’s important to fit more processes when some processes’ workloads lighten. It also helps with capacity planning. @@ -205,7 +205,7 @@ To achieve this adaptation and still maintain reasonable performance, DATAS does ### Benchmark Results -Here are some benchmarks results for TechEmpower JSON and Fortunes Benchmarks. Notice the significant reduction in working set when running the benchmarks on a 48 core machine with Linux. Max throughput (measured in rps) shows about a 2-3% reduction, but with an working set improvement of 80%+. +Here are some benchmarks results for TechEmpower JSON and Fortunes Benchmarks. Notice the significant reduction in working set when running the benchmarks on a 48 core machine with Linux. Max throughput (measured in rps) shows about a 2-3% reduction, but with an working set improvement of 80%+. ![Working Set Improvement](./media/workingset.png) @@ -214,11 +214,11 @@ With DATAS enabled # of Gen0 and Gen1 GCs are significantly higher ![Gen0 and Gen1 Counts](./media/Gen0_GC.png) -Full .NET TechEmpower benchmark results are published [here](https://aka.ms/aspnet/benchmarks) +Full .NET TechEmpower benchmark results are published [here](https://aka.ms/aspnet/benchmarks) ### How to Disable DATAS -If you notice a reduction in throughput, DATAS can be disabled using the following: +If you notice a reduction in throughput, DATAS can be disabled using the following: - `DOTNET_GCDynamicAdaptationMode=0` environment variable - setting `System.GC.DynamicAdaptationMode` to `0` in `runtimeconfig.json` diff --git a/release-notes/9.0/preview/preview7/sdk.md b/release-notes/9.0/preview/preview7/sdk.md index 53a25d1e580..4a137b4bf98 100644 --- a/release-notes/9.0/preview/preview7/sdk.md +++ b/release-notes/9.0/preview/preview7/sdk.md @@ -9,15 +9,15 @@ SDK updates in .NET 7 Preview 7: -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/sdk.md) +- [Release notes](sdk.md) - [What's new in the .NET Runtime in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation .NET 9 Preview 7: - [Discussion](https://aka.ms/dotnet/9/preview7) -- [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/README.md) -- [Runtime release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/runtime.md) -- [Libraries release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview7/libraries.md) +- [Release notes](README.md) +- [Runtime release notes](runtime.md) +- [Libraries release notes](libraries.md) ## Container publishing improvements for insecure registries @@ -36,7 +36,7 @@ Requirements (depending on your environment): ## More consistent environment variables for container publishing -[@kasperk81](https://github.com/kasperk81) noticed that the environment variables that the container publish tooling use to control some of the finer aspects of registry communication and security were not aligned with the existing conventions. +[@kasperk81](https://github.com/kasperk81) noticed that the environment variables that the container publish tooling use to control some of the finer aspects of registry communication and security were not aligned with the existing conventions. Most of the rest of the CLI uses the `DOTNET` 'namespace' for environment variables, but the container tooling used `SDK` instead. They helpfully [unified our environment variables to the `DOTNET` version](https://github.com/dotnet/sdk/pull/41769), while keeping support for the older `SDK` prefix. Going forward, please use the `DOTNET` prefix for environment variables, as we will eventually deprecate the older form. ## Introduction of Workload Sets for more control over workloads @@ -68,7 +68,7 @@ If you need to change back for any reason, you can run the same command with `ma ## Mitigating analyzer mismatch issues aka 'torn SDK' -Many users install the .NET SDK and Visual Studio at different cadences, and while this flexibility is one of our goals, it can lead to problems for tooling that needs to interop between the two environments. +Many users install the .NET SDK and Visual Studio at different cadences, and while this flexibility is one of our goals, it can lead to problems for tooling that needs to interop between the two environments. One example of this kind of tooling is Roslyn Analyzers. Analyzer authors have to code for specific versions of Roslyn, but which versions are available and which is used by a given build has been unclear in the past. @@ -78,9 +78,9 @@ We call this kind of mismatch a 'torn SDK'. When you are in this torn state, you >CSC : warning CS9057: The analyzer assembly '..\dotnet\sdk\8.0.200\Sdks\Microsoft.NET.Sdk.Razor\source-generators\Microsoft.CodeAnalysis.Razor.Compiler.SourceGenerators.dll' references version '4.9.0.0' of the compiler, which is newer than the currently running version '4.8.0.0'. ``` -Starting in this release, we have adopted a method of detecting and automatically adjusting for this 'torn' state. +Starting in this release, we have adopted a method of detecting and automatically adjusting for this 'torn' state. -You can read more about it [in our documentation for the effort](https://github.com/dotnet/sdk/blob/main/documentation/general/torn-sdk.md). +You can read more about it [in our documentation for the effort](https://github.com/dotnet/sdk/blob/main/documentation/general/torn-sdk.md). In short, the SDK's MSBuild logic embeds the version of MSBuild it shipped with, and we can use that information to detect when the SDK is running in an environment other than that version. diff --git a/release-notes/9.0/preview/rc1/9.0.0-rc.1.md b/release-notes/9.0/preview/rc1/9.0.0-rc.1.md index da0910eeac3..ce93fb92616 100644 --- a/release-notes/9.0/preview/rc1/9.0.0-rc.1.md +++ b/release-notes/9.0/preview/rc1/9.0.0-rc.1.md @@ -724,13 +724,13 @@ Microsoft.EntityFrameworkCore.Analyzers | 9.0.0-rc.1.24451.1 [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ -[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/Preview/rc1/9.0.0-rc.1.md +[release-notes]: 9.0.0-rc.1.md [checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-rc.1-sha.txt [checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-rc.1-sha.txt [linux-install]: https://learn.microsoft.com/dotnet/core/install/linux -[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md +[linux-setup]: ../../install-linux.md [dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-rc-1 [aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-rc-1/ diff --git a/release-notes/9.0/preview/rc1/aspnetcore.md b/release-notes/9.0/preview/rc1/aspnetcore.md index 99d4498acb5..8e15cbd0d69 100644 --- a/release-notes/9.0/preview/rc1/aspnetcore.md +++ b/release-notes/9.0/preview/rc1/aspnetcore.md @@ -10,7 +10,7 @@ Here's a summary of what's new in ASP.NET Core in this release: ASP.NET Core updates in .NET 9 Release Candidate 1: -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/rc1/aspnetcore.md) +* [Release notes](aspnetcore.md) * [What's new in ASP.NET Core in .NET 9](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) documentation. * [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/9.0#aspnet-core) * [Roadmap](https://aka.ms/aspnet/roadmap) @@ -18,11 +18,11 @@ ASP.NET Core updates in .NET 9 Release Candidate 1: .NET 9 Release Candidate 1: * [Discussion](https://aka.ms/dotnet/9/rc1) -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/rc1/README.md) +* [Release notes](README.md) ## Improvements to SignalR distributed tracing -.NET 9 preview 6 added [initial support for SignalR distributed tracing](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview6/aspnetcore.md#improved-distributed-tracing-for-signalr). RC1 improves SignalR tracing with new capabilities: +.NET 9 preview 6 added [initial support for SignalR distributed tracing](../preview6/aspnetcore.md#improved-distributed-tracing-for-signalr). RC1 improves SignalR tracing with new capabilities: * .NET SignalR client has an `ActivitySource` named "Microsoft.AspNetCore.SignalR.Client". Hub invocations now create a client span. Note that other SignalR clients, such as the JavaScript client, don't support tracing. This feature will be added to more clients in future releases. * Hub invocations from the client to the server now support [context propagation](https://opentelemetry.io/docs/concepts/context-propagation/). Propagating the trace context enables true distributed tracing. It's now possible to see invocations flow from the client to the server and back. diff --git a/release-notes/9.0/preview/rc1/dotnetmaui.md b/release-notes/9.0/preview/rc1/dotnetmaui.md index 536d97bfc5c..142a8549ab2 100644 --- a/release-notes/9.0/preview/rc1/dotnetmaui.md +++ b/release-notes/9.0/preview/rc1/dotnetmaui.md @@ -9,21 +9,21 @@ Here's a summary of what's new in .NET MAUI in this release: This release is focused on quality, housekeeping, and resolving issues to stabilize the impending GA release. -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/rc1/dotnetmaui.md) +* [Release notes](dotnetmaui.md) * [What's new in .NET MAUI in .NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation. * [GitHub Release](https://aka.ms/maui9rc1) .NET 9 Release Candidate 1: * [Discussion](https://aka.ms/dotnet/9/rc1) -* [Release notes](https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/rc1/README.md) +* [Release notes](README.md) ## Added `HorizontalTextAlignment.Justify` In addition to `Start`, `Center`, and `End` you can now use `Justify` to horizontally align your text in `Label`s. ```xml -