Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main into live #43037

Merged
merged 4 commits into from
Oct 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/architecture/maui/unit-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ms.date: 05/30/2024

Multi-platform apps experience problems similar to both desktop and web-based applications. Mobile users will differ by their devices, network connectivity, availability of services, and various other factors. Therefore, multi-platform apps should be tested as they would be used in the real world to improve their quality, reliability, and performance. Many types of testing should be performed on an app, including unit testing, integration testing, and user interface testing. Unit testing is the most common form and essential to building high-quality applications.

A unit test takes a small unit of the app, typically a method, isolates it from the remainder of the code, and verifies that it behaves as expected. Its goal is to check that each unit of functionality performs as expected, so errors don't propagate throughout the app. Detecting a bug where it occurs is more efficient that observing the effect of a bug indirectly at a secondary point of failure.
A unit test takes a small unit of the app, typically a method, isolates it from the remainder of the code, and verifies that it behaves as expected. Its goal is to check that each unit of functionality performs as expected, so errors don't propagate throughout the app. Detecting a bug where it occurs is more efficient than observing the effect of a bug indirectly at a secondary point of failure.

Unit testing has the most significant effect on code quality when it's an integral part of the software development workflow. Unit tests can act as design documentation and functional specifications for an application. As soon as a method has been written, unit tests should be written that verify the method's behavior in response to standard, boundary, and incorrect input data cases and check any explicit or implicit assumptions made by the code. Alternatively, with test-driven development, unit tests are written before the code. For more information on test-driven development and how to implement it, see [Walkthrough: Test-driven development using Test Explorer.](/visualstudio/test/quick-start-test-driven-development-with-test-explorer)

