diff --git a/docs/architecture/maui/unit-testing.md b/docs/architecture/maui/unit-testing.md index 61155806cee70..fbfffa6a40239 100644 --- a/docs/architecture/maui/unit-testing.md +++ b/docs/architecture/maui/unit-testing.md @@ -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) @@ -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). diff --git a/docs/core/compatibility/9.0.md b/docs/core/compatibility/9.0.md index 47ec8a2d83be9..00f6eeb3848f3 100644 --- a/docs/core/compatibility/9.0.md +++ b/docs/core/compatibility/9.0.md @@ -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 | diff --git a/docs/core/install/macos.md b/docs/core/install/macos.md index 319ac994b022e..3d11ade6ceed3 100644 --- a/docs/core/install/macos.md +++ b/docs/core/install/macos.md @@ -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). diff --git a/docs/core/install/windows.md b/docs/core/install/windows.md index 2c6faf0de1e50..0bc655faadaea 100644 --- a/docs/core/install/windows.md +++ b/docs/core/install/windows.md @@ -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. --- @@ -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). @@ -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. @@ -215,7 +215,7 @@ 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. @@ -223,7 +223,9 @@ 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. @@ -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. @@ -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