diff --git a/README.md b/README.md index 2a647ba98e..07dfca4082 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ The following [.NET releases](./releases.md) are currently supported: | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | +| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.1][8.0.1] | November 10, 2026 | | [.NET 7](release-notes/7.0/README.md) | [November 8, 2022](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/) | [STS][policies] | [7.0.15][7.0.15] | May 14, 2024 | | [.NET 6](release-notes/6.0/README.md) | [November 8, 2021](https://devblogs.microsoft.com/dotnet/announcing-net-6/) | [LTS][policies] | [6.0.26][6.0.26] | November 12, 2024 | @@ -23,6 +24,7 @@ The following [.NET releases](./releases.md) are currently supported: You can find release notes for all releases, including out-of-support releases, in the [release-notes](release-notes) directory. +[9.0.0-preview.1]: release-notes/9.0/preview/preview1/9.0.0-preview.1.md [8.0.1]: release-notes/8.0/8.0.1/8.0.1.md [7.0.15]: release-notes/7.0/7.0.15/7.0.15.md [6.0.26]: release-notes/6.0/6.0.26/6.0.26.md diff --git a/release-notes/9.0/README.md b/release-notes/9.0/README.md index 8956c0045f..91be3caeaa 100644 --- a/release-notes/9.0/README.md +++ b/release-notes/9.0/README.md @@ -1,5 +1,17 @@ # .NET 9 -.NET 9 is a [Standard Term Support (STS)](../../release-policies.md) release. +[.NET 9](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/) is a [Standard Term Support (STS)](../../release-policies.md) release and will be supported for 18 months, from November 12th, 2024 to May 13th, 2026. It is [supported](../../support.md) on [multiple operating systems](supported-os.md). + +- [Downloads](https://dotnet.microsoft.com/download/dotnet/9.0) +- [Linux Package Managers](https://learn.microsoft.com/dotnet/core/install/linux) +- [Containers](https://mcr.microsoft.com/catalog?search=dotnet/) +- [Supported OSes](supported-os.md) +- [Known Issues](known-issues.md) +- [Installation instructions](install.md) + +## Releases + +| Date | Release | +| :-- | :-- | +| 2023/02/13 | [9.0.0 Preview 1](preview/preview1/README.md) | -More information coming soon. diff --git a/release-notes/9.0/get-started.md b/release-notes/9.0/get-started.md new file mode 100644 index 0000000000..b7437e4ac6 --- /dev/null +++ b/release-notes/9.0/get-started.md @@ -0,0 +1,14 @@ + +# Get Started + +To get started with .NET 9, [install the .NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0). + +If you're on Windows using Visual Studio, we recommend installing the latest [Visual Studio 2022 preview](https://visualstudio.microsoft.com/vs/preview/), or get started with Visual Studio Code and the [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit) extension. + + +## .NET MAUI + +Install the [.NET MAUI workload](install-workloads.md#net-maui) + + + diff --git a/release-notes/9.0/install-linux.md b/release-notes/9.0/install-linux.md new file mode 100644 index 0000000000..d31f4687cc --- /dev/null +++ b/release-notes/9.0/install-linux.md @@ -0,0 +1,64 @@ +# .NET 9 installation instructions for Linux + +The following instructions demonstrate installing .NET 9 on Linux. These instructions augment the more general [.NET install instructions](install.md), including installing with `.tar.gz` files, that work on multiple operating systems. + +[Linux package dependencies](linux-packages.md) describes the set of packages required to run .NET on Linux. + +## Distributions + +The following distributions are available for Linux: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. + +We recommend you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to exclusively run applications. + +## Downloads + +Each of the distributions can be downloaded from: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](README.md) + +[Container images](https://hub.docker.com/r/microsoft/dotnet/) are provided for Linux (Alpine, Debian, and Ubuntu). + +## Install using deb/rpm packages + +Preview release installers are not available from the Microsoft package repositories. The steps below provide an easy way to install .NET 9 using your Distro package manager. + +**Note:** `curl` must be available on the system before running the following steps. Once you have confirmed that `curl` is available, complete the steps to download and install the latest .NET 9 Preview SDK and Runtime. + +1. Create a directory to use for the download location and change into that directory. For example, `mkdir $HOME/dotnet_install && cd $HOME/dotnet_install` +2. Run `curl -L https://aka.ms/install-dotnet-preview -o install-dotnet-preview.sh` +3. Run the script with `sudo bash install-dotnet-preview.sh` + +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). +- 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. +- Expands the tar.gz into ./dotnet_packages +- Attempts to install the contents of ./dotnet_packages using `rpm` or `dpkg`, as appropriate, for the detected distribution. + +## Installing from a binary archive + +You can install .NET with a binary archive. This option is required if you want to install .NET for a single user. It is also recommended if you want to install .NET temporarily. + +The following workflow demonstrates downloading, unpacking, configuring, and running the .NET SDK from the command line. You may choose to do some of these tasks via the browser and functionality provided by your operating system. + +```bash +~# curl -Lo dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz +~# mkdir dotnet +~# tar -C dotnet -xf dotnet.tar.gz +~# rm dotnet.tar.gz +~# export DOTNET_ROOT=~/dotnet +~# export PATH=$PATH:~/dotnet +~# dotnet --version +9.0.100-preview.1.24101.2 +``` + +The `DOTNET_ROOT` environment variable is required to launch an application with their executables (like `myapp.exe`). The executables look for this environment variable to find the runtime if it isn't installed in its regular location. The `PATH` environment variable must be updated if you want to use `dotnet` without absolute paths to its location. Setting both of these environment variables is optional. + +You can add your .NET install location permanently to your path if you'd like. diff --git a/release-notes/9.0/install-macos.md b/release-notes/9.0/install-macos.md new file mode 100644 index 0000000000..e036ab098e --- /dev/null +++ b/release-notes/9.0/install-macos.md @@ -0,0 +1,49 @@ +# .NET 9 installation instructions for macOS + +The following instructions demonstrate installing .NET 9 on macOS. These instructions augment the more general [.NET install instructions](install.md), including installing with `.tar.gz` files, that work on multiple operating systems. + +## Distributions + +The following distributions are available for Linux: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. + +We recommend you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to exclusively run applications. + +## Downloads + +Each of the distributions can be downloaded from: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](README.md) + +[Container images](https://hub.docker.com/r/microsoft/dotnet/) are provided for Linux (Alpine, Debian, and Ubuntu). + +## Install using PKG + +You can install any of the distributions with PKG. The following image demonstrates installing the .NET SDK. After launching the PKG, click "Continue" and you will be taken through the process of installing the SDK. + +![image](https://user-images.githubusercontent.com/2608468/112776700-355d5280-8ff5-11eb-979c-8cab273f5f97.png) + +## Installing from a binary archive + +You can install .NET with a binary archive. This option is required if you want to install .NET for a single user. It is also recommended if you want to install .NET temporarily. + +The following workflow demonstrates downloading, unpacking, configuring, and running the .NET SDK from the command line. You may choose to do some of these tasks via the browser and functionality provided by your operating system. + +```bash +~# curl -Lo dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz +~# mkdir dotnet +~# tar -C dotnet -xf dotnet.tar.gz +~# rm dotnet.tar.gz +~# export DOTNET_ROOT=~/dotnet +~# export PATH=$PATH:~/dotnet +~# dotnet --version +9.0.100-preview.1.24101.2 +``` + +The `DOTNET_ROOT` environment variable is required to launch an application with their executables (like `myapp.exe`). The executables look for this environment variable to find the runtime if it isn't installed in its regular location. The `PATH` environment variable must be updated if you want to use `dotnet` without absolute paths to its location. Setting both of these environment variables is optional. + +You can add your .NET install location permanently to your path if you'd like. diff --git a/release-notes/9.0/install-windows.md b/release-notes/9.0/install-windows.md new file mode 100644 index 0000000000..2dff2de5aa --- /dev/null +++ b/release-notes/9.0/install-windows.md @@ -0,0 +1,64 @@ +# .NET 9 installation instructions for Windows + +The following instructions demonstrate installing .NET 9 on Windows. These instructions augment the more general [.NET install instructions](install.md), including installing with `.zip` files, that work on multiple operating systems. + +## Distributions + +The following distributions are available for Windows: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- .NET Desktop Runtime: includes the .NET runtime and Windows desktop libraries, enabling running console, Windows Forms, and Windows Presentation Framework (WPF) applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. +- ASP.NET Core Hosting Bundle: includes the ASP.NET Core runtime and IIS support (for running both in- and out-of-process with IIS). + +We recommend you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to exclusively run applications. + +## Downloads + +Each of the distributions can be downloaded from: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](README.md) + +[Container images](https://hub.docker.com/_/microsoft-dotnet) are provided for Windows (Nano Server and Server Core) and Linux (Alpine, Debian, and Ubuntu). + +## Windows Package Manager CLI (winget) + +You can now install .NET updates using the Windows Package Manager CLI (winget): + +- To install the .NET 9 runtime: `winget install dotnet-runtime-9` +- To install the .NET 9 SDK: `winget install dotnet-sdk-9` +- To update an existing installation: `winget upgrade` + +See [Install with Windows Package Manager (winget)](https://learn.microsoft.com/dotnet/core/install/windows?tabs=net70#install-with-windows-package-manager-winget) for more information. + +## Install using MSI + +You can install any of the distributions with MSI. The following image demonstrates installing the .NET SDK. After launching the MSI, click "Install" and you will be taken through the process of installing the SDK. + +![dotnet installer](https://github.com/dotnet/core/assets/44339330/62cbf002-89ab-4d63-9f0a-69460a6ab3d0) + +## Windows Server Hosting with IIS + +You should install the Hosting Bundle MSI if you want to enable hosting ASP.NET Core with IIS. + +## Installing from a binary archive + +You can install .NET with a binary archive. This option is required if you want to install .NET for a single user. It is also recommended if you want to install .NET temporarily. + +The following workflow demonstrates downloading, unpacking, configuring, and running the .NET SDK from the command line. You may choose to do some of these tasks via the browser and functionality provided by your operating system. + +```console +C:\>curl -Lo dotnet.zip https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe +C:\>tar -C dotnet -xf dotnet.zip +C:\>del dotnet.zip +C:\>set DOTNET_ROOT=C:\dotnet +C:\>set PATH=%PATH%;C:\dotnet +C:\>dotnet --version +9.0.100-preview.1.24101.2 +``` + +The `DOTNET_ROOT` environment variable is required to launch an application with their executables (like `myapp.exe`). The executables look for this environment variable to find the runtime if it isn't installed in its regular location. The `PATH` environment variable must be updated if you want to use `dotnet` without absolute paths to its location. Setting both of these environment variables is optional. + +You can add your .NET install location permanently to your path if you'd like. diff --git a/release-notes/9.0/install-workloads.md b/release-notes/9.0/install-workloads.md new file mode 100644 index 0000000000..c6a2e19836 --- /dev/null +++ b/release-notes/9.0/install-workloads.md @@ -0,0 +1,25 @@ +# .NET Workloads + +After installing .NET 9 previews, you can install workloads by following these instructions. For more information read through the [documentation](https://learn.microsoft.com/dotnet/core/tools/dotnet-workload). + +## .NET MAUI + +Install the .NET MAUI workload: + +``` +> dotnet workload install maui +... +Successfully installed workload(s) maui. +``` + +Verify installation: + +``` +> dotnet workload list + +Installed Workload Id Manifest Version Installation Source +-------------------------------------------------------------------------------------------- +maui 9.0.0-preview.1.9973/9.0.100-preview.1 SDK 9.0.100-preview.1 +``` + +Installing the `maui` workload includes `android`, `ios`, and `maccatalyst` workloads which may be installed independently. Run `dotnet workload search` for a full list of available workload configurations. \ No newline at end of file diff --git a/release-notes/9.0/install.md b/release-notes/9.0/install.md new file mode 100644 index 0000000000..6772831a4d --- /dev/null +++ b/release-notes/9.0/install.md @@ -0,0 +1,95 @@ +# .NET 9 installation instructions + +Concise install instructions are provided in this document and may be augmented in [release notes](README.md) for a given update. Complete [.NET installation instructions for Windows, macOS, and Linux](https://learn.microsoft.com/dotnet/core/install/) are provided for supported releases in [.NET documentation](https://learn.microsoft.com/dotnet). + +Operating system specific instructions: + +- [Linux](install-linux.md) +- [macOS](install-macos.md) +- [Windows](install-windows.md) + +## [Using dotnet-install-scripts](https://learn.microsoft.com/dotnet/core/tools/dotnet-install-script) + +### Install the latest preview version of the 9.0.1xx SDK to the specified location + +Windows: + +```console +./dotnet-install.ps1 -Channel 9.0.1xx -Quality preview -InstallDir C:\cli +``` + +macOS/Linux: + +```console +./dotnet-install.sh --channel 9.0.1xx --quality preview --install-dir ~/cli +``` + +### Install the latest preview version of the 9.0.0 runtime to the specified location + +Windows: + +```console +.\.dotnet\dotnet-install.ps1 -Channel 9.0 -Runtime dotnet -Quality preview -InstallDir c:\cli +``` + +macOs/Linux: + +```console +./dotnet-install.sh --runtime dotnet --channel 9.0 --quality preview --install-dir ~/cli +``` + +## Distributions + +The following distributions are available for all operating systems: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. + +We recommend that you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to (exclusively) run applications. + +## Downloads + +Download links are provided for each of the distributions at: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](preview/README.md) + +[Container images](https://hub.docker.com/r/microsoft/dotnet/) are provided for Windows (Nano Server, and Server Core) and Linux (Alpine, Debian, and Ubuntu). + +## What's installed? + +You can determine what is installed on your machine (assuming .NET is installed) using the following approach, with `dotnet --info`. + +```console +C:\>dotnet --info +.NET SDK (reflecting any global.json): +Version: 9.0.100-preview.1.24101.2 + Commit: 0a5360315a + +Runtime Environment: + OS Name: Mac OS X + OS Version: 12.6 + OS Platform: Darwin + RID: osx.12-x64 + Base Path: /usr/local/share/dotnet/x64/sdk/9.0.100-preview.1.24101.2/ + +Host: + Version: 9.0.0-preview.1.24080.9 + Architecture: x64 + Commit: 550605cc93 + +.NET SDKs installed: +9.0.100-preview.1.24101.2 [/usr/local/share/dotnet/x64/sdk] + +.NET runtimes installed: + Microsoft.AspNetCore.App 9.0.0-preview.1.24081.5 [/usr/local/share/dotnet/x64/shared/Microsoft.AspNetCore.App] + Microsoft.NETCore.App 9.0.0-preview.1.24080.9 [/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App] +``` + +If you have the .NET SDK installed, you can also use `dotnet --version` as demonstrated in the following example: + +```console +C:\>dotnet --version +9.0.100-preview.1.24101.2 +``` diff --git a/release-notes/9.0/linux-packages.md b/release-notes/9.0/linux-packages.md new file mode 100644 index 0000000000..29591f1b40 --- /dev/null +++ b/release-notes/9.0/linux-packages.md @@ -0,0 +1,107 @@ +# .NET 9 Linux package dependencies + +.NET 9 has several dependencies that must be satisfied to run .NET apps. The commands to install these libraries are listed for multiple Linux distributions. + +Feel free to contribute packages for distributions not (yet) listed in this document, including ones not supported by the .NET Team. + +Tips: + +- [runtime-deps container images](https://github.com/dotnet/dotnet-docker/tree/main/src/runtime-deps) installs these same packages. You can look at those dockerfiles. +- [pkgs.org](https://pkgs.org/) is a useful site for searching for packages, to find the one for your distribution. + +## Packages + +.NET depends on the following packages. + +- [GNU C Library (glibc)](https://www.gnu.org/software/libc/libc.html) +- [GNU C++ Library](https://gcc.gnu.org/onlinedocs/libstdc++/) +- [GCC low-level runtime library](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html) +- [ICU](http://site.icu-project.org/) +- [Kerberos](http://web.mit.edu/kerberos/) +- [Open SSL](https://www.openssl.org/) +- [zlib compression library](https://www.zlib.net/) + +You do not need to install ICU if you [enable globalization invariant mode](https://github.com/dotnet/runtime/blob/main/docs/design/features/globalization-invariant-mode.md#enabling-the-invariant-mode). + +If your app relies on `https` endpoints, you'll also need to install `ca-certificates`. + +## Alpine 3.19 +```bash +sudo apk add \ + libgcc \ + libssl3 \ + libstdc++ \ + zlib + ``` +## Debian 12 "bookworm" + +```bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc-s1 \ + libicu72 \ + libssl3 \ + libstdc++6 \ + tzdata \ + zlib1g \ + ``` +## Debian 11 "Bullseye" +``` bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu67 \ + libssl1.1 \ + libstdc++6 \ + zlib1g +``` + +## Ubuntu 23.10"Mantic" +``` bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc-s1 \ + libicu72 \ + libssl3 \ + libstdc++6 \ + tzdata \ + zlib1g \ +``` +## Ubuntu 22.04 "Jammy" + +``` bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc-s1 \ + libicu70 \ + libssl3 \ + libstdc++6 \ + tzdata \ + zlib1g \ +``` + + + +## Community supported distros + +The following distros are not supported by the .NET team. The following package information is provided on an as-is basis. Feel free to contribute package information for the distro you use .NET with if it isn't listed. + +### Arch Linux + +```bash +sudo pacman -Sy \ + glibc \ + gcc \ + krb5 \ + icu \ + openssl \ + libc++ \ + zlib +``` + +This set of packages was tested on the Arch and Manjaro. 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 new file mode 100644 index 0000000000..243470c69e --- /dev/null +++ b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md @@ -0,0 +1,166 @@ +# .NET 9 Preview 1 Binaries + +.NET 9 Preview 1 installers and binaries can be downloaded for the following product versions: + +- `.NET 9.0.0 Preview 1` +- `.NET SDK 9.0.100-preview.1.24101.2` + +See [README.md](README.md) for .NET 9 release notes and discussions. + +The latest .NET releases are always listed at [.NET Releases](../../README.md). + +## Downloads + +| | SDK Installer1 | SDK Binaries1 | Runtime Installer | Runtime Binaries | ASP.NET Core Runtime |Windows Desktop Runtime | +| --------- | :------------------------------------------: | :----------------------: | :---------------------------: | :-------------------------: | :-----------------: | :-----------------: | +| Windows | [x86][dotnet-sdk-win-x86.exe] \| [x64][dotnet-sdk-win-x64.exe] \| [Arm64][dotnet-sdk-win-arm64.exe] | [x86][dotnet-sdk-win-x86.zip] \| [x64][dotnet-sdk-win-x64.zip] \| [Arm64][dotnet-sdk-win-arm64.zip] | [x86][dotnet-runtime-win-x86.exe] \| [x64][dotnet-runtime-win-x64.exe] \| [Arm64][dotnet-runtime-win-arm64.exe] | [x86][dotnet-runtime-win-x86.zip] \| [x64][dotnet-runtime-win-x64.zip] \| [Arm64][dotnet-runtime-win-arm64.zip] | [x86][aspnetcore-runtime-win-x86.exe] \| [x64][aspnetcore-runtime-win-x64.exe] \|
[Hosting Bundle][dotnet-hosting-win.exe]2 | [x86][windowsdesktop-runtime-win-x86.exe] \| [x64][windowsdesktop-runtime-win-x64.exe] \| [Arm64][windowsdesktop-runtime-win-arm64.exe] | +| macOS | [x64][dotnet-sdk-osx-x64.pkg] \| [ARM64][dotnet-sdk-osx-arm64.pkg] | [x64][dotnet-sdk-osx-x64.tar.gz] \| [ARM64][dotnet-sdk-osx-arm64.tar.gz] | [x64][dotnet-runtime-osx-x64.pkg] \| [ARM64][dotnet-runtime-osx-arm64.pkg] | [x64][dotnet-runtime-osx-x64.tar.gz] \| [ARM64][dotnet-runtime-osx-arm64.tar.gz]| [x64][aspnetcore-runtime-osx-x64.tar.gz] \| [ARM64][aspnetcore-runtime-osx-arm64.tar.gz] | - |1 +| Linux | [Snap and Package Manager](../../install-linux.md) | [x64][dotnet-sdk-linux-x64.tar.gz] \| [Arm][dotnet-sdk-linux-arm.tar.gz] \| [Arm64][dotnet-sdk-linux-arm64.tar.gz] \| [Arm32 Alpine][dotnet-sdk-linux-musl-arm.tar.gz] \| [x64 Alpine][dotnet-sdk-linux-musl-x64.tar.gz] | [Packages (x64)][linux-packages] | [x64][dotnet-runtime-linux-x64.tar.gz] \| [Arm][dotnet-runtime-linux-arm.tar.gz] \| [Arm64][dotnet-runtime-linux-arm64.tar.gz] \| [Arm32 Alpine][dotnet-runtime-linux-musl-arm.tar.gz] \| [Arm64 Alpine][dotnet-runtime-linux-musl-arm64.tar.gz] \| [x64 Alpine][dotnet-runtime-linux-musl-x64.tar.gz] | [x64][aspnetcore-runtime-linux-x64.tar.gz]1 \| [Arm][aspnetcore-runtime-linux-arm.tar.gz]1 \| [Arm64][aspnetcore-runtime-linux-arm64.tar.gz]1 \| [x64 Alpine][aspnetcore-runtime-linux-musl-x64.tar.gz] | - | 1 | +| | [Checksums][checksums-sdk] | [Checksums][checksums-sdk] | [Checksums][checksums-runtime] | [Checksums][checksums-runtime] | [Checksums][checksums-runtime] | [Checksums][checksums-runtime] + + +1. Includes the .NET Runtime and ASP.NET Core Runtime +2. For hosting stand-alone apps on Windows Servers. Includes the ASP.NET Core Module for IIS and can be installed separately on servers without installing .NET Runtime. + + +The .NET SDK includes a matching updated .NET Runtime. Downloading the Runtime or ASP.NET Core packages is not needed when installing the SDK. + +You can check your .NET SDK version by running the following command. The example version shown is for this release. + +```console +$ dotnet --version +9.0.100-preview.1.24101.2 +``` + +## .NET Multi-Platform App UI (MAUI) Workload Downloads + + After installing the .NET SDK, you can install .NET MAUI using the `dotnet workload install` command: + + ```console + $ dotnet workload install maui + ``` + + The following workloads are also available to install individually: + + ```console + $ dotnet workload install android + $ dotnet workload install ios + $ dotnet workload install maccatalyst + $ dotnet workload install macos + $ dotnet workload install tvos + ``` + +## Docker Images + +The [.NET Docker images](https://hub.docker.com/_/microsoft-dotnet) have been updated for this release. The [.NET Docker samples](https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md) show various ways to use .NET and Docker together. You can use the following command to try running the latest .NET 9.0 release in containers: + +```console +docker run --rm mcr.microsoft.com/dotnet/samples +``` + +The following repos have been updated. + +* [dotnet/sdk](https://hub.docker.com/_/microsoft-dotnet-sdk/): .NET SDK +* [dotnet/aspnet](https://hub.docker.com/_/microsoft-dotnet-aspnet/): ASP.NET Core Runtime +* [dotnet/runtime](https://hub.docker.com/_/microsoft-dotnet-runtime/): .NET Runtime +* [dotnet/runtime-deps](https://hub.docker.com/_/microsoft-dotnet-runtime-deps/): .NET Runtime Dependencies +* [dotnet/samples](https://hub.docker.com/_/microsoft-dotnet-samples/): .NET Samples + +## Visual Studio Compatibility + +.NET 9 is compatible with [Visual Studio 17.10 latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://dotnet.microsoft.com/download/dotnet/9.0) and install the .NET 9 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 9.0 Preview releases. + + +## Feedback + +Your feedback is important and appreciated. We've created an issue at [dotnet/core #9161](https://github.com/dotnet/core/issues/9161) for your questions and comments. + +[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 + +[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 + +[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/ +[ef-blog]: https://devblogs.microsoft.com/dotnet/announcing-ef9-preview-1/ +[ef_bugs]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug +[ef_features]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement + +[aspnet_bugs]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+label%3ADone+label%3Abug +[aspnet_features]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+label%3ADone+label%3Aenhancement +[runtime_bugs]: https://github.com/dotnet/runtime/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A9.0+label%3Abug+ +[runtime_features]: https://github.com/dotnet/runtime/issues?q=is%3Aissue+milestone%3A9.0+label%3Aenhancement + +[sdk_bugs]: https://github.com/dotnet/sdk/issues?q=is%3Aissue+is%3Aclosed+milestone%3A9.0.1xx +[linux-packages]: ../install-linux.md + +[//]: # ( Runtime 9.0.0-preview.1.24080.9) +[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f59acd9f-cbed-4483-acde-2b42d1abac59/b6edd8e417a12e04849dded2c6143869/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d4e427bc-0a0f-4bd1-ae1f-79dfcb59ca8e/2c2ea76fdbbe8eb67029013741abc7c8/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d8daea8a-5a9d-4570-a860-cc9512946d66/bec3eb14bf7e22a3f99e21f6de8f5a7d/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/fe51f8fc-c30d-42ee-ae0b-e4866193c392/c8cecc468809fb235223f77dd19a0bfc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/00b22eac-00df-4aaa-9d9c-cb709afc7727/30b1bd396e681d1e7a5e0a2d034243a7/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/5a33892b-8d4c-4a35-831d-537ae7361c96/381e7d9f93758fbe2ffbda88927fdda5/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/57abc76c-46c8-4a76-b28d-108a097203dd/5796bd89648367c97adab3dbbc1ed1c2/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/6714615d-e422-4037-845a-c51a7cb7fd1c/f2efed74b142bcb681209cd5ca1f333b/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/a160565d-c481-4d36-b6df-e708b3273914/b31aaffa739731821684023da81c3b06/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/4f93597e-2697-4e50-a232-aa4d7c025ee4/4f35240f9b922d5b77f5c426e52c6e70/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/292f3bdc-8f10-43cc-9f54-a2740ea4f8e3/3aaa99d7befd139d2e5ac8c4b1fa6707/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/ae7b1529-8508-4202-be55-911ff8373186/b657e9299262515b194ecd8e95948b4d/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.zip + +[//]: # ( WindowsDesktop 9.0.0-preview.1.24081.3) +[windowsdesktop-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/5bcc6b35-e7e7-48b5-8cf2-277a60fc03e1/d5c4319efbf8e734f9dd11a358c03bd4/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.exe +[windowsdesktop-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/dc0ae26f-121d-4f63-a066-2333861699b7/45bb105bf0b9756495fe8d217f20c397/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.zip +[windowsdesktop-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/0c804185-7f86-4167-8703-8365d4939d72/02935dd20c741d36acb2c4eb2f2d5a21/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.exe +[windowsdesktop-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/9a297cbf-b641-4026-bca8-c68293c4fa8f/05b5d48d0ab2dc0cea2271f85c027c87/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.zip +[windowsdesktop-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/e3264b5f-c04b-427b-bf87-f9a264f53b0d/9f564a10f3af50fda2ec7ef2365b10d5/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.exe +[windowsdesktop-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/f0788f54-28b1-4a6d-ae86-1ead236dda97/37a05b2928ca436d0424aeb3d5ce4e4f/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.zip + +[//]: # ( ASP 9.0.0-preview.1.24081.5) +[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/27ce8ce5-a12e-47d5-b075-5c6034c86c40/6280dfd63195eeb410c4b70dff2d6ba9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e7783447-29c2-4866-bd77-fcc207fe2d73/a1d3af0e7af02e478e7f748011af1c48/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz +[aspnetcore-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/df69432f-27c5-450b-8afc-b7c9e35630d0/b5bc58a367875a214cf0c2c11ad174a9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d3f3a6eb-ef34-474b-944e-bed7bdb040cc/bccb1d80864eaaf576c25444525f9224/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz +[aspnetcore-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/f942b1be-4e32-43cd-914f-24bd19b7e583/262944dd0604ab13fc39d5387c59d53d/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-arm64.zip +[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/427d2f8c-58f0-4ebb-b3c2-8960b88d03a2/354461a9a09d96678505e964f829df42/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.exe +[aspnetcore-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/188d9bb7-2cd9-48b0-ae5f-c1919ebb0750/c1c4b6c669863c4f6fb5bbe9b6498ca8/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.zip +[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/cf9d5773-4262-4135-b8cd-10bdb1d64cf3/2999b27d44b816b58a966d74d43ca2f6/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.exe +[aspnetcore-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/d5423ff0-60fe-4e91-b083-5aefca88610a/962fb47ce2b483795e7eb33f08a4bc46/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.zip +[aspnetcore-runtime-composite-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/fbb4cdaa-f4de-4297-bce0-5af6e8a8148f/90c097d5618d4dd81d8d489abce1645b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm.tar.gz +[aspnetcore-runtime-composite-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/42ca6325-0b0c-4ee6-96c4-ac46affd2c64/20f5fc2ee183de3450cd33e06e5c8bf2/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/b5a23389-0099-4b0c-adde-6acbee4412b9/10a484a2160790fb695c8e2eb6d34d53/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c165e81b-e915-4c10-9fd1-86e1a3eaabf6/184c4299dc0fcf3b18a8e18f989a3d6b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/bede20f1-0e70-4a08-a1d8-df9613e7ddf3/aa55cc5fa325b264eb1cbda8eb45d8b7/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz +[aspnetcore-runtime-composite-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f7492292-937e-4ed2-aac1-1e1aee31c19b/f345f6bc48f5c073b048e2946d504041/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-x64.tar.gz +[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/6728a941-7b39-44af-b75c-91769681007d/0f062452057e1f17bcf2e1af7e2a5414/dotnet-hosting-9.0.0-preview.1.24081.5-win.exe + +[//]: # ( SDK 9.0.100-preview.1.24101.2) +[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f5e9fc40-e56c-4276-bcf8-3ecf80f7c1a7/94900c87e4529a89ac71d164665088c7/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4cf1722b-252e-4b66-a292-8aa97fdd0fec/7bc384770059a0348e4024d8b6489f3f/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/9fba65ff-def6-44cf-9230-1973c6a150a4/230b5ce3ae290ce5b10ed748b4f16dfc/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm64.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/744e137c-6902-426e-a494-1ec7bc71a8eb/c5a6d2c3d3c4e57c10da28992e34617a/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/f3a5f6fd-0b74-407c-a3cf-52792d76415f/53c4911d66ce7a8757c9d10c2c4d6414/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/5c78b512-56ef-49a1-b181-96ca60917c06/f6ad92dac6791efabedd862a495e7d4b/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/224503be-904d-4735-a447-b180b5a90c88/c267d21bd55b3108a226b0b458f02ab7/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/019706df-7545-4e5c-a8e0-1cd8ed308eca/eb7fe6847f4d9be5870ee0ea172d5025/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/4c55bc67-e478-4fdc-abe3-08b8dd64f4e4/9cf46c3018f477a93a8498850e6c122b/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/351f70a4-7eda-44e7-9e3b-44ee92e2b678/92d69c8dc447e2870f95ec535c3edf83/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/2a5790bb-b57d-4c34-bbf9-d93a589bc065/0456e1a4bd06579fccf6fb776dfa5dc6/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.zip diff --git a/release-notes/9.0/preview/preview1/README.md b/release-notes/9.0/preview/preview1/README.md new file mode 100644 index 0000000000..fda3245596 --- /dev/null +++ b/release-notes/9.0/preview/preview1/README.md @@ -0,0 +1,21 @@ +# .NET 9 Preview 1 - February 13, 2024 + +Welcome to .NET 9! We're happy to deliver the first preview of .NET 9 and share in-depth release notes that provide varied and impressive improvements for the first preview out of the gate. We also published [Our Vision for .NET 9](https://aka.ms/dotnet/9/vision), which describes some of the broad areas we intend to deliver on by the final November 2024 release. + +The latest .NET 9 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/9.0) and [.NET 9 Releases](../README.md). Instructions on getting started .NET 9 can be found on the [get started guide](../../get-started.md). + +You may be surprised to be reading about our release on GitHub & GitHub Discussions. Check out [Welcome to .NET Release News on GitHub Discussions!](https://github.com/dotnet/core/discussions/9131) to learn more about how we're approaching documenting and sharing preview releases. + +## Release notes & Discussions + +Check out the release notes and discussions for the new features in this release. + +* .NET 9: [Binaries](9.0.0-preview.1.md) | [Discussions](https://aka.ms/dotnet/9/preview1) +* .NET MAUI: [Release Notes](dotnetmaui.md) | [Discussions](https://github.com/dotnet/maui/discussions/categories/announcements) +* ASP.NET Core: [Release Notes](aspnetcore.md) | [Discussions](https://github.com/dotnet/aspnetcore/discussions/categories/announcements) +* .NET Data and EF Core: [Release Notes](efcoreanddata.md) | [Discussions](https://github.com/dotnet/efcore/issues/) +* Libraries [Release Notes](libraries.md) | [Discussions](https://github.com/dotnet/runtime/discussions/categories/announcements) +* Runtime: [Release Notes](runtime.md) | [Discussions](https://github.com/dotnet/runtime/discussions/categories/announcements) +* SDK: [Release Notes](sdk.md) | [Discussions](https://github.com/dotnet/runtime/discussions/categories/announcements) + +Use the discussions links to engage with teams. diff --git a/release-notes/9.0/preview/preview1/aspnetcore.md b/release-notes/9.0/preview/preview1/aspnetcore.md new file mode 100644 index 0000000000..c1915c675c --- /dev/null +++ b/release-notes/9.0/preview/preview1/aspnetcore.md @@ -0,0 +1,138 @@ +# ASP.NET Core updates in .NET 9 Preview 1 + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- Dictionary debugging improvements +- JSON polymorphic type support in SignalR Hubs +- General quality improvements and bug fixes + +ASP.NET Core updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/aspnetcore/discussions/categories/announcements) +* [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) + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## Dictionary debugging improvements + +The debugging display of dictionaries and other key-value collections has an improved layout. The key is displayed in the debugger's key column instead of being concatenated with the value. The following images show the old and new display of a dictionary in the debugger. + +Before: + +![Prior experience debugging dictionaries.](./dictionary-debugging-repo-before.png) + +After: + +![New experience debugging dictionaries.](./dictionary-debugging-repo-after.png) + +ASP.NET Core has many key-value collections. This improved debugging experience applies to: + +- HTTP headers +- Query strings +- Forms +- Cookies +- View data +- Route data +- Features + +## JSON polymorphic type support in SignalR Hubs + +Hub methods can now accept a base class instead of the derived class to enable polymorphic scenarios. The base type needs to be [annotated to allow polymorphism](https://learn.microsoft.com/dotnet/standard/serialization/system-text-json/polymorphism). + +```csharp +public class MyHub : Hub +{ + public void Method(JsonPerson person) + { + if (person is JsonPersonExtended) + { + } + else if (person is JsonPersonExtended2) + { + } + else + { + } + } +} + +[JsonPolymorphic] +[JsonDerivedType(typeof(JsonPersonExtended), nameof(JsonPersonExtended))] +[JsonDerivedType(typeof(JsonPersonExtended2), nameof(JsonPersonExtended2))] +private class JsonPerson +{ + public string Name { get; set; } + public Person Child { get; set; } + public Person Parent { get; set; } +} + +private class JsonPersonExtended : JsonPerson +{ + public int Age { get; set; } +} + +private class JsonPersonExtended2 : JsonPerson +{ + public string Location { get; set; } +} +``` + +## Community contributors + +Thank you contributors! ❤️ + +- [@abc516](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aabc516) +- [@afshinm](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aafshinm) +- [@aleksvujic](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aaleksvujic) +- [@alexbeeston](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aalexbeeston) +- [@alex-inftx](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aalex-inftx) +- [@aligoren](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aaligoren) +- [@alrz](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aalrz) +- [@bfriesen](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Abfriesen) +- [@brianrourkeboll](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Abrianrourkeboll) +- [@BurkusCat](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ABurkusCat) +- [@campersau](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Acampersau) +- [@charytech](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Acharytech) +- [@CollinAlpert](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ACollinAlpert) +- [@cremor](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Acremor) +- [@damirault](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Adamirault) +- [@DanielCordell](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ADanielCordell) +- [@davhdavh](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Adavhdavh) +- [@david-acker](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Adavid-acker) +- [@DavidKlempfner](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ADavidKlempfner) +- [@GeorgiPopovIT](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AGeorgiPopovIT) +- [@gfoidl](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Agfoidl) +- [@glen-84](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aglen-84) +- [@GreyFogSamurai](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AGreyFogSamurai) +- [@HavenDV](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AHavenDV) +- [@Issung](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AIssung) +- [@jirikanda](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Ajirikanda) +- [@joegoldman2](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Ajoegoldman2) +- [@Kahbazi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AKahbazi) +- [@kaotoby](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Akaotoby) +- [@kirides](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Akirides) +- [@KonH](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AKonH) +- [@ladeak](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aladeak) +- [@lofcz](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Alofcz) +- [@MaceWindu](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AMaceWindu) +- [@mariusz96](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Amariusz96) +- [@naeemaei](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Anaeemaei) +- [@onurkanbakirci](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aonurkanbakirci) +- [@paulomorgado](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Apaulomorgado) +- [@pentp](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Apentp) +- [@rameel](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Arameel) +- [@RyanGaudion](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ARyanGaudion) +- [@simon-curtis](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Asimon-curtis) +- [@tmds](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Atmds) +- [@vanillajonathan](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Avanillajonathan) +- [@vhatuncev](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Avhatuncev) +- [@viliml](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aviliml) +- [@Vishwanatha-HD](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AVishwanatha-HD) +- [@WeihanLi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AWeihanLi) +- [@Who-Code](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AWho-Code) +- [@xaberue](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Axaberue) +- [@zcxsythenew](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Azcxsythenew) +- [@zorix](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Azorix) diff --git a/release-notes/9.0/preview/preview1/dictionary-debugging-repo-after.png b/release-notes/9.0/preview/preview1/dictionary-debugging-repo-after.png new file mode 100644 index 0000000000..35dfb1eebb Binary files /dev/null and b/release-notes/9.0/preview/preview1/dictionary-debugging-repo-after.png differ diff --git a/release-notes/9.0/preview/preview1/dictionary-debugging-repo-before.png b/release-notes/9.0/preview/preview1/dictionary-debugging-repo-before.png new file mode 100644 index 0000000000..e92b685f23 Binary files /dev/null and b/release-notes/9.0/preview/preview1/dictionary-debugging-repo-before.png differ diff --git a/release-notes/9.0/preview/preview1/dotnetmaui.md b/release-notes/9.0/preview/preview1/dotnetmaui.md new file mode 100644 index 0000000000..9fbd126724 --- /dev/null +++ b/release-notes/9.0/preview/preview1/dotnetmaui.md @@ -0,0 +1,31 @@ +# .NET MAUI updates in .NET 9 Preview 1 + +The team is continuing work on core fundamentals of the .NET MAUI SDK to improve overall product quality. This includes expanding test coverage, end to end scenario testing, and bug fixing. + +.NET MAUI updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/maui/discussions/categories/announcements) +* [What's new in .NET MAUI in .NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation. +* [GitHub Release](https://github.com/dotnet/maui/releases/tag/untagged-e764fa1780e2dd618900) + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +> **Known Issue:** building `net8.0-*` target frameworks from .NET 9 does not work in preview 1. + +## .NET for Android + +This release was focused on quality. + +- [GitHub Release](https://github.com/xamarin/xamarin-android/releases/) + +## .NET for iOS + +This release was focused on quality. + +- [GitHub Release](https://github.com/xamarin/xamarin-macios/releases/) +- [Known issues](https://github.com/xamarin/xamarin-macios/wiki/Known-issues-in-.NET9) + +## Community Contributions + +Thanks to contributors [@jamesdlow](https://github.com/jamesdlow), [@WdeBruin](https://github.com/WdeBruin), [@artemvalieiev](https://github.com/artemvalieiev), [@Axemasta](https://github.com/Axemasta), [@tarasverq](https://github.com/tarasverq), [@simonrozsival](https://github.com/simonrozsival), [@JanKrivanek](https://github.com/JanKrivanek), [@symbiogenesis](https://github.com/symbiogenesis), [@Eden-Mor](https://github.com/Eden-Mor), [@MartyIX](https://github.com/MartyIX), [@albyrock87](https://github.com/albyrock87), [@Lehonti](https://github.com/Lehonti), [@eltociear](https://github.com/eltociear), and [@Youssef1313](https://github.com/Youssef1313). \ No newline at end of file diff --git a/release-notes/9.0/preview/preview1/efcoreanddata.md b/release-notes/9.0/preview/preview1/efcoreanddata.md new file mode 100644 index 0000000000..7e79b43579 --- /dev/null +++ b/release-notes/9.0/preview/preview1/efcoreanddata.md @@ -0,0 +1,58 @@ +# Entity Framework Core 9 Preview 1 + +The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 1. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. + +That being said, there are also several smaller enhancements included in preview 1. One of these might be just the thing you have been waiting for, so read on! + +Entity Framework Core 9 Preview 1: +* [Discussion](https://github.com/dotnet/efcore/issues) +* [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation. +* [Documentation & Samples](https://github.com/dotnet/EntityFramework.Docs) + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## Improved queries + +- Prune columns passed to OPENJSON's WITH clause + - EF9 removes unnecessary columns when calling `OPENJSON WITH`. + - See [_Prune columns from JSON_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#prune-columns-passed-to-openjsons-with-clause) in the What's New docs for full details including runnable samples. +- Translations involving GREATEST/LEAST + - Several new translations have been introduced that use the `GREATEST` and `LEAST` SQL functions. + - This includes translations of `Math.Min` and `Math.Max` in non-aggregate queries, as well as directly exposing the `GREATEST` and `LEAST` SQL functions in relational providers. + - See [_GREATEST/LEAST translations_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#prune-columns-passed-to-openjsons-with-clause) in the What's New docs for full details including runnable samples. +- Force or prevent query parameterization + - Except in some special cases, EF Core parameterizes variables used in a LINQ query, but includes constants in the generated SQL. EF9 allows constants to be translated to parameters and variables to be translated to constants on a case to case basis. + - See [_Force or prevent query parameterization_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#force-or-prevent-query-parameterization) in the What's New docs for full details including runnable samples. + +## ExecuteUpdate + +- Allow passing complex type instances to ExecuteUpdate + - EF9 supports directly passing complex type instances to `ExecuteUpdate` as sugar for updating all member values. + - See [_ExecuteUpdate for complex types_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#allow-passing-complex-type-instances-to-executeupdate) in the What's New docs for full details including runnable samples. + +## Temporal tables + +- Small migrations for temporal tables + - The migration created when changing an existing table into a temporal table has been reduced in size for EF9. + - See [_Improved temporal table migrations_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#improved-temporal-table-migrations) in the What's New docs for full details including runnable samples. + +## Model building + +- Make existing model building conventions more extensible + - In EF9, we have made it easier to extend some of the existing conventions, such as those for property and key discovery. + - See [_Extensible model building conventions_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#make-existing-model-building-conventions-more-extensible) in the What's New docs for full details including runnable samples. +- ApplyConfigurationsFromAssembly calls non-public constructors + - In EF9, we have both improved the error messages generated when this fails, and also enabled instantiation by non-public constructor. + - See [_ApplyConfigurationsFromAssembly calls non-public constructors_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#update-applyconfigurationsfromassembly-to-call-non-public-constructors) in the What's New docs for full details including runnable samples. + +## Everything else in Preview 1 + + Preview 1 contains: + +- [30 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement+) +- [51 bug fixes in EF9 Preview 1](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug) + - [8 bug fixes also shipped in 8.0.1](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.1+is%3Aclosed) + - [25 bug fixes also shipped in 8.0.2](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.2+is%3Aclosed+) +- [5 cleanup issues](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+-label%3Atype-enhancement+-label%3Atype-bug) \ No newline at end of file diff --git a/release-notes/9.0/preview/preview1/libraries.md b/release-notes/9.0/preview/preview1/libraries.md new file mode 100644 index 0000000000..00f2827d24 --- /dev/null +++ b/release-notes/9.0/preview/preview1/libraries.md @@ -0,0 +1,217 @@ +# Libraries updates in .NET 9 Preview 1 + +.NET 9 Preview 1 includes several new library features. We focused on the following areas: + +- System.Collections +- System.Linq +- System.Reflection +- System.Security.Cryptography +- System.Text.Json + +Libraries updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/runtime/discussions/categories/announcements) +* [What's new in .NET Libraries in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## System.Collections: `PriorityQueue.Remove` + +[`PriorityQueue` collection](https://learn.microsoft.com/dotnet/api/system.collections.generic.priorityqueue-2) provides a simple and fast array heap implementation. One issue however with array heaps in general is that they [don't support priority updates](https://github.com/dotnet/runtime/issues/44871), making them prohibitive for use in algorithms such as variations of [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Using_a_priority_queue). + +While it wouldn't be possible to implement efficient $\mathcal O(\log n)$ priority updates in the existing collection, the new `Remove` method makes it possible to _emulate_ priority updates (albeit at $\mathcal O(n)$ time): + +```C# +public static void UpdatePriority(this PriorityQueue queue, TElement element, TPriority priority) +{ + queue.Remove(element, out _); // Scan the heap for entries matching the current element + queue.Enqueue(element, priority); // Now re-insert it with the new priority. +} +``` + +This improvement unblocks users looking to implement graph algorithms in contexts where asymptotic performance isn't a blocker (e.g. education or prototyping). For example, here's a [toy implementation of Dijkstra's algorithm](https://github.com/dotnet/runtime/blob/16cb41496d595e2568574cfe11c763d5e05136c9/src/libraries/System.Collections/tests/Generic/PriorityQueue/PriorityQueue.Tests.Dijkstra.cs#L46-L76) using the new API. + +## System.ComponentModel: TypeDescriptor is now thread-safe +Long-standing threading issues in TypeDescriptor have been addressed, so any existing work-arounds can be removed. Workarounds included pre-populating internal caches such as by calling `TypeDescriptor.GetProvider(type)` for every type that has a `TypeProviderAttribute`, and by wrapping the access to the affected APIs with a `lock` statement. + +For more background, see the issues [TypeDescriptor.GetProperties(object instance) is not thread-safe](https://github.com/dotnet/runtime/issues/92394) and [Concurrency issue in TypeDescriptor.GetConverter(type)](https://github.com/dotnet/runtime/issues/30024). + +The threading issues also exist in .NET Framework. If you are affected by this issue in .NET Framework, please add feedback to this blog or the issues above so we can determine the priority of porting the fix to .NET Framework. + +## System.Linq: `CountBy`, `AggregateBy` and `Index` methods + +We've added new Linq methods that make it possible to aggregate state by key, without needing to allocate intermediate groupings via `GroupBy`. You can use `CountBy` to quickly calculate the frequency for each key: + +```C# +string sourceText = """ + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Sed non risus. Suspendisse lectus tortor, dignissim sit amet, + adipiscing nec, ultricies sed, dolor. Cras elementum ultrices amet diam. + """; + +// Find the most frequent word in a piece of text +KeyValuePair mostFrequentWord = sourceText + .Split(new char[] { ' ', '.', ',', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .Select(word => word.ToLowerInvariant()) + .CountBy(word => word) + .MaxBy(pair => pair.Value); + +Console.WriteLine(mostFrequentWord.Key); // amet +``` + +More general-purpose workflows can be implemented using the new `AggregateBy` method, here's how we can aggregate scores by a given key: + +```C# +(string id, int score)[] data = +[ + ("0", 42), + ("1", 5), + ("2", 4), + ("1", 10), + ("0", 25), +]; + +data.AggregateBy(seed: 0, (totalScore, curr) => totalScore + curr.score, keySelector: entry => entry.id); +//(0, 67) +//(1, 15) +//(2, 4) +``` + +The new `Index` method makes it possible to quickly extract the implicit index of an enumerable. The code: + +```C# +IEnumerable lines = File.ReadAllLines("file.txt"); +foreach ((string line, int index) in lines.Select((line, index) => (line, index)) +{ + Console.WriteLine($"Line number: {index + 1}, Line: {line}"); +} +``` + +Now becomes + +```C# +foreach ((string line, int index) in lines.Index()) +{ + Console.WriteLine($"Line number: {index + 1}, Line: {line}"); +} +``` + +## System.Reflection.Emit: Support equivalent of AssemblyBuilder.Save + +[Saving an assembly](https://github.com/dotnet/runtime/issues/15704) with Reflection.Emit has been requested since the first release of .NET Core and it's been the most upvoted issue in the Reflection area. Many customers report it as a blocker for porting their project from .NET Framework. Without saving the assembly, it was very difficult to debug in-memory assemblies. Saving the assembly to a file allows the assembly to be verified with tools such as ILVerify, or decompiled and manually examined with tools such as ILSpy. Furthermore, the assembly can be shared or loaded directly which can be used to decrease application startup time. + +For creating a new persisted `AssemblyBuilder` instance you should use the new `AssemblyBuilder.DefinePersistedAssembly` API: + +```cs +AssemblyBuilder ab = AssemblyBuilder.DefinePersistedAssembly(new AssemblyName("MyAssembly"), typeof(object).Assembly); +``` + +The `Assembly` passed to the method used for resolving base runtime types, notice that `AssemblyBuilderAccess` option is not passed, the new persisted `AssemblyBuilder` implementation is only for saving, in order to run the assembly user first need to save it into a memory stream or a file, then load it back. + + +The following example demonstrates how to create and save assemblies: + + +```cs +public void CreateAndSaveAssembly(string assemblyPath) +{ + AssemblyBuilder ab = AssemblyBuilder.DefinePersistedAssembly(new AssemblyName("MyAssembly"), typeof(object).Assembly); + TypeBuilder tb = ab.DefineDynamicModule("MyModule").DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class); + + MethodBuilder mb = tb.DefineMethod("SumMethod", MethodAttributes.Public | MethodAttributes.Static, + typeof(int), [typeof(int), typeof(int)]); + ILGenerator il = mb.GetILGenerator(); + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Ldarg_1); + il.Emit(OpCodes.Add); + il.Emit(OpCodes.Ret); + + tb.CreateType(); + ab.Save(assemblyPath); // or could save to a Stream +} +``` + +The following example demonstrates how to run the saved assembly: + + +```cs +public void UseAssembly(string assemblyPath) +{ + Assembly assembly = Assembly.LoadFrom(assemblyPath); + Type type = assembly.GetType("MyType"); + MethodInfo method = type.GetMethod("SumMethod"); + Console.WriteLine(method.Invoke(null, [5, 10])); +} +``` + +Future Plans: A few missing API implementations and bunch of bug fixes [will be added in preview 2](https://github.com/dotnet/runtime/pull/97350). Further [Entry point support](https://github.com/dotnet/runtime/issues/97015) will be added soon. + +## System.Security.Cryptography: `CryptographicOperations.HashData` + +.NET includes several static [one-shot implementations](https://learn.microsoft.com/dotnet/standard/security/cryptography-model#one-shots) of hash functions, and related functions. These APIs include [`SHA256.HashData`](https://learn.microsoft.com/dotnet/api/system.security.cryptography.sha256.hashdata) and [`HMACSHA256.HashData`](https://learn.microsoft.com/dotnet/api/system.security.cryptography.hmacsha256.hashdata). One-shots are preferable to use because they can provide the best possible performance and reduce or eliminate allocations. + +If a developer wants to provide an API that supports hashing where the caller defines which hash algorithm to use, it's typically done by accepting a `HashAlgorithmName` argument. However, using that pattern with one-shot APIs would require switching over every possible `HashAlgorithmName` and then using the appropriate method. To solve that problem, .NET 9 introduces the `CryptographicOperations.HashData` API. This API lets you produce a hash or HMAC over an input as a one-shot where the algorithm used is determined by a `HashAlgorithmName`. + +The `CryptographicOperations.HashData` API can be used to produce a hash or HMAC over an input as a one-shot where the algorithm used is determined by a `HashAlgorithmName`. + +```C# +using System.Security.Cryptography; + +static void HashAndProcessData(HashAlgorithmName hashAlgorithmName, byte[] data) { + byte[] hash = CryptographicOperations.HashData(hashAlgorithmName, data); + ProcessHash(hash); +} +``` + +## System.Security.Cryptography: KMAC algorithm + +.NET 9 provides the KMAC algorithm as specified by [NIST SP-800-185](https://csrc.nist.gov/pubs/sp/800/185/final). KECCAK Message Authentication Code (KMAC) is a pseudorandom function and keyed hash function based on KECCAK. + +The following new classes use the KMAC algorithm. Use instances to accumulate data to produce a MAC, or use the static `HashData` method for a [one-shot](https://learn.microsoft.com/dotnet/standard/security/cryptography-model#one-shots) over a single input. + +- `Kmac128` +- `Kmac256` +- `KmacXof128` +- `KmacXof256` + +KMAC is available on Linux with OpenSSL 3.0 or later, and on Windows 11 Build 26016 or later. You can use the static `IsSupported` property to determine if the platform supports the desired algorithm. + +```C# +using System.Security.Cryptography; + +if (Kmac128.IsSupported) { + byte[] key = GetKmacKey(); + byte[] input = GetInputToMac(); + byte[] mac = Kmac128.HashData(key, input, outputLength: 32); +} +else { + // Handle scenario where KMAC is not available. +} +``` + +## System.Text.Json: Customizing indent character and indent size + +It is now possible to customize the indentation character and size of written JSON: + +```C# +var options = new JsonSerializerOptions +{ + WriteIndented = true, + IndentCharacter = '\t', + IndentSize = 2, +}; + +JsonSerializer.Serialize(new { Value = 1 }, options); +//{ +// "Value": 1 +//} +``` + +## System.Text.Json: `JsonSerializerOptions.Web` + +`JsonSerializerOptions` now exposes a static property configured to use `JsonSerializerDefaults.Web`: + +```C# +JsonSerializer.Serialize(new { SomeValue = 42 }, JsonSerializerOptions.Web); // {"someValue":42} defaults to camelCase naming policy +``` diff --git a/release-notes/9.0/preview/preview1/runtime.md b/release-notes/9.0/preview/preview1/runtime.md new file mode 100644 index 0000000000..0c0a57884a --- /dev/null +++ b/release-notes/9.0/preview/preview1/runtime.md @@ -0,0 +1,85 @@ +# Runtime updates in .NET 9 Preview 1 + +.NET 9 Preview 1 includes several new runtime features. We focused on the following areas: + +- Native AOT +- JIT + +Runtime updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/runtime/discussions/categories/announcements) +* [What's new in the .NET Runtime .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## Native AOT: Object Writer + +Object writer is a component we use to write debug info into symbols files for native AOT. For .NET 7 and 8, we us an LLVM-based library called objwriter for this purpose. In Preview 1, this functionality has been replaced by a new C# implementation, implemented by [@filipnavara](https://github.com/filipnavara). The C# implementation enables us to remove a dependency from the native AOT toolchain. + +This change doesn't significantly affect the output (the actual executable code is completely unaffected), but should be a slightly faster and more lightweight implementation. The output debugging info looks to be at least as good as the old debug info. The performance also looks at least as good, and there is opportunity to improve it more. + +We want to hear about any issues that people run into with the new object writer. Please share those, however small. + +While we expect the results to be as good or better than the old object writer, we will continue to ship the old writer as a fallback until (and including) Preview 4 while we test it in the real world. To use the old object writer instead, set the environment variable `DOTNET_USE_LLVM_OBJWRITER=1`. + +## JIT: Loop Optimizations + +RyuJIT already supports multiple powerful loop optimizations, and we plan to expand these capabilities for .NET 9. For Preview 1, we've focused on improving the applicability of existing optimizations by refactoring how loops are represented in RyuJIT. This new graph-based representation is simpler and more effective than the old lexical representation, enabling RyuJIT to recognize -- and thus optimize -- more loops. + +Here's a quick breakdown of the improvements: + +* **Loop hoisting** -- finds expressions that don't change in value as the containing loop iterates, and moves (or "hoists") the expressions to above the loop so they evaluate at most once. In our test collections, we saw up to 35.8% more hoisting performed with the new loop representation. +* **Loop cloning** -- determines if a conditional check (like a bounds check on an array) inside a loop can be safely eliminated for some of its iterations, and creates a "fast" copy of the loop without the check. At runtime, execution switches between the normal and fast copy of the loop depending on if the check is needed. With the new loop representation, we saw up to 7.3% more loop cloning. +* **Loop alignment** -- improves instruction cache performance by adjusting the offset of a loop to begin at a cache line. During execution, modern CPUs fetch instructions from memory in multi-byte chunks, and place them in a small, high-speed cache. If a loop crosses cache lines, the CPU might have to evict and re-cache the loop's instructions with every iteration, causing unnecessary stalling; for hot loops, these performance penalties quickly add up. Aligning a loop to the beginning of a cache line may significantly improve the instruction cache's hit rate. With the new loop representation, we saw about 5% more loops aligned across our test collections. + +This is just a snippet of the improvements RyuJIT's new loop representation brings. To take a closer look at the loop optimization work planned for .NET 9, check out [dotnet/runtime #93144](https://github.com/dotnet/runtime/issues/93144). + +## JIT: ARM64 SVE/SVE2 Support + +We are adding support for the Scalable Vector Extension (SVE) instruction set among many [ARM64-specific improvements](https://github.com/dotnet/runtime/issues/94464). On SVE-enabled hardware, these instructions enable flexible vectorization of high-performance workloads. Much of this flexibility comes from the fact that vector registers can be used with a variety of widths, ranging from 128 bits to 2048 bits. According to Arm Holdings, SVE was designed to accelerate workloads in relatively few domains, like machine learning and high-performance computing; [SVE2 extends the instruction set's applicability](https://developer.arm.com/documentation/102340/0100/Introducing-SVE2) to domains like computer vision, multimedia, and general-purpose software. + +Supporting SVE/SVE2 in .NET requires work across the stack, starting in RyuJIT. We now support emitting many instruction encodings. You can track our progress in real time via [dotnet/runtime #94549](https://github.com/dotnet/runtime/issues/94549), or check out some of the [API proposals](https://github.com/dotnet/runtime/issues/93095#issuecomment-1778932195) that enable the SVE/SVE2 features we are considering for .NET 9. + + +## JIT: Register Allocator Improvements + +Startup performance is a major focus for .NET 9, and profiling reveals RyuJIT spends a nontrivial amount of time in its register allocation phase. Effective register allocation is crucial for generating performant code, and RyuJIT leverages various heuristics to do so. When generating unoptimized code, we assume hot methods will eventually be recompiled with optimizations via tiered compilation, or optimized code won't be needed at all (such as when compiling debug builds); in the former case, it is especially important that RyuJIT prioritizes quick compilation over code quality to improve startup time. For Preview 1, RyuJIT now uses a faster, simpler approach to register allocation when compiling unoptimized code. In our testing, this change improves throughput by over 10% in some cases. Check out the [dotnet/runtime #96386](https://github.com/dotnet/runtime/pull/96386) to see the dramatic throughput improvements this brings. + +## Community Contributions + +Thanks to everyone for their contributions, as issues, PRs, and other types of engagement. + +Notable contributions: + +- [@a74nh](https://github.com/a74nh), [@snickrolls-arm](https://github.com/snickrolls-arm), and [@SwapnilGaikwad](https://github.com/SwapnilGaikwad) for their ARM64 contributions to RyuJIT! +- [@MichalPetryka](https://github.com/MichalPetryka) for his contributions to RyuJIT and related functionality. + +## Community Spotlight (Michał Petryka) + +The `dotnet/runtime` repo community benefits from the work and passions of many developers. We'd like to recognize [Michał Petryka](https://github.com/MichalPetryka) for [his efforts](https://github.com/dotnet/runtime/pulls?q=author%3AMichalPetryka) on the runtime and library codebase. + +In his own words: + + +Hello everybody, my name is Michał and I am from Warsaw, Poland. + +My first experience with C# (and real programming too) was back in 2016 when I’ve stumbled upon a game development live-stream while browsing the internet out of boredom. Since then I’ve gone a long way with my skills, first using them with Unity and then moving onto library development with .NET Core 3.1 and later versions. + +While I was doing it as a hobby before, now I am starting to do so professionally as I’ve recently finished school. + +I’ve loved working in C# more than with any other language as it managed to be an amazing middle ground between languages like JavaScript or Python - which made me feel like they were hiding too much from me and ones like C or C++ - which on the other hand forced me to constantly worry about things like memory management and others. + +I’ve always been interested in performance optimizations, which have also been the center of my contributions to .NET. At first, I’ve only commented on issues that affected me but after joining the DotNetEvolution and the C# Community Discord servers and seeing other contributors - both from the community and Microsoft - discuss their changes, I’ve started opening Pull Requests myself. + +Thanks to the mentorship I’ve received from others, I’ve been able to have almost 40 PR of mine that targeted the dotnet/runtime repository be merged, all targeting various areas ranging from the C# runtime libraries to the C++ RyuJIT codebase (which is responsible for compiling C# to native code). + +While working on such parts of .NET might seem scary at first, since a mistake done there could affect every single app there is, the extensive testing done on every contribution and the thorough reviews made by the code maintainers helped me ensure that my ideas could cause no issues for others. + +As such, I’d like to invite everybody to join various .NET and C# communities - both the Discord servers mentioned before and other platforms - and to start contributing to .NET yourself, either via discussing your ideas with existing contributors, filing issues whenever you encounter any or making PRs when you think you have an idea how to fix an existing issue. Don’t be afraid of doing so, you’ll surely have others help you, just as they have helped me and anything you learn by doing so can then be shared with others that also need help! + + +These are the links to the Discord servers that he mentions: + +- [C# Discord](https://discord.gg/csharp) +- [DotNetEvolution](https://aka.ms/dotnet-discord) diff --git a/release-notes/9.0/preview/preview1/sdk.md b/release-notes/9.0/preview/preview1/sdk.md new file mode 100644 index 0000000000..bdca603edf --- /dev/null +++ b/release-notes/9.0/preview/preview1/sdk.md @@ -0,0 +1,44 @@ +# SDK updates in .NET 9 Preview 1 + +.NET 9 Preview 1 includes several new SDK features. + +SDK updates in .NET 9 Preview 1: +* [What's new in the .NET SDK in .NET 9](https://review.learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +# Terminal Logger enabled by default + +The default experience for all `dotnet` CLI commands that use MSBuild is now Terminal Logger - the enhanced logging experience that we released in .NET 8. This new output uses the capabilities of modern terminals to provide functionality like clickable links, duration timers for MSBuild tasks, and color coding of warning and error messages in a more condensed and usable output than the existing MSBuild console logger. You can read more about the new logger in the [original release announcement](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/). + +The new logger should auto-detect if it can be used, but users can always manually control when Terminal Logger is used. Terminal Logger can be disabled for a specific command by using the `--tl:off` option, or on a more broad scale by setting the `MSBUILDTERMINALLOGGER` environment variable to `off`. + +The set of commands that will use Terminal Logger by default is + +* build +* clean +* msbuild +* pack +* publish +* restore +* test + +# Automatic tool upgrade and downgrade on install + +`dotnet tool install` will now automatically update the tool to the latest version if a newer version is available. Previously, `dotnet tool update` was required to update an installed tool. + +For example: + +```bash +$ dotnet tool install PowerShell -g --version 7.4.0 +$ dotnet tool install PowerShell -g +``` + +The latest version is now installed, 7.4.1 at the time of writing. + + +`dotnet tool install --allow-downgrade` will now allow you to install an older version of a tool already installed + +For more detail, see [dotnet/sdk #37311](https://github.com/dotnet/sdk/pull/37311) diff --git a/release-notes/9.0/releases.json b/release-notes/9.0/releases.json new file mode 100644 index 0000000000..6cf7cd6d06 --- /dev/null +++ b/release-notes/9.0/releases.json @@ -0,0 +1,518 @@ +{ + "channel-version": "9.0", + "latest-release": "9.0.0-preview.1", + "latest-release-date": "2024-02-13", + "latest-runtime": "9.0.0-preview.1.24080.9", + "latest-sdk": "9.0.100-preview.1.24101.2", + "support-phase": "preview", + "release-type": "sts", + "lifecycle-policy": "https://aka.ms/dotnetcoresupport", + "releases": [ + { + "release-date": "2024-02-13", + "release-version": "9.0.0-preview.1", + "security": false, + "cve-list": [], + "release-notes": "https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/9.0.0-preview.1.md", + "runtime": { + "version": "9.0.0-preview.1.24080.9", + "version-display": "9.0.0-preview.1", + "vs-support": "Visual Studio 2022 (v17.10 Preview 1)", + "vs-mac-version": "", + "files": [ + { + "name": "dotnet-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/f59acd9f-cbed-4483-acde-2b42d1abac59/b6edd8e417a12e04849dded2c6143869/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm.tar.gz", + "hash": "8f5e104562dd8ecbe87433896ba7bdd48400f28f41d0ffebe39d160adb6f0f600dcd327acd653d6c8a6dd13f3b375784290f17fd129e2f20bf307ccdbc4ba285" + }, + { + "name": "dotnet-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz", + "hash": "265b7bf094730be765bdaadec3215c1a7c51bff6fb18bb51cff383473e32d1ba821b6d046e0f7fa864400dc5cb68e35943057f5b6ae6e8c411375fc15fdbaf3c" + }, + { + "name": "dotnet-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/d4e427bc-0a0f-4bd1-ae1f-79dfcb59ca8e/2c2ea76fdbbe8eb67029013741abc7c8/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm.tar.gz", + "hash": "7e8d46ae5668cc13011b9b579f71f27fa5c5feb93be2f6ee3541e75a163bb9f82d5e7b41cd5290e964d1ce7644ffdb9832d1570d7d795821cfd8c12f029e5d74" + }, + { + "name": "dotnet-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d8daea8a-5a9d-4570-a860-cc9512946d66/bec3eb14bf7e22a3f99e21f6de8f5a7d/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm64.tar.gz", + "hash": "9e5a8dac01bc070758fb07788ec693a2b1c98be2d8aa1036d70e778c024df93d5a9299a4198514b7a8712143de47af6ce830d059350ba8686c760c6a37a8811d" + }, + { + "name": "dotnet-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/fe51f8fc-c30d-42ee-ae0b-e4866193c392/c8cecc468809fb235223f77dd19a0bfc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-x64.tar.gz", + "hash": "f6a42522f3bbf59e58e28f3b5ce0bdd2b81e5f0aa9634ea4be7221145853925c221bdf04988e9e7364efd578c665f5136af55edc2eb9e2b276877ccd92235d80" + }, + { + "name": "dotnet-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz", + "hash": "68f0b89227c8e0b3239477409708c1b0c5cc7d80afd6661dc2150946c66e2130cf560c2471609f0fd063f01ca1d8e72f74beec45ecb519cf58f1cdc434615054" + }, + { + "name": "dotnet-runtime-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/00b22eac-00df-4aaa-9d9c-cb709afc7727/30b1bd396e681d1e7a5e0a2d034243a7/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.pkg", + "hash": "011963caf28e5fdd3a92b11732dffddf532f6c97ac5525682c32fc8ed3cb542f82aafdaa4020eef673f1b466533e2fdb133dab9334cff51840f45601c27a1a77" + }, + { + "name": "dotnet-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz", + "hash": "63bf6a57f61c4dcf4e0cdcedb8ff6c76cb702a95d4e0033f17b4cd2a3e800e73ab16c401fb098416404ea5716c725c175f9422250b2a8816c08eed2702cd38e5" + }, + { + "name": "dotnet-runtime-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5a33892b-8d4c-4a35-831d-537ae7361c96/381e7d9f93758fbe2ffbda88927fdda5/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.pkg", + "hash": "d4cc85c39b4c287471784a61410458bc2078f44cf07146ea24ae11a8e96944297133802972de80623ac7aff10e57289628e1cd5cc9a64ac2fa3effec2b369418" + }, + { + "name": "dotnet-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz", + "hash": "f644ce6ee158bd86a4aba21bdd955a3aebb0367b5af618b6e77dc85922bc790b9c33b572606a15f566b2729a90923f66a933159124e803494105a695c890b775" + }, + { + "name": "dotnet-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/57abc76c-46c8-4a76-b28d-108a097203dd/5796bd89648367c97adab3dbbc1ed1c2/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.exe", + "hash": "6027f09e7bd4612fe9cd1ac2550d0663cb80d63cec1a41cbd4a9f502d14c77ed83f83e3e47b87da28ce0820e894a0539624939d09e9363d52f2218696dc685e5" + }, + { + "name": "dotnet-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/6714615d-e422-4037-845a-c51a7cb7fd1c/f2efed74b142bcb681209cd5ca1f333b/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.zip", + "hash": "3a800156e1680f46a0cdeeb60b780ee56e3150c52f1c6e9b440eb30529f2bc36dd928c51afd495396f8f4a7c1998e52168fedd2a1205ca0f7ccda2d880d12a4d" + }, + { + "name": "dotnet-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a160565d-c481-4d36-b6df-e708b3273914/b31aaffa739731821684023da81c3b06/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.exe", + "hash": "a535447c840aa27e21b69de7172f225ae5e3bea3ed632b81372a4cd20919a2ca4c6ae7c3963648bdb98d458fb204c5c5af3e85e0b44c8b5b803c1b3e4d8e791e" + }, + { + "name": "dotnet-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4f93597e-2697-4e50-a232-aa4d7c025ee4/4f35240f9b922d5b77f5c426e52c6e70/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.zip", + "hash": "a417238c10646dac5ff47663b34d05ed51e96e224aa1f29dc2de03a96c273d72dbd3c890a36b728fc01d0a3d6ae50804ade78c9f29310cdab49dcecf8e0e6ad8" + }, + { + "name": "dotnet-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/292f3bdc-8f10-43cc-9f54-a2740ea4f8e3/3aaa99d7befd139d2e5ac8c4b1fa6707/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.exe", + "hash": "70f677e2171a2773a0b0dafd0deffce9bdbf97692e34d2032163ea21645394becb71afdeda332edd0f558dc7e7080ed4e4a695f2ee32aa3866e8d7b81ef919a2" + }, + { + "name": "dotnet-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/ae7b1529-8508-4202-be55-911ff8373186/b657e9299262515b194ecd8e95948b4d/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.zip", + "hash": "be777abcd6300a3628ea3a154d0c62fae0c4142f3a5e9c4eda5d315d4716014dd42cddc9cac25c2fccddb106bade516f30805584e07c086f2d3fc9a171135dfb" + } + ] + }, + "sdk": { + "version": "9.0.100-preview.1.24101.2", + "version-display": "9.0.100-preview.1", + "runtime-version": "9.0.0-preview.1.24080.9", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "Visual Studio 2022 (v17.10 Preview 1)", + "vs-mac-support": "", + "csharp-version": "12.0", + "fsharp-version": "8.0", + "vb-version": "16.9", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/f5e9fc40-e56c-4276-bcf8-3ecf80f7c1a7/94900c87e4529a89ac71d164665088c7/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm.tar.gz", + "hash": "fa14b4545688097f490b9730a9063a3f7e7b779fd57a4bee43e61ef6f61c6aa5ba33ae5e1c8e0bc13dd060709d3eebbd04b044e06a9a70eecc73243db4107086" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz", + "hash": "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/4cf1722b-252e-4b66-a292-8aa97fdd0fec/7bc384770059a0348e4024d8b6489f3f/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm.tar.gz", + "hash": "821f7e1387a50b27c9fcad1e1955cc6aeb4012a0d1cef7273f882409ca18a42d97fe3fcad18eb141e8dd91afc16fa698a720763e4be6d7054af9c4e9104b43fd" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9fba65ff-def6-44cf-9230-1973c6a150a4/230b5ce3ae290ce5b10ed748b4f16dfc/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm64.tar.gz", + "hash": "93a0126c76bcd054a7119fb5e51b64980b130f55850d006d77ed4dd3a5f9ec79bfe49c0160c2c4dd58a01226c7264081f36b594e4b2d5c8d18a400ab57b86460" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/744e137c-6902-426e-a494-1ec7bc71a8eb/c5a6d2c3d3c4e57c10da28992e34617a/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-x64.tar.gz", + "hash": "7b44faba92fcc228477dce2ecd3311f0d6b68c30f082ff020472b07fc2615aa0e591da9185667a172a6f708192c6610e6c20594f79cee8e1a046515ffbb8e26b" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz", + "hash": "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f3a5f6fd-0b74-407c-a3cf-52792d76415f/53c4911d66ce7a8757c9d10c2c4d6414/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.pkg", + "hash": "5375987c0a02eb33d820802ec9c76acb14ccecf1a35df1f894bf7e362e1400a8b48dad628267b65d8bda29850f1a70ff4cc0960cd57cd61dc7f155e155bc9de6" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz", + "hash": "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5c78b512-56ef-49a1-b181-96ca60917c06/f6ad92dac6791efabedd862a495e7d4b/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.pkg", + "hash": "8254d65d65ef1bc038255e651ad962bc15249b2f5a760c31e628fa342f3a2bfd2dfd2aa96f1125cf8318d60e8ec99cb7a51dab1d780e606b4f3d47c2b7159f96" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz", + "hash": "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/224503be-904d-4735-a447-b180b5a90c88/c267d21bd55b3108a226b0b458f02ab7/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.exe", + "hash": "99c61acc8bf757793fa2a08eb29afcf3e365bf285fde929c58ce774424294570c26609468cc94f89d891f0c42769041d6ad9c6c759a0665727dba16288dd2f64" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/019706df-7545-4e5c-a8e0-1cd8ed308eca/eb7fe6847f4d9be5870ee0ea172d5025/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.zip", + "hash": "38bc46731201d5796d7a7ee30446fc35f2c225a75c978b896e7b6b09c7d537b22f991acbd413f6352df39cb8e69d94634b085968256377d83843527e55268d0d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe", + "hash": "82dfbbe479df411c0a177459ed9af55c373561e5b23dfcd09eb1ba713764e0800519dc2b50138108520bb772c8aec696c31f99c85674cb7c7d7b999292668d31" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4c55bc67-e478-4fdc-abe3-08b8dd64f4e4/9cf46c3018f477a93a8498850e6c122b/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.zip", + "hash": "a993f0a23dee43f43e51509094f385379183ae916ee04f891927bc2398fd3645bfd866d0960c9d0ccf11f7878856dd7317298a6e5ec6a17dd7f32fb3890855a9" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/351f70a4-7eda-44e7-9e3b-44ee92e2b678/92d69c8dc447e2870f95ec535c3edf83/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.exe", + "hash": "9ee4c1da97526bffda9c1ad58e609bbbcad324dcb4e24b1cdd30f1feb0b37333e326b95ae08706e56f52c12ee20556151b13d7d5c04a0283f3420659c706ac63" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/2a5790bb-b57d-4c34-bbf9-d93a589bc065/0456e1a4bd06579fccf6fb776dfa5dc6/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.zip", + "hash": "1ea49121eebc8ad47dae4148bdda7ee9ca17f65f49af9a0ce39d42dfa3916ac4d8430d7d0c0c7f466f15fc0fdd844b891635e743ca4782571cdde76828f7d236" + } + ] + }, + "sdks": [ + { + "version": "9.0.100-preview.1.24101.2", + "version-display": "9.0.100-preview.1", + "runtime-version": "9.0.0-preview.1.24080.9", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "Visual Studio 2022 (v17.10 Preview 1)", + "vs-mac-support": "", + "csharp-version": "12.0", + "fsharp-version": "8.0", + "vb-version": "16.9", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/f5e9fc40-e56c-4276-bcf8-3ecf80f7c1a7/94900c87e4529a89ac71d164665088c7/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm.tar.gz", + "hash": "fa14b4545688097f490b9730a9063a3f7e7b779fd57a4bee43e61ef6f61c6aa5ba33ae5e1c8e0bc13dd060709d3eebbd04b044e06a9a70eecc73243db4107086" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz", + "hash": "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/4cf1722b-252e-4b66-a292-8aa97fdd0fec/7bc384770059a0348e4024d8b6489f3f/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm.tar.gz", + "hash": "821f7e1387a50b27c9fcad1e1955cc6aeb4012a0d1cef7273f882409ca18a42d97fe3fcad18eb141e8dd91afc16fa698a720763e4be6d7054af9c4e9104b43fd" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9fba65ff-def6-44cf-9230-1973c6a150a4/230b5ce3ae290ce5b10ed748b4f16dfc/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm64.tar.gz", + "hash": "93a0126c76bcd054a7119fb5e51b64980b130f55850d006d77ed4dd3a5f9ec79bfe49c0160c2c4dd58a01226c7264081f36b594e4b2d5c8d18a400ab57b86460" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/744e137c-6902-426e-a494-1ec7bc71a8eb/c5a6d2c3d3c4e57c10da28992e34617a/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-x64.tar.gz", + "hash": "7b44faba92fcc228477dce2ecd3311f0d6b68c30f082ff020472b07fc2615aa0e591da9185667a172a6f708192c6610e6c20594f79cee8e1a046515ffbb8e26b" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz", + "hash": "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f3a5f6fd-0b74-407c-a3cf-52792d76415f/53c4911d66ce7a8757c9d10c2c4d6414/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.pkg", + "hash": "5375987c0a02eb33d820802ec9c76acb14ccecf1a35df1f894bf7e362e1400a8b48dad628267b65d8bda29850f1a70ff4cc0960cd57cd61dc7f155e155bc9de6" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz", + "hash": "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5c78b512-56ef-49a1-b181-96ca60917c06/f6ad92dac6791efabedd862a495e7d4b/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.pkg", + "hash": "8254d65d65ef1bc038255e651ad962bc15249b2f5a760c31e628fa342f3a2bfd2dfd2aa96f1125cf8318d60e8ec99cb7a51dab1d780e606b4f3d47c2b7159f96" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz", + "hash": "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/224503be-904d-4735-a447-b180b5a90c88/c267d21bd55b3108a226b0b458f02ab7/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.exe", + "hash": "99c61acc8bf757793fa2a08eb29afcf3e365bf285fde929c58ce774424294570c26609468cc94f89d891f0c42769041d6ad9c6c759a0665727dba16288dd2f64" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/019706df-7545-4e5c-a8e0-1cd8ed308eca/eb7fe6847f4d9be5870ee0ea172d5025/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.zip", + "hash": "38bc46731201d5796d7a7ee30446fc35f2c225a75c978b896e7b6b09c7d537b22f991acbd413f6352df39cb8e69d94634b085968256377d83843527e55268d0d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe", + "hash": "82dfbbe479df411c0a177459ed9af55c373561e5b23dfcd09eb1ba713764e0800519dc2b50138108520bb772c8aec696c31f99c85674cb7c7d7b999292668d31" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4c55bc67-e478-4fdc-abe3-08b8dd64f4e4/9cf46c3018f477a93a8498850e6c122b/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.zip", + "hash": "a993f0a23dee43f43e51509094f385379183ae916ee04f891927bc2398fd3645bfd866d0960c9d0ccf11f7878856dd7317298a6e5ec6a17dd7f32fb3890855a9" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/351f70a4-7eda-44e7-9e3b-44ee92e2b678/92d69c8dc447e2870f95ec535c3edf83/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.exe", + "hash": "9ee4c1da97526bffda9c1ad58e609bbbcad324dcb4e24b1cdd30f1feb0b37333e326b95ae08706e56f52c12ee20556151b13d7d5c04a0283f3420659c706ac63" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/2a5790bb-b57d-4c34-bbf9-d93a589bc065/0456e1a4bd06579fccf6fb776dfa5dc6/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.zip", + "hash": "1ea49121eebc8ad47dae4148bdda7ee9ca17f65f49af9a0ce39d42dfa3916ac4d8430d7d0c0c7f466f15fc0fdd844b891635e743ca4782571cdde76828f7d236" + } + ] + } + ], + "aspnetcore-runtime": { + "version": "9.0.0-preview.1.24081.5", + "version-display": "9.0.0-preview.1", + "version-aspnetcoremodule": [ + "19.0.24031.0" + ], + "vs-version": "", + "files": [ + { + "name": "aspnetcore-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/27ce8ce5-a12e-47d5-b075-5c6034c86c40/6280dfd63195eeb410c4b70dff2d6ba9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm.tar.gz", + "hash": "688c07f9d896db90a1ea863b008fff5187d50b2aef352298f3e4c16522812f3dc9be22f8bdee89abde8554e7668bb9f35d0aa4746b1fd9c42ea0aa8ef84f1f83" + }, + { + "name": "aspnetcore-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz", + "hash": "118967e64995d7c242738bf806928ecc52cfae3b0e0429a6951047eaf37d27bdde0adc0c6dc74e32d61b69565f7666cbfd4658396c37988e5d343debcc15bdf6" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/e7783447-29c2-4866-bd77-fcc207fe2d73/a1d3af0e7af02e478e7f748011af1c48/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz", + "hash": "1d322b98cb039938a735267b29f49d1bb5b024fe2fda96608de725c2419d2da3cae8f6e3e7fa2594d0d7768180ced2bc1c2da20582380aa66954e34fe0ed01ea" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/df69432f-27c5-450b-8afc-b7c9e35630d0/b5bc58a367875a214cf0c2c11ad174a9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz", + "hash": "b297d9cfa88fbd879f4e36a567b17109d5a0ac32102afdc5243c181f469f5c9beac0ec2ac776b68b7419ad9b9ddb932ef0c8f79a7cc14e6d62a491959685969c" + }, + { + "name": "aspnetcore-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d3f3a6eb-ef34-474b-944e-bed7bdb040cc/bccb1d80864eaaf576c25444525f9224/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz", + "hash": "5ddef8928f7db38a3bc9fdad0d7cf8bddd8dee698ce8b72e7e7eedca5d769b70eab79ed161576ea8a5eb65806f80b27f6668f200ddd6c9425ab724074c543b03" + }, + { + "name": "aspnetcore-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz", + "hash": "29bfe0b5b72608eba97151909308a67a47dc299902a46bf1a22d67bb5f8a0c87c6f4533c0c2d4679f9440f9ccccf549c434a4280c101f7633bdbdcf049c95817" + }, + { + "name": "aspnetcore-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz", + "hash": "09746054c291b10bacf3fba8ad147443fd41f42b6b04d9559281bc7d919ddc56ebe7402021997f6f24b745b3292368719cc2142d0eebba76226c5603545b6743" + }, + { + "name": "aspnetcore-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz", + "hash": "3ed80631a3ca0a4684a70fc0f17d46257a63cc71c7497c958accb4d329eff4a7c832a29c028b608798fbed0b82e2c5b7d5533c57dff2188d4142559b57341192" + }, + { + "name": "aspnetcore-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f942b1be-4e32-43cd-914f-24bd19b7e583/262944dd0604ab13fc39d5387c59d53d/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-arm64.zip", + "hash": "4ef745d883f519a3949ff7479950945a6952de6c0ab10aa0d9320dc9c6578221bf7551788f17d62a2c287f5a662ea81c3b747d1a1b28184a32f7cce47f0ef4cb" + }, + { + "name": "aspnetcore-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/427d2f8c-58f0-4ebb-b3c2-8960b88d03a2/354461a9a09d96678505e964f829df42/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.exe", + "hash": "1644a3474e01a3b5805b341881b4450af885b043d7578360a7a0bfecb13158305d878c9624d697774e10ed5c84c976c1a7f541ecd585bd6d3d53084f6d9fb880" + }, + { + "name": "aspnetcore-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/188d9bb7-2cd9-48b0-ae5f-c1919ebb0750/c1c4b6c669863c4f6fb5bbe9b6498ca8/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.zip", + "hash": "e8ebffbc89b516aedfab48fa8cfd9ec529437df21724b6e7f0a8b8b97eba29d274499a37fca0aaa0f7bd84ab3fb839a2ff09c6042f3abe568d4ec8191becbbd7" + }, + { + "name": "aspnetcore-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/cf9d5773-4262-4135-b8cd-10bdb1d64cf3/2999b27d44b816b58a966d74d43ca2f6/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.exe", + "hash": "219addc5b3fc08f3e9c650171cb2804161c9a4c3a70f5367a32a2ef368a7850a8b18d232f27d5c265b323c4ccc7034f21d820558e2f05c59f8fd6f444e7c44ac" + }, + { + "name": "aspnetcore-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/d5423ff0-60fe-4e91-b083-5aefca88610a/962fb47ce2b483795e7eb33f08a4bc46/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.zip", + "hash": "6e7730207fdfef400edac61ec142dd7440376699e25675d13fe05b347264f69b9a7cc3b047a8051b14c7862d144a465fe63fc9ff2a6d3c3c7a2a3cb46d1f6657" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/fbb4cdaa-f4de-4297-bce0-5af6e8a8148f/90c097d5618d4dd81d8d489abce1645b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm.tar.gz", + "hash": "2310efa27939af7f28ff3869a640a182a3fca6374b06db98fc9cdc6a5b49b75de9904bb47bb3e15334620357662ede933b08994b35d5bc1dd5c859ca73530602" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/42ca6325-0b0c-4ee6-96c4-ac46affd2c64/20f5fc2ee183de3450cd33e06e5c8bf2/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm64.tar.gz", + "hash": "1ea9bc90557a4196eecc51f8965994c6feb446c671b19236b6593a8996641410cc15f2ed6b2a7be73217ae89683664cee2af68594e3a0164306b770778d96295" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/b5a23389-0099-4b0c-adde-6acbee4412b9/10a484a2160790fb695c8e2eb6d34d53/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz", + "hash": "6f070ba486fdc59d1717c2089f322329d28a4996d5e165ac55f7ed07dc4f014fa18efc2ab36e50fbe0959d10960a346476fede4ef4115e8972ee105fc7b777a5" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c165e81b-e915-4c10-9fd1-86e1a3eaabf6/184c4299dc0fcf3b18a8e18f989a3d6b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz", + "hash": "5ef4134b9ecdc4b80bb402209fd2adba4c219d235e0f3a4d196c8d7ac0366c9fd40c6a515d1f585b3f9b3bcbeaf7bb9c41a64643ef2f065305abdd47014879c0" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/bede20f1-0e70-4a08-a1d8-df9613e7ddf3/aa55cc5fa325b264eb1cbda8eb45d8b7/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz", + "hash": "d5740881123b148f0e9b3d990f2407da9b0a4cb61e6e853c9eb709a52196dccc2e2cb8b9ee5c778fc6022fb5a45a076436020a4817089dbb67e2e126f717b342" + }, + { + "name": "aspnetcore-runtime-composite-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f7492292-937e-4ed2-aac1-1e1aee31c19b/f345f6bc48f5c073b048e2946d504041/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-x64.tar.gz", + "hash": "8022e4a1d37089242905ca9c4fd5f37a22136f377a170a677f1005fc8ce32d5bbc6341c0b80236d8287022533d908a4d91120bac894ab418b20a056de2e45b61" + }, + { + "name": "dotnet-hosting-win.exe", + "rid": "", + "url": "https://download.visualstudio.microsoft.com/download/pr/6728a941-7b39-44af-b75c-91769681007d/0f062452057e1f17bcf2e1af7e2a5414/dotnet-hosting-9.0.0-preview.1.24081.5-win.exe", + "hash": "67a972f36f9e31417e6746b9ea69fc033e945708c2e43be665239ac16f561e92960240f789d942ae886b4d4a38a49e1ed226e5b92f0eeb1e66d178c760cd4960", + "akams": "https://aka.ms/dotnetcore-9-0-windowshosting" + } + ] + }, + "windowsdesktop": { + "version": "9.0.0-preview.1.24081.3", + "version-display": "9.0.0-preview.1", + "files": [ + { + "name": "windowsdesktop-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5bcc6b35-e7e7-48b5-8cf2-277a60fc03e1/d5c4319efbf8e734f9dd11a358c03bd4/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.exe", + "hash": "bf252da538951cce59469e1d2074d34c4b8bb04de33421c9b594c447c8d3b9e2e2cacd28e4f515ba1a2e430db18d11c70bffb07cdcb518a3d035cf88f777a768" + }, + { + "name": "windowsdesktop-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/dc0ae26f-121d-4f63-a066-2333861699b7/45bb105bf0b9756495fe8d217f20c397/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.zip", + "hash": "2df2ba1949621525b70767bd1230928d8d82255e58a0f28a131ae4345d32e62ceeac41f42bac119c7b60eef0f9731d4920e522a4555e5d64a34ef361ef5128de" + }, + { + "name": "windowsdesktop-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0c804185-7f86-4167-8703-8365d4939d72/02935dd20c741d36acb2c4eb2f2d5a21/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.exe", + "hash": "ef2731f34d6d2e732deaa5dff36e4fc04d6c2d6f600d0faf0a8f4f662e731fb6eeb778efa2dbc287dc04bdc00fda257f194ffb7821958cd4137683feaabe9d12" + }, + { + "name": "windowsdesktop-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9a297cbf-b641-4026-bca8-c68293c4fa8f/05b5d48d0ab2dc0cea2271f85c027c87/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.zip", + "hash": "15f93de63a9144e01528bafd169d62a0e7fa1fc5a85c4e7422a1553b79ddbbc7213488facc38d677b8fca90778c608d623f49ada121a16664d675a1d7e225d9e" + }, + { + "name": "windowsdesktop-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/e3264b5f-c04b-427b-bf87-f9a264f53b0d/9f564a10f3af50fda2ec7ef2365b10d5/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.exe", + "hash": "0288cddb418da54bbc09fdf9640eaa8ea0c236e4cec8613b70c10f6a2e2f831104d68d0bbe11138ba51bf51861cfdb6fba532394e3e58a7ce255f28f7f71a474" + }, + { + "name": "windowsdesktop-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/f0788f54-28b1-4a6d-ae86-1ead236dda97/37a05b2928ca436d0424aeb3d5ce4e4f/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.zip", + "hash": "e47ae91d7bf992e9dda09519551dc2dc9f5cec7b61542961c3b8c9ca67606204ed2f212934bed8a34bf6331d095683f018bb4418fed442e5b3ead1a11b479f28" + } + ] + } + } + ] +} diff --git a/release-notes/9.0/supported-os.md b/release-notes/9.0/supported-os.md index 4c43761cfb..c83668e65d 100644 --- a/release-notes/9.0/supported-os.md +++ b/release-notes/9.0/supported-os.md @@ -14,7 +14,7 @@ OS | Version | Architectures [Windows Server Core][Windows-Server] | 2012+ | x64, x86 | [Windows Server][Windows-Server-lifecycle] [Nano Server][Nano-Server] | Version 1809+ | x64 | [Windows Server][Windows-Server-lifecycle] -[Windows-client]: https://learn.microsoft.com/windows/ +[Windows-client]: https://www.microsoft.com/windows/ [Windows-lifecycle]: https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet [win-client-docker]: https://hub.docker.com/_/microsoft-windows [Windows-Server-lifecycle]: https://learn.microsoft.com/windows-server/get-started/windows-server-release-info @@ -98,15 +98,14 @@ OS | Version | Architectures | OS | Version | Architectures | ------------------------------|-------------------------|-------------------| -[iOS][iOS] | 12.2+ | Arm64 | -[iOS Simulator][iOS] | 12.2+ | x64, Arm64 | -[tvOS][tvOS] | 12.2+ | Arm64 | -[tvOS Simulator][tvOS] | 12.2+ | x64, Arm64 | -[MacCatalyst][MacCatalyst] | 15.0+ (macOS 12.0+) | x64, Arm64 | +[iOS][iOS] | 12.0+ | Arm64 | +[iOS Simulator][iOS] | 12.0+ | x64, Arm64 | +[tvOS][tvOS] | 12.0+ | Arm64 | +[tvOS Simulator][tvOS] | 12.0+ | x64, Arm64 | +[MacCatalyst][macOS] | 12.0+ | x64, Arm64 | [iOS]: https://support.apple.com/ios [tvOS]: https://support.apple.com/apple-tv -[MacCatalyst]: https://developer.apple.com/documentation/uikit/mac_catalyst ## QEMU diff --git a/release-notes/releases-index.json b/release-notes/releases-index.json index 5fc541fd6b..f72ccf7f23 100644 --- a/release-notes/releases-index.json +++ b/release-notes/releases-index.json @@ -1,6 +1,18 @@ { "$schema": "https://json.schemastore.org/dotnet-releases-index.json", "releases-index": [ + { + "channel-version": "9.0", + "latest-release": "9.0.0-preview.1", + "latest-release-date": "2024-02-13", + "security": false, + "latest-runtime": "9.0.0-preview.1.24080.9", + "latest-sdk": "9.0.100-preview.1.24101.2", + "product": ".NET", + "release-type" : "sts", + "support-phase": "preview", + "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/9.0/releases.json" + }, { "channel-version": "8.0", "latest-release": "8.0.1", diff --git a/releases.md b/releases.md index 92f481c927..b06c082b98 100644 --- a/releases.md +++ b/releases.md @@ -10,10 +10,12 @@ The following table lists in-support .NET releases. | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | +| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8) | [LTS][policies] | [8.0.1][8.0.1] | November 10, 2026 | | [.NET 7](release-notes/7.0/README.md) | [November 8, 2022](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7) | [STS][policies] | [7.0.15][7.0.15] | May 14, 2024 | | [.NET 6](release-notes/6.0/README.md) | [November 8, 2021](https://devblogs.microsoft.com/dotnet/announcing-net-6/) | [LTS][policies] | [6.0.26][6.0.26] | November 12, 2024 | +[9.0.0-preview.1]: release-notes/9.0/preview/preview1/9.0.0-preview.1.md [8.0.1]: release-notes/8.0/8.0.1/8.0.1.md [7.0.15]: release-notes/7.0/7.0.15/7.0.15.md [6.0.26]: release-notes/6.0/6.0.26/6.0.26.md