Expand Down Expand Up @@ -66,7 +66,7 @@ The eShop multi-platform app uses [MSTest](../../core/testing/unit-testing-with-

| Testing Type | Attribute | Description |
|-----------------|--------------|--------------------------------------------------------------|
| TestMethod | `TestMethod` | Defines the actual test method to run.. |
| TestMethod | `TestMethod` | Defines the actual test method to run. |
| DataSource | `DataSource` | Tests that are only true for a particular set of data. |

The unit tests included with the eShop multi-platform app are TestMethod, so each unit test method is decorated with the `TestMethod` attribute. In addition to MSTest there are several other testing frameworks available including [NUnit](../../core/testing/unit-testing-with-nunit.md) and [xUnit](../../core/testing/unit-testing-with-dotnet-test.md).
Expand Down
2 changes: 1 addition & 1 deletion docs/core/compatibility/9.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ If you're migrating an app to .NET 9, the breaking changes listed here might aff
| [Altered UnsafeAccessor support for non-open generics](core-libraries/9.0/unsafeaccessor-generics.md) | Behavioral change | Preview 6 |
| [API obsoletions with custom diagnostic IDs](core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md) | Source incompatible | (Multiple) |
| [BigInteger maximum length](core-libraries/9.0/biginteger-limit.md) | Behavioral change | Preview 6 |
| [BinaryReader.GetString() returns "/uFFFD" on malformed sequences](core-libraries/9.0/binaryreader.md) | Behavioral change | Preview 7 |
| [BinaryReader.GetString() returns "\uFFFD" on malformed sequences](core-libraries/9.0/binaryreader.md) | Behavioral change | Preview 7 |
| [Creating type of array of System.Void not allowed](core-libraries/9.0/type-instance.md) | Behavioral change | Preview 1 |
| [Default `Equals()` and `GetHashCode()` throw for types marked with `InlineArrayAttribute`](core-libraries/9.0/inlinearrayattribute.md) | Behavioral change | Preview 6 |
| [FromKeyedServicesAttribute no longer injects non-keyed parameter](core-libraries/9.0/non-keyed-params.md) | Behavioral change | RC 1 |
Expand Down
11 changes: 6 additions & 5 deletions docs/core/install/macos.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,12 @@ The following table is a list of currently supported .NET releases and the versi

| Operating System | .NET 8 (LTS) | .NET 6 (LTS) |
|------------------------|--------------|--------------|
| macOS 14.0 "Sonoma" | ✔️ 8.0 | ✔️ 6.0 |
| macOS 13.0 "Ventura" | ✔️ 8.0 | ✔️ 6.0 |
| macOS 12.0 "Monterey" | ✔️ 8.0 | ✔️ 6.0 |
| macOS 11.0 "Big Sur" | ❌ | ✔️ 6.0 |
| macOS 10.15 "Catalina" | ❌ | ✔️ 6.0 |
| macOS 15 "Sequoia" | ✔️ 8.0 | ✔️ 6.0 |
| macOS 14 "Sonoma" | ✔️ 8.0 | ✔️ 6.0 |
| macOS 13 "Ventura" | ✔️ 8.0 | ✔️ 6.0 |
| macOS 12 "Monterey" | ❌ | ❌ |
| macOS 11 "Big Sur" | | ❌ |
| macOS 10.15 "Catalina" | | ❌ |

For a full list of .NET versions and their support life cycle, see [.NET Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).

Expand Down
30 changes: 15 additions & 15 deletions docs/core/install/windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Learn about which versions of .NET SDK and .NET Runtime are suppor
author: adegeo
ms.author: adegeo
ms.topic: install-set-up-deploy #Don't change
ms.date: 05/15/2024
ms.date: 10/10/2024
#customer intent: As a developer or user, I want to decide the best way to install .NET on Windows.
---

Expand All @@ -16,30 +16,30 @@ ms.date: 05/15/2024
> - [Install on macOS](macos.md)
> - [Install on Linux](linux.md)

There are many different ways to install .NET on Windows. This article helps you understand the difference between the SDK and Runtime, which runtime you should install, and the method you should use to install .NET.
This article teaches you about which versions of .NET are supported on Windows, how to install .NET, and what the difference is between the SDK and runtime.

.NET is made up of the runtime and the SDK. The runtime runs .NET apps, and the SDK is used to create apps.
Unlike .NET Framework, .NET isn't tied to your version of Windows. You can only have a single version of .NET Framework installed on Windows. But .NET is standalone and can be installed anywhere on your computer. Some apps might include their own copy of .NET.

Unlike .NET Framework, .NET isn't installed and tied to your version of Windows. You can only have a single version of .NET Framework installed on Windows. .NET can be installed anywhere on your computer and some apps might include their own copy of .NET.
By default, .NET is installed to the _Program Files\\dotnet_ directory on your computer, unless the installation method chooses a different directory.

By default, .NET is installed to the _Program Files\\dotnet_ directory on your computer, unless the install method chooses a different directory.
.NET is made up of the runtime and the SDK. The runtime runs .NET apps, and the SDK is used to create apps.

## Choose the correct runtime

There are three different runtimes for Windows, which enable different types of apps to run. The SDK includes all three runtimes. If you install a specific runtime, it might include other runtimes. The following table describes which runtime is included with a particular .NET installer:
There are three different runtimes for Windows, which enable different types of apps to run. The SDK includes all three runtimes, and an installer for a runtime might include an additional runtime. The following table describes which runtime is included with a particular .NET installer:

| | Includes .NET Runtime | Includes .NET Desktop Runtime | Includes ASP.NET Core Runtime |
| Installer | Includes .NET Runtime | Includes .NET Desktop Runtime | Includes ASP.NET Core Runtime |
| ------------------------ | ----------------------------- | ----------------------------- | ----------------------------- |
| **.NET Runtime** | Yes | No | No |
| **.NET Desktop Runtime** | Yes | Yes | No |
| **ASP.NET Core Runtime** | No | No | Yes |
| **.NET SDK** | Yes | Yes | Yes |

To ensure that you can run all .NET apps on Windows, install both the ASP.NET Core Runtime and the .NET Desktop Runtime. The ASP.NET Core Runtime runs any web apps, and the .NET Desktop Runtime runs any desktop app, such as a Windows Presentation Foundation (WPF) or Windows Forms (WinForms) app.
To ensure that you can run all .NET apps on Windows, install both the ASP.NET Core Runtime and the .NET Desktop Runtime. The ASP.NET Core Runtime runs web-based apps, and the .NET Desktop Runtime runs desktop apps, such as a Windows Presentation Foundation (WPF) or Windows Forms app.

## Choose how to install .NET

There are different ways to install .NET, and some products, like Visual Studio, might manage their own version of .NET. If you install .NET through software that manages its own version of .NET, you should also install the .NET runtime separately so that you can run .NET apps.
There are different ways to install .NET, and some products might manage their own version of .NET. If you install .NET through software that manages its own version of .NET, it might not be enabled system-wide. Make sure you understand the implications of installing .NET through other software.

If you're unsure which method you should choose after reviewing the lists in the following sections, you probably want to use the [.NET Installer](#net-installer).

Expand Down Expand Up @@ -203,7 +203,7 @@ The [download page](https://dotnet.microsoft.com/download/dotnet) for .NET provi
1. Find the SDK or Runtime box that contains the links for downloading .NET.
1. Under the **Installers** column, find the **Windows** row and select the link for your CPU architecture. If you're unsure, select **x64** as it's the most common.

The browser automatically downloads the MSI package.
The browser should automatically download the installer.

> [!TIP]
> The following image shows the SDK, but you can also download the Runtime.
Expand All @@ -215,15 +215,17 @@ The [download page](https://dotnet.microsoft.com/download/dotnet) for .NET provi

The Windows Installer dialog is opened.

:::image type="content" source="media/windows/msi-installer.png" alt-text="A screenshot of the .NET MSI installer app window.":::
:::image type="content" source="media/windows/msi-installer.png" alt-text="A screenshot of the .NET installer app window.":::

1. Select **Install** and follow the instructions to install .NET.

To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).

### Command-line options

If you want to install .NET silently, such as in a production environment or to support continuous integration, use the following Windows Installer options:
Use the `/?` parameter to display a list of options.

If you want to install .NET silently, such as in a production environment or to support continuous integration, use the following options:

- `/install`\
Installs .NET.
Expand All @@ -238,8 +240,6 @@ Suppresses any attempts to restart.
dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart
```

For more information, see [Standard Installer Command-Line Options](/windows/win32/msi/standard-installer-command-line-options).

> [!TIP]
> The installer returns an exit code of **0** for success and an exit code of **3010** to indicate that a restart is required. Any other value is most likely an error code.

Expand All @@ -261,7 +261,7 @@ The .NET WinGet packages are:
If you install the SDK, you don't need to install the corresponding runtime.

01. [Install WinGet](/windows/package-manager/winget/#install-winget).
01. Open a terminal, such as PowerShell or `cmd.exe`.
01. Open a terminal, such as PowerShell or Command Prompt.
01. Run the `winget install` command and pass the name of the SDK package:

```cmd
Expand Down
Loading