From 5d15f58137d0209bea031dafaf29e1866d584a6e Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Mon, 8 Jul 2024 14:39:21 -0700 Subject: [PATCH 01/25] 7B-release-notes-.NET-Framework --- .../07-09-july-security-and-quality-rollup.md | 105 ++++++++++++++++++ docs/framework/toc.yml | 4 +- 2 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md new file mode 100644 index 0000000000000..62499f558b978 --- /dev/null +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -0,0 +1,105 @@ +--- +title: July 2024 security and quality rollup +description: Learn about the improvements in the .NET Framework July 2024 security and quality rollup. +ms.date: 07/09/2024 +--- +# April 2024 security and quality rollup + +_Released July 9, 2024_ + +## Summary of what's new in this release + +- [Security improvements](#security-improvements) +- [Quality and reliability improvements](#quality-and-reliability-improvements) + +### Security improvements + +#### CVE-2024-38081 – Remote code execution vulnerability + +This security update addresses a elevation of privilege vulnerability detailed in [CVE 2024-38081](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38081). + +### Quality and reliability improvements + +This release contains the following quality and reliability improvements. + +#### .NET fundamentals + +Addresses an issue with x509 certificate use under PPL in Azure AD (*Applies to: .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1.*) + +#### Winforms + +Addresses an issue with the size of memory leaks associated with AccessibleObjects held in memory due to ref-counting (*Applies to: .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1.*) + +## Known issues + +This release contains no known issues. + +## Summary tables + +The following table outlines the updates in this release. + +| Product version | Cumulative update | +| --- | --- | +| **Microsoft server operating system, version 23H2** | | +| .NET Framework 3.5, 4.8.1 | [5039892](https://support.microsoft.com/kb/5039892) | +| **Windows 11, version 22H2 and Windows 11, version 23H2** | | +| .NET Framework 3.5, 4.8.1 | [5039895](https://support.microsoft.com/kb/5039895) | +| **Microsoft server operating system, version 22H2** | **[5041025](https://support.microsoft.com/kb/5041025)** | +| .NET Framework 3.5, 4.8 | [5039889](https://support.microsoft.com/kb/5039889) | +| .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) || +**Windows 11, version 21H2** | **[5037037](https://support.microsoft.com/kb/5037037)** | +| .NET Framework 3.5, 4.8 | [5039887](https://support.microsoft.com/kb/5039887) | +| .NET Framework 3.5, 4.8.1 | [5039906](https://support.microsoft.com/kb/5039906) | +| **Microsoft server operating system, version 21H2** | **[5041016](https://support.microsoft.com/kb/5041016)** | +| .NET Framework 3.5, 4.8 | [5039889](https://support.microsoft.com/kb/5039889) | +| .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) | +| **Windows 10, version 22H2** | **[5041019](https://support.microsoft.com/kb/5041019)** | +| .NET Framework 3.5, 4.8 | [5039884](https://support.microsoft.com/kb/5039884) | +| .NET Framework 3.5, 4.8.1 | [5039893](https://support.microsoft.com/kb/5039893) | +| **Windows 10, version 21H2** | **[5041018](https://support.microsoft.com/kb/5041018)** | +| .NET Framework 3.5, 4.8 | [5039884](https://support.microsoft.com/kb/5039884) | +| .NET Framework 3.5, 4.8.1 | [5039893](https://support.microsoft.com/kb/5039893) | +| **Windows 10 1809 and Windows Server 2019** | **[5041017](https://support.microsoft.com/kb/5041017)** | +| .NET Framework 3.5, 4.7.2 | [5039879](https://support.microsoft.com/kb/5039879) | +| .NET Framework 3.5, 4.8 | [5039886](https://support.microsoft.com/kb/5039886) | +| **Windows 10 1607 and Windows Server 2016** | | +| .NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2 | [5040434](https://support.microsoft.com/kb/5040434) | +| .NET Framework 4.8 | [5039885](https://support.microsoft.com/kb/5039885) | +| **Windows 10 1507** | | +| .NET Framework 3.5, 4.6, 4.6.2 | [5040448](https://support.microsoft.com/kb/5040448) | + +The following table is for earlier Windows and Windows Server versions for Security and Quality Rollup updates.   + +| Product version | Security and quality rollup | +| --- | --- | +| **Windows Server 2012 R2** | **[5041023](https://support.microsoft.com/kb/5041023)** | +| .NET Framework 3.5 | [5039910](https://support.microsoft.com/kb/5039910) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5039881](https://support.microsoft.com/kb/5039881) | +| .NET Framework 4.8 | [5039890](https://support.microsoft.com/kb/5039890) | +| **Windows Server 2012** | **[5041022](https://support.microsoft.com/kb/5041022)** | +| .NET Framework 3.5 | [5039908](https://support.microsoft.com/kb/5039908) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5039880](https://support.microsoft.com/kb/5039880) | +| .NET Framework 4.8 | [5039888](https://support.microsoft.com/kb/5039888) | +| **Windows Server 2008 R2** | **[5041021](https://support.microsoft.com/kb/5041021)** | +| .NET Framework 3.5.1 | [5039909](https://support.microsoft.com/kb/5039909) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5039882](https://support.microsoft.com/kb/5039909) | +| .NET Framework 4.8 |[5039891](https://support.microsoft.com/kb/5039891) | +| **Windows Server 2008** | **[5041024](https://support.microsoft.com/kb/5041024)** | +| .NET Framework 2.0, 3.0 | [5039911](https://support.microsoft.com/kb/5039911) | +| .NET Framework 3.5 SP1 | [5040673](https://support.microsoft.com/kb/5040673) | +| .NET Framework 4.6.2 | [5039882](https://support.microsoft.com/kb/5039882) | + +The following table is for earlier Windows and Windows Server versions for Security Only updates, which aren't cumulative. + +| Product version | Security only update | +| --- | --- | +| **Windows Server 2008 R2** | **[5041026](https://support.microsoft.com/kb/5041027)** | +| .NET Framework 3.5.1 | [5040119](https://support.microsoft.com/kb/5040119) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5040122](https://support.microsoft.com/kb/5040122) | +| .NET Framework 4.8 |[5040123](https://support.microsoft.com/kb/5040123) | +| **Windows Server 2008** | **[5041027](https://support.microsoft.com/kb/5041027)** | +| .NET Framework 2.0, 3.0 | [5040118](https://support.microsoft.com/kb/5040118) | +| .NET Framework 3.5 SP1 | [5040680](https://support.microsoft.com/kb/5040680) | +| .NET Framework 4.6.2 | [5040122](https://support.microsoft.com/kb/5040122) | + +The operating system row lists a KB which will be used for update offering purposes. When the operating system KB is offered, the applicability logic will determine the specific .NET Framework update(s) will be installed. Updates for individual .NET Framework versions will be installed based on the version of .NET Framework that is already present on the device. Because of this the operating system KB is not expected to be listed as installed updates on the device. The expected update to be installed are the .NET Framework specific version updates listed in the preceding table. \ No newline at end of file diff --git a/docs/framework/toc.yml b/docs/framework/toc.yml index ed174b158ceba..ac133ad8ba888 100644 --- a/docs/framework/toc.yml +++ b/docs/framework/toc.yml @@ -679,6 +679,8 @@ items: href: release-notes/2024/05-14-may-security-and-quality-rollup.md - name: June 2024 cumulative update preview href: release-notes/2024/06-25-june-preview-cumulative-update.md + - name: July 2024 cumulative update + href: release-notes/2024/07-09-july-security-and-quality-rollup.md - name: What's new href: whats-new/index.md - name: What's new in accessibility @@ -693,4 +695,4 @@ items: - name: Obsolete members href: whats-new/obsolete-members.md - name: Code analysis - href: code-analyzers.md + href: code-analyzers.md \ No newline at end of file From 9db3133a47b6cc7c2a3c0caea0496469a4834990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Tue, 9 Jul 2024 11:54:31 +0200 Subject: [PATCH 02/25] Add Fakes to Microsoft.Testing.Platform TOC (#41681) --- docs/navigate/devops-testing/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/navigate/devops-testing/toc.yml b/docs/navigate/devops-testing/toc.yml index bae1e68fc18c4..81c46cd43cf37 100644 --- a/docs/navigate/devops-testing/toc.yml +++ b/docs/navigate/devops-testing/toc.yml @@ -161,6 +161,8 @@ items: href: ../../core/testing/unit-testing-platform-extensions-code-coverage.md - name: Diagnostics href: ../../core/testing/unit-testing-platform-extensions-diagnostics.md + - name: Fakes + href: ../../core/testing/unit-testing-platform-extensions-fakes.md - name: Hosting href: ../../core/testing/unit-testing-platform-extensions-hosting.md - name: Policy From b05259220859487390740f160cf3bea7f1c96b62 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 9 Jul 2024 15:49:24 +0200 Subject: [PATCH 03/25] Add guidelines for packaging source-built NativeAOT. (#41623) --- docs/core/distribution-packaging.md | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/core/distribution-packaging.md b/docs/core/distribution-packaging.md index db9fb6ffe9307..56aa9682f0c9c 100644 --- a/docs/core/distribution-packaging.md +++ b/docs/core/distribution-packaging.md @@ -27,7 +27,7 @@ When installed, .NET consists of several components that are laid out as follows │ └── (3) ├── sdk-manifests (4) (*) │ └── -├── library-packs (4) (*) +├── library-packs (20) (*) ├── metadata (4) (*) │ └── workloads │ └── @@ -45,8 +45,10 @@ When installed, .NET consists of several components that are laid out as follows │ │ └── (15) │ ├── Microsoft.NETCore.App.Runtime. (*) │ │ └── (18) -│ └── Microsoft.AspNetCore.App.Runtime. (*) -│ └── (18) +│ ├── Microsoft.AspNetCore.App.Runtime. (*) +│ │ └── (18) +│ └── runtime..Microsoft.DotNet.ILCompiler (*) +│ └── (19) ├── shared (*) │ ├── Microsoft.NETCore.App (*) │ │ └── (5) @@ -77,7 +79,7 @@ While there's a single host, most of the other components are in versioned direc - (3) **sdk/\** The SDK (also known as "the tooling") is a set of managed tools that are used to write and build .NET libraries and applications. The SDK includes the .NET CLI, the managed languages compilers, MSBuild, and associated build tasks and targets, NuGet, new project templates, and so on. -- (4) **sdk-manifests/\** The names and versions of the assets that an optional workload installation requires are maintained in workload manifests stored in this folder. The folder name is the feature band version of the SDK. So for an SDK version such as 7.0.102, this folder would still be named 7.0.100. When a workload is installed, the following folders are created as needed for the workload's assets: *library-packs*, *metadata*, and *template-packs*. A distribution can create an empty */metadata/workloads/\/userlocal* file if workloads should be installed under a user path rather than in the *dotnet* folder. For more information, see GitHub issue [dotnet/installer#12104](https://github.com/dotnet/installer/issues/12104). +- (4) **sdk-manifests/\** The names and versions of the assets that an optional workload installation requires are maintained in workload manifests stored in this folder. The folder name is the feature band version of the SDK. So for an SDK version such as 7.0.102, this folder would still be named 7.0.100. When a workload is installed, the following folders are created as needed for the workload's assets: *metadata* and *template-packs*. A distribution can create an empty */metadata/workloads/\/userlocal* file if workloads should be installed under a user path rather than in the *dotnet* folder. For more information, see GitHub issue [dotnet/installer#12104](https://github.com/dotnet/installer/issues/12104). The **shared** folder contains frameworks. A shared framework provides a set of libraries at a central location so they can be used by different applications. @@ -105,8 +107,18 @@ The **shared** folder contains frameworks. A shared framework provides a set of - (18) **Microsoft.NETCore.App.Runtime.\/\,Microsoft.AspNetCore.App.Runtime.\/\** These files enable building self-contained applications. These directories contain symbolic links to files in (2), (5) and (6). +- (19) **runtime.\.Microsoft.DotNet.ILCompiler/\** These files enable building NativeAOT applications for the target platform. + +- (20) **library-packs** contains NuGet package files. The SDK is configured to use this folder as a NuGet source. The list of NuGet packages provided by a .NET build is described below. + The folders marked with `(*)` are used by multiple packages. Some package formats (for example, `rpm`) require special handling of such folders. The package maintainer must take care of this. +Package files added to `library-packs` (20) can be packages that Microsoft does not distribute for the target platform. The files can also be packages that Microsoft distributes and for which `library-packs` provides a package that was built from source to meet platform package distribution guidelines. The following packages are included by the .NET build: + +| Package name | Published by Microsoft | Needed for | +|----|----|----| +| `Microsoft.DotNet.ILCompiler..nupkg`
`Microsoft.NET.ILLink.Tasks..nupkg` | ☑ | NativeAOT | + ## Recommended packages .NET versioning is based on the runtime component `[major].[minor]` version numbers. @@ -121,9 +133,15 @@ The following lists the recommended packages: - `dotnet-sdk-[major].[minor]` - Installs the latest SDK for specific runtime - **Version:** \ - **Example:** dotnet-sdk-7.0 - - **Contains:** (3),(4),(18) + - **Contains:** (3),(4),(18),(20) - **Dependencies:** `dotnet-runtime-[major].[minor]`, `aspnetcore-runtime-[major].[minor]`, `dotnet-targeting-pack-[major].[minor]`, `aspnetcore-targeting-pack-[major].[minor]`, `netstandard-targeting-pack-[netstandard_major].[netstandard_minor]`, `dotnet-apphost-pack-[major].[minor]`, `dotnet-templates-[major].[minor]` +- `dotnet-sdk-aot-[major].[minor]` - Installs the SDK components for platform NativeAOT + - **Version:** \ + - **Example:** dotnet-sdk-aot-9.0 + - **Contains:** (19) + - **Dependencies:** `dotnet-sdk-[major].[minor]`, _compiler toolchain and developer packages for libraries that the .NET runtime depends on_ + - `aspnetcore-runtime-[major].[minor]` - Installs a specific ASP.NET Core runtime - **Version:** \ - **Example:** aspnetcore-runtime-7.0 From 7d6f09b6cbd27e08534889bf7231d5cd3108920b Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:35:28 -0400 Subject: [PATCH 04/25] Update package index with latest published versions (#41678) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 5999b5f4b758d..d4317ca1f72c9 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -355,7 +355,7 @@ | Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | | | Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | | | Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) | -| Cosmos DB | NuGet [3.41.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.41.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.41.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | +| Cosmos DB | NuGet [3.41.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.41.0)
NuGet [3.42.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.41.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | | Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) | | Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | | | Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) | From 406c1950c6ddb472dc2c592f21ebf31d6e408934 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 9 Jul 2024 10:39:25 -0400 Subject: [PATCH 05/25] Typo (#41684) Fixes #41671 --- docs/csharp/fundamentals/types/anonymous-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/fundamentals/types/anonymous-types.md b/docs/csharp/fundamentals/types/anonymous-types.md index 0f64898a3b4de..f4523239ad885 100644 --- a/docs/csharp/fundamentals/types/anonymous-types.md +++ b/docs/csharp/fundamentals/types/anonymous-types.md @@ -37,7 +37,7 @@ If you don't specify member names in the anonymous type, the compiler gives the > [!TIP] > You can use .NET style rule [IDE0037](../../../fundamentals/code-analysis/style-rules/ide0037.md) to enforce whether inferred or explicit member names are preferred. -It is also possible to define a field by object of another type: class, struct or even another anonymous type. It is done by using the variable holding this object just like in the following example, where two anonymous types are created using already instantiated user-defined types. In both cases the `product` field in the anonymous type `shipment` and `shipmentWithBonus` will be of type `Product` containing it's default values of each field. And the `bonus` field will be of anonymous type created by the compiler. +It is also possible to define a field by object of another type: class, struct or even another anonymous type. It is done by using the variable holding this object just like in the following example, where two anonymous types are created using already instantiated user-defined types. In both cases the `product` field in the anonymous type `shipment` and `shipmentWithBonus` will be of type `Product` containing its default values of each field. And the `bonus` field will be of anonymous type created by the compiler. :::code language="csharp" source="snippets/anonymous-types/Program.cs" ID="snippet03"::: From 2602e80ca03d2b19d0b916d7a8adbaad8f47cc27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Tue, 9 Jul 2024 16:49:50 +0200 Subject: [PATCH 06/25] Add info about Microsoft.Testing.Platform.MSBuild and FAQ (#41680) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jakub Jareš Co-authored-by: David Pine --- .../core/testing/unit-testing-platform-faq.md | 21 +++++++++++++++++++ .../testing/unit-testing-platform-intro.md | 12 +++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/core/testing/unit-testing-platform-faq.md diff --git a/docs/core/testing/unit-testing-platform-faq.md b/docs/core/testing/unit-testing-platform-faq.md new file mode 100644 index 0000000000000..7ca8ad233a777 --- /dev/null +++ b/docs/core/testing/unit-testing-platform-faq.md @@ -0,0 +1,21 @@ +--- +title: Microsoft.Testing.Platform FAQ +description: Get answers to frequently asked questions about Microsoft.Testing.Platform. +author: Evangelink +ms.author: amauryleve +ms.date: 07/09/2024 +--- + +# Microsoft.Testing.Platform FAQ + +This article contains answers to commonly asked questions about `Microsoft.Testing.Platform`. + +## error CS8892: Method 'TestingPlatformEntryPoint.Main(string[])' will not be used as an entry point because a synchronous entry point 'Program.Main(string[])' was found + +Manually defining an entry point (`Main`) in test project, or referencing a test project into an application that already has an entry point, will result in conflict with the entry point generated by `Microsoft.Testing.Platform`. To avoid this issue take one of these steps: + +- Remove your manually defined entry point, typically `Main` method in _Program.cs_, and let testing platform to generate one for you. + +- Disable the generation of the entry point by setting `false` MSBuild property. + +- Completely disable the transitive dependency to `Microsoft.Testing.Platform.MSBuild` by setting `false` MSBuild property. This is needed when you are referencing test project from a non-test project, for example: You have a console application referencing a test application. diff --git a/docs/core/testing/unit-testing-platform-intro.md b/docs/core/testing/unit-testing-platform-intro.md index a8ad609880785..722a484aa09ef 100644 --- a/docs/core/testing/unit-testing-platform-intro.md +++ b/docs/core/testing/unit-testing-platform-intro.md @@ -209,6 +209,18 @@ Specifies the minimum number of tests that are expected to run. By default, at l The directory where the test results are going to be placed. If the specified directory doesn't exist, it's created. The default is `TestResults` in the directory that contains the test application. +## MSBuild integration + +The NuGet package [Microsoft.Testing.Platform.MSBuild](https://www.nuget.org/packages/Microsoft.Testing.Platform.MSBuild) provides various integrations for `Microsoft.Testing.Platform` with MSBuild: + +- Support for `dotnet test`, see [dotnet test integration](./unit-testing-platform-integration-dotnet-test.md) for more information. +- Support for `ProjectCapability` required by `Visual Studio` and `Visual Studio Code` Test Explorers. +- Automatic generation of the entry point (`Main` method) +- Automatic generation of the configuration file + +> [!NOTE] +> This integration works in a transitive way (a project that references another project referencing this package will behave as if it references the package) and can be disabled through the `IsTestingPlatformApplication` MSBuild property. + ## See also - [Microsoft.Testing.Platform and VSTest comparison](unit-testing-platform-vs-vstest.md) From 159658bdffc69237fb7d749c17e17d3901b29f2d Mon Sep 17 00:00:00 2001 From: Bartosz Klonowski <70535775+BartoszKlonowski@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:50:59 +0200 Subject: [PATCH 07/25] Mention `[]` operator also being able to thrown a runtime exception with indexers (#41655) * Show example of warning for '[]' operator * Link to CS8602 warning in See also section * Update docs/csharp/nullable-references.md --------- Co-authored-by: Bill Wagner --- docs/csharp/nullable-references.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/csharp/nullable-references.md b/docs/csharp/nullable-references.md index cd90f5fbf7de8..4cddf00616a5f 100644 --- a/docs/csharp/nullable-references.md +++ b/docs/csharp/nullable-references.md @@ -37,6 +37,28 @@ int length = message.Length; // dereferencing "message" When you dereference a variable whose value is `null`, the runtime throws a . +Similarly warnings can be produced when `[]` notation is used to access a member of an object when the object is `null`: + +```csharp +using System; + +public class Collection +{ + private T[] array = new T[100]; + public T this[int index] + { + get => array[index]; + set => array[index] = value; + } +} + +public static void Main() +{ + Collection c = default; + c[10] = 1; // CS8602: Possible derefence of null +} +``` + You'll learn about: - The compiler's [null-state analysis](#null-state-analysis): how the compiler determines if an expression is not-null, or maybe-null. @@ -372,3 +394,4 @@ In the preceding example, the declaration of the array shows it holds non-nullab - [Unconstrained type parameter annotations](~/_csharplang/proposals/csharp-9.0/unconstrained-type-parameter-annotations.md) - [Intro to nullable references tutorial](tutorials/nullable-reference-types.md) - [**Nullable** (C# Compiler option)](language-reference/compiler-options/language.md#nullable) +- [CS8602: Possible dereference of null warning](language-reference/compiler-messages/nullable-warnings.md#possible-dereference-of-null) From c4d26be68ab97aecdc14772fc509dce65b1c0aef Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:50:46 -0700 Subject: [PATCH 08/25] Update quest-config.json with tags (#41634) * Update quest-config.json * Update quest-config.json --- quest-config.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/quest-config.json b/quest-config.json index f839d01293922..bbd8c47c270c3 100644 --- a/quest-config.json +++ b/quest-config.json @@ -37,6 +37,10 @@ { "Label": ":checkered_flag: Release: .NET 9", "Tag": "new-feature" + }, + { + "Label": ":label: content-curation", + "Tag": "content-curation" } ] } From df92915bbe5ddadb7e221693ac2d89727b9420df Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 9 Jul 2024 13:59:01 -0400 Subject: [PATCH 09/25] update and consolidate errors related to iterators and `yield` (#41632) * Add stubs for new warnings and errors. * Combine existing errors * fix build warnings * Edit pass * build warnings --- .openpublishing.redirection.csharp.json | 52 ++++++++- .../compiler-messages/cs4013.md | 103 ----------------- .../compiler-messages/cs8154.md | 71 ------------ .../compiler-messages/cs8176.md | 51 --------- .../compiler-messages/iterator-yield.md | 108 ++++++++++++++++++ docs/csharp/language-reference/toc.yml | 25 +--- docs/csharp/misc/cs1622.md | 32 ------ docs/csharp/misc/cs1624.md | 38 ------ docs/csharp/misc/cs1625.md | 41 ------- docs/csharp/misc/cs1626.md | 46 -------- docs/csharp/misc/cs1627.md | 37 ------ docs/csharp/misc/cs1629.md | 34 ------ docs/csharp/misc/cs1631.md | 41 ------- docs/csharp/misc/cs1637.md | 33 ------ docs/csharp/whats-new/csharp-13.md | 2 +- 15 files changed, 162 insertions(+), 552 deletions(-) delete mode 100644 docs/csharp/language-reference/compiler-messages/cs4013.md delete mode 100644 docs/csharp/language-reference/compiler-messages/cs8154.md delete mode 100644 docs/csharp/language-reference/compiler-messages/cs8176.md create mode 100644 docs/csharp/language-reference/compiler-messages/iterator-yield.md delete mode 100644 docs/csharp/misc/cs1622.md delete mode 100644 docs/csharp/misc/cs1624.md delete mode 100644 docs/csharp/misc/cs1625.md delete mode 100644 docs/csharp/misc/cs1626.md delete mode 100644 docs/csharp/misc/cs1627.md delete mode 100644 docs/csharp/misc/cs1629.md delete mode 100644 docs/csharp/misc/cs1631.md delete mode 100644 docs/csharp/misc/cs1637.md diff --git a/.openpublishing.redirection.csharp.json b/.openpublishing.redirection.csharp.json index 643dee94558de..43036829fd283 100644 --- a/.openpublishing.redirection.csharp.json +++ b/.openpublishing.redirection.csharp.json @@ -400,17 +400,21 @@ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/array-declaration-errors" }, { - "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs7000.md", - "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/using-directive-errors" + "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4013.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" }, { - "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8400.md", - "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/feature-version-errors" + "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs7000.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/using-directive-errors" }, { "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8153.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#conversion-to-expression-trees" }, + { + "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8154.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, { "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8155.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#conversion-to-expression-trees" @@ -435,6 +439,10 @@ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8175.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#syntax-limitations-in-lambda-expressions" }, + { + "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8176.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, { "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8373.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors" @@ -443,6 +451,10 @@ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8374.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors" }, + { + "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8400.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/feature-version-errors" + }, { "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8401.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/feature-version-errors" @@ -1668,18 +1680,50 @@ "source_path_from_root": "/docs/csharp/misc/cs1621.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#syntax-limitations-in-lambda-expressions" }, + { + "source_path_from_root": "/docs/csharp/misc/cs1622.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, { "source_path_from_root": "/docs/csharp/misc/cs1623.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors" }, + { + "source_path_from_root": "/docs/csharp/misc/cs1624.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, + { + "source_path_from_root": "/docs/csharp/misc/cs1625.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, + { + "source_path_from_root": "/docs/csharp/misc/cs1626.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, + { + "source_path_from_root": "/docs/csharp/misc/cs1627.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, { "source_path_from_root": "/docs/csharp/misc/cs1628.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#syntax-limitations-in-lambda-expressions" }, + { + "source_path_from_root": "/docs/csharp/misc/cs1629.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, + { + "source_path_from_root": "/docs/csharp/misc/cs1631.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, { "source_path_from_root": "/docs/csharp/misc/cs1632.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/lambda-expression-errors#syntax-limitations-in-lambda-expressions" }, + { + "source_path_from_root": "/docs/csharp/misc/cs1637.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/iterator-yield" + }, { "source_path_from_root": "/docs/csharp/misc/cs1649.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors" diff --git a/docs/csharp/language-reference/compiler-messages/cs4013.md b/docs/csharp/language-reference/compiler-messages/cs4013.md deleted file mode 100644 index 71d12c75fe017..0000000000000 --- a/docs/csharp/language-reference/compiler-messages/cs4013.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -description: "Compiler Error CS4013" -title: "Compiler Error CS4013" -ms.date: 06/28/2024 -f1_keywords: - - "CS4013" -helpviewer_keywords: - - "CS4013" ---- -# Compiler Error CS4013 - -Instance of type cannot be used inside a nested function, query expression, iterator block or async method - -Beginning with C# 13, `ref struct` types can be used in iterator methods, if they aren't accessed across `yield return` statement. - -## Example - - The following sample generates CS4013: - -```csharp -public class C -{ - public static IEnumerable Lines(char[] text) - { - ReadOnlySpan chars = text; - var index = chars.IndexOf('\n'); - while (index > 0) - { - yield return chars[..index].ToString(); - chars = chars[(index + 1)..]; - index = chars.IndexOf('\n'); - } - - yield return chars.ToString(); - } -} -``` - -This enumerator method extracts lines of text from a character array. It naively tries to use `ReadOnlySpan` to improve performance. The preceding example exhibits the same error in C# 13, because the `ReadOnlySpan` instance `chars` is in scope at the `yield return` statement. - -## To correct this error - -`Lines(char[] text)` is an enumerator function. An enumerator function compiles the method's body into a state machine that manages the sequence of states the iterator function goes through while processing. That state machine is implemented as a generated class, and the state is implemented as variables within that class. That captured local state is forced from a stack context to a heap context. Since `ref struct`s like `ReadOnlySpan` can't be stored in the heap, the CS4013 error is raised. To continue to use a `ReadOnlySpan`, to correct this error, the method must be reimplemented as a noniterator function, for example: - -```csharp - public static IEnumerable Lines2(char[] text) - { - ReadOnlySpan chars = text; - - var lines = new List(); - var index = chars.IndexOf('\n'); - while (index > 0) - { - lines.Add(chars[..index].ToString()); - chars = chars[(index+1)..]; - index = chars.IndexOf('\n'); - } - - lines.Add(chars.ToString()); - return lines; - } -``` - -To continue to use an iterator function, to correct this error, the method must be reimplemented to avoid using `ReadOnlySpan`, for example: - -```csharp - public static IEnumerable Lines2(char[] chars) - { - var startIndex = 0; - var index = Array.IndexOf(chars,'\n'); - while (index > 0) - { - yield return new string(chars, startIndex, index); - startIndex = index+1; - index = Array.IndexOf(chars, '\n', startIndex); - } - yield return new string(chars, startIndex, chars.Length - startIndex); - } -``` - -In C# 13, a `ReadOnlySpan` can be used, but can only be used in code segments without a `yield return`: - -```csharp -static IEnumerable Lines2(char[] text) -{ - ReadOnlySpan chars = text; - - var lines = new List(); - var index = chars.IndexOf('\n'); - while (index > 0) - { - lines.Add(chars[..index].ToString()); - chars = chars[(index + 1)..]; - index = chars.IndexOf('\n'); - } - - lines.Add(chars.ToString()); - foreach(var line in lines) - { - yield return line; - } -} -``` diff --git a/docs/csharp/language-reference/compiler-messages/cs8154.md b/docs/csharp/language-reference/compiler-messages/cs8154.md deleted file mode 100644 index dbd5e8ae64258..0000000000000 --- a/docs/csharp/language-reference/compiler-messages/cs8154.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -description: "Compiler Error CS8154" -title: "Compiler Error CS8154" -ms.date: 9/19/2022 -f1_keywords: - - "CS8154" -helpviewer_keywords: - - "CS8154" ---- -# Compiler Error CS8154 - -The body cannot be an iterator block because it returns by reference - -## Example - - The following sample generates CS8154: - -```csharp -// CS8154.cs (12,17) - -class TestClass -{ - int x = 0; - ref int TestFunction() - { - if (true) - { - yield return x; - } - - ref int localFunction() - { - if (true) - { - yield return x; - } - } - - yield return localFunction(); - } -} -``` - -## To correct this error - -Iterator methods cannot return by reference, refactoring to return by value corrects this error: - -```csharp -class TestClass -{ - int x = 0; - IEnumerable TestFunction() - { - if (true) - { - yield return x; - } - - IEnumerable localFunction() - { - if (true) - { - yield return x; - } - } - - foreach (var item in localFunction()) - yield return item; - } -} -``` diff --git a/docs/csharp/language-reference/compiler-messages/cs8176.md b/docs/csharp/language-reference/compiler-messages/cs8176.md deleted file mode 100644 index 21a94a76614c2..0000000000000 --- a/docs/csharp/language-reference/compiler-messages/cs8176.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -description: "Compiler Error CS8176" -title: "Compiler Error CS8176" -ms.date: 06/28/2024 -f1_keywords: - - "CS8176" -helpviewer_keywords: - - "CS8176" ---- -# Compiler Error CS8176 - -Iterators cannot have by-reference locals - -Iterator blocks use deferred execution, where the evaluation of an expression is delayed until its realized value is required. To manage that deferred execution state, iterator blocks use a state machine, capturing variable state in closures implemented in compiler-generated classes and properties. A local variable reference (on the stack) can't be captured within the instance of a class in the heap, so the compiler issues an error. - -Beginning with C# 13, this restriction was removed. - -## Example - - The following sample generates CS8176: - -```csharp -// CS8176.cs (7,26) - -using System.Collections.Generic; -class C -{ - IEnumerable M() - { - ref readonly int x = ref (new int[1])[0]; - int i = x; - yield return i; - } -} -``` - -## To correct this error - -Removing use of by-reference corrects this error: - -```csharp -class C -{ - IEnumerable M() - { - int x = (new int[1])[0]; - int i = x; - yield return i; - } -} -``` diff --git a/docs/csharp/language-reference/compiler-messages/iterator-yield.md b/docs/csharp/language-reference/compiler-messages/iterator-yield.md new file mode 100644 index 0000000000000..306a689a7f730 --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/iterator-yield.md @@ -0,0 +1,108 @@ +--- +title: Errors and warnings for iterator methods and `yield return` +description: Use article to diagnose and correct compiler errors and warnings when you write iterator methods that use `yield return` to enumerate a sequence of elements. +f1_keywords: + - "CS1622" + - "CS1624" + - "CS1625" + - "CS1626" + - "CS1627" + - "CS1629" + - "CS1631" + - "CS1637" + - "CS4013" + - "CS8154" + - "CS8176" + - "CS9237" + - "CS9238" + - "CS9239" +helpviewer_keywords: + - "CS1622" + - "CS1624" + - "CS1625" + - "CS1626" + - "CS1627" + - "CS1629" + - "CS1631" + - "CS1637" + - "CS4013" + - "CS8154" + - "CS8176" + - "CS9237" + - "CS9238" + - "CS9239" +ms.date: 07/02/2024 +--- +# Errors and warnings related to the `yield return` statement and iterator methods + +There are numerous *errors* related to the `yield return` statement and iterator methods: + + +- [**CS1622**](#structure-of-an-iterator-method): *Cannot return a value from an iterator. Use the yield return statement to return a value, or yield break to end the iteration.* +- [**CS1624**](#structure-of-an-iterator-method): *The body of 'accessor' cannot be an iterator block because 'type' is not an iterator interface type* +- [**CS1625**](#restrictions-on-iterator-methods): *Cannot yield in the body of a finally clause* +- [**CS1626**](#restrictions-on-iterator-methods): *Cannot yield a value in the body of a try block with a catch clause* +- [**CS1627**](#structure-of-an-iterator-method): *Expression expected after yield return* +- [**CS1629**](#restrictions-on-iterator-methods): *Unsafe code may not appear in iterators* +- [**CS1631**](#restrictions-on-iterator-methods): *Cannot yield a value in the body of a catch clause* +- [**CS1637**](#structure-of-an-iterator-method): *Iterators cannot have unsafe parameters or yield types* +- [**CS4013**](#ref-safety-in-iterator-methods): *Instance of type cannot be used inside a nested function, query expression, iterator block or async method* +- [**CS8154**](#structure-of-an-iterator-method): *The body cannot be an iterator block because it returns by reference* +- [**CS8176**](#ref-safety-in-iterator-methods): *Iterators cannot have by-reference locals* +- [**CS9237**](#restrictions-on-iterator-methods): *'yield return' should not be used in the body of a lock statement* +- [**CS9238**](#restrictions-on-iterator-methods): *Cannot use 'yield return' in an 'unsafe' block* +- [**CS9239**](#restrictions-on-iterator-methods): *The `&` operator cannot be used on parameters or local variables in iterator methods.* + +## Structure of an iterator method + +An iterator method must conform to several rules in C#. The compiler issues the following errors when your iterator method violates one or more of those rules: + +- **CS1622**: *Cannot return a value from an iterator. Use the yield return statement to return a value, or yield break to end the iteration.* +- **CS1624**: *The body of 'accessor' cannot be an iterator block because 'type' is not an iterator interface type* +- **CS1627**: *Expression expected after yield return* +- **CS1637**: *Iterators cannot have unsafe parameters or yield types* +- **CS8154**: *The body cannot be an iterator block because it returns by reference* + +Your iterator method must follow the following rules: + +- An iterator method (using `yield return` and optionally `yield break`) can't also use a `return` statement to return a sequence. +- An iterator method must declare an *iterator interface type* as the return type. The *iterator interface types* are: , , , . +- A `yield return` statement must include an expression to return as part of a sequence. `yield return;` isn't valid. +- An iterator method can't use unsafe types as parameters, such as pointers. +- An iterator method can't `yield return` unsafe type, such as pointers. +- An iterator method can't `yield return` by `ref`. You must return by value. + +## Restrictions on iterator methods + +The body of an iterator method must conform to restrictions on the `yield return` statement and its context. The compiler issues the following errors when your iterator violates one of these restrictions: + +- **CS1625**: *Cannot yield in the body of a finally clause* +- **CS1626**: *Cannot yield a value in the body of a try block with a catch clause* +- **CS1631**: *Cannot yield a value in the body of a catch clause* +- **CS1629**: *Unsafe code may not appear in iterators* +- **CS9237**: *''yield return' should not be used in the body of a lock statement* +- **CS9238**: *Cannot use 'yield return' in an 'unsafe' block* +- **CS9239**: *The `&` operator cannot be used on parameters or local variables in iterator methods.* + +These errors indicate that your code violates safety rules because an iterator returns an element and resumes to generate the next element: + +- You can't `yield return` from a `catch` or `finally` clause. +- You can't `yield return` from a `try` block with a catch clause. +- You can't `yield return` from inside a `lock` statement block. Doing so can cause deadlocks. +- You can't `yield return` from an `unsafe` block. The context for an iterator creates a nested `safe` block within the enclosing `unsafe` block. +- You can't use the `&` operator to take the address of a variable in an iterator method. + +Before C# 13, iterators can't contain `unsafe` code (CS1629). Beginning with C# 13, this restriction is relaxed. All `yield return` statements must be in a safe context, but an iterator method can contain `unsafe` code. + +## ref safety in iterator methods + +Iterator methods have special ref safety restrictions. These rules are relaxed in C# 13: + +- **CS4013**: *Instance of type cannot be used inside a nested function, query expression, iterator block or async method* +- **CS8176**: *Iterators cannot have by-reference locals* + +Before C# 13, iterators couldn't declare `ref` local variables. They could not declare any variables of a `ref struct` type. + +Beginning with C# 13, `ref struct` types can be used in iterator methods, if they aren't accessed across `yield return` statement. Beginning with C# 13, iterator methods can declare `ref` local variables. diff --git a/docs/csharp/language-reference/toc.yml b/docs/csharp/language-reference/toc.yml index fad57332f76bd..57a0061e10f59 100644 --- a/docs/csharp/language-reference/toc.yml +++ b/docs/csharp/language-reference/toc.yml @@ -464,6 +464,11 @@ items: CS8351, CS8373, CS8374, CS8388, CS8977, CS9072, CS9077, CS9078, CS9079, CS9085, CS9086, CS9087, CS9089, CS9091, CS9092, CS9093, CS9094, CS9095, CS9096, CS9097, CS9101, CS9102, CS9104, CS9190, CS9191, CS9192, CS9193, CS9195, CS9196, CS9197, CS9198, CS9199, CS9200, CS9201 + - name: Iterator methods + href: ./compiler-messages/iterator-yield.md + displayName: > + yield return, yield break, + CS1622, CS1624, CS1625, CS1626, CS1627, CS1629, CS1631, CS1637, CS4013, CS8154, CS8176, CS9237, CS9238, CS9239 - name: Params modifier href: ./compiler-messages/params-arrays.md displayName: > @@ -1649,22 +1654,8 @@ items: href: ../misc/cs1619.md - name: CS1620 href: ../misc/cs1620.md - - name: CS1622 - href: ../misc/cs1622.md - - name: CS1624 - href: ../misc/cs1624.md - - name: CS1625 - href: ../misc/cs1625.md - - name: CS1626 - href: ../misc/cs1626.md - - name: CS1627 - href: ../misc/cs1627.md - - name: CS1629 - href: ../misc/cs1629.md - name: CS1630 href: ../misc/cs1630.md - - name: CS1631 - href: ../misc/cs1631.md - name: CS1637 href: ../misc/cs1637.md - name: CS1638 @@ -1913,8 +1904,6 @@ items: href: ./compiler-messages/cs4008.md - name: CS4009 href: ../misc/CS4009.md - - name: CS4013 - href: ./compiler-messages/cs4013.md - name: CS4032 href: ./compiler-messages/cs4032.md - name: CS4033 @@ -1959,8 +1948,6 @@ items: href: ./compiler-messages/cs8151.md - name: CS8152 href: ./compiler-messages/cs8152.md - - name: CS8154 - href: ./compiler-messages/cs8154.md - name: CS8156 href: ./compiler-messages/cs8156.md - name: CS8157 @@ -1987,8 +1974,6 @@ items: href: ./compiler-messages/cs8173.md - name: CS8174 href: ./compiler-messages/cs8174.md - - name: CS8176 - href: ./compiler-messages/cs8176.md - name: CS8177 href: ./compiler-messages/cs8177.md - name: CS8178 diff --git a/docs/csharp/misc/cs1622.md b/docs/csharp/misc/cs1622.md deleted file mode 100644 index b25da53b5fb37..0000000000000 --- a/docs/csharp/misc/cs1622.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: "Compiler Error CS1622" -title: "Compiler Error CS1622" -ms.date: 07/20/2015 -f1_keywords: - - "CS1622" -helpviewer_keywords: - - "CS1622" -ms.assetid: 6b53a777-4cd8-423a-84ff-22ff588044d3 ---- -# Compiler Error CS1622 - -Cannot return a value from an iterator. Use the yield return statement to return a value, or yield break to end the iteration. - - An iterator is a special function that returns a value via the yield statement rather than the return statement. For more information, see **iterators**. - - The following sample generates CS1622: - -```csharp -// CS1622.cs -// compile with: /target:library -using System.Collections; - -class C : IEnumerable -{ - public IEnumerator GetEnumerator() - { - return (IEnumerator) this; // CS1622 - yield return this; // OK - } -} -``` diff --git a/docs/csharp/misc/cs1624.md b/docs/csharp/misc/cs1624.md deleted file mode 100644 index 0da881f4f26ac..0000000000000 --- a/docs/csharp/misc/cs1624.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -description: "Compiler Error CS1624" -title: "Compiler Error CS1624" -ms.date: 07/20/2015 -f1_keywords: - - "CS1624" -helpviewer_keywords: - - "CS1624" -ms.assetid: af7d049d-27e2-4ce1-973c-5c2cb3e56a63 ---- -# Compiler Error CS1624 - -The body of 'accessor' cannot be an iterator block because 'type' is not an iterator interface type - - This error occurs if an iterator accessor is used but the return type is not one of the iterator interface types: , , , . To avoid this error, use one of the iterator interface types as a return type. - -## Example - - The following sample generates CS1624: - -```csharp -// CS1624.cs -using System; -using System.Collections; - -class C -{ - public int Iterator - // Try this instead: - // public IEnumerable Iterator - { - get // CS1624 - { - yield return 1; - } - } -} -``` diff --git a/docs/csharp/misc/cs1625.md b/docs/csharp/misc/cs1625.md deleted file mode 100644 index 6408b0c97fea5..0000000000000 --- a/docs/csharp/misc/cs1625.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -description: "Compiler Error CS1625" -title: "Compiler Error CS1625" -ms.date: 07/20/2015 -f1_keywords: - - "CS1625" -helpviewer_keywords: - - "CS1625" -ms.assetid: 0b25b7f9-a585-49b0-9ee6-4384e87fcea6 ---- -# Compiler Error CS1625 - -Cannot yield in the body of a finally clause - - A yield statement is not allowed in the body of a finally clause. To avoid this error, move the yield statement out of the finally clause. - - The following sample generates CS1625: - -```csharp -// CS1625.cs -using System.Collections; - -class C : IEnumerable -{ - public IEnumerator GetEnumerator() - { - try - { - } - finally - { - yield return this; // CS1625 - } - } -} - -public class CMain -{ - public static void Main() { } -} -``` diff --git a/docs/csharp/misc/cs1626.md b/docs/csharp/misc/cs1626.md deleted file mode 100644 index 0d2d22e10da50..0000000000000 --- a/docs/csharp/misc/cs1626.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -description: "Compiler Error CS1626" -title: "Compiler Error CS1626" -ms.date: 07/20/2015 -f1_keywords: - - "CS1626" -helpviewer_keywords: - - "CS1626" -ms.assetid: 3ba03383-eb24-4fd8-bf40-8b0f7d6baf0d ---- -# Compiler Error CS1626 - -Cannot yield a value in the body of a try block with a catch clause - - A yield statement is not allowed in a try block if there is a catch clause associated with the try block. To avoid this error, either move the yield statement out of the try/catch/finally block, or remove the catch block. - - The following sample generates CS1626: - -```csharp -// CS1626.cs -using System.Collections; - -class C : IEnumerable -{ - public IEnumerator GetEnumerator() - { - try - { - yield return this; // CS1626 - } - catch - { - - } - finally - { - - } - } -} - -public class CMain -{ - public static void Main() { } -} -``` diff --git a/docs/csharp/misc/cs1627.md b/docs/csharp/misc/cs1627.md deleted file mode 100644 index ddc77233f6631..0000000000000 --- a/docs/csharp/misc/cs1627.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: "Compiler Error CS1627" -title: "Compiler Error CS1627" -ms.date: 07/20/2015 -f1_keywords: - - "CS1627" -helpviewer_keywords: - - "CS1627" -ms.assetid: 58dd6e22-e9ed-4e5c-ae04-ce255f07064e ---- -# Compiler Error CS1627 - -Expression expected after yield return - - This error occurs if `yield` is used without an expression. To avoid this error, insert the appropriate expression in the statement. - - The following sample generates CS1627: - -```csharp -// CS1627.cs -using System.Collections; - -class C : IEnumerable -{ - public IEnumerator GetEnumerator() - { - yield return; // CS1627 - // To resolve, add the following line: - // yield return 0; - } -} - -public class CMain -{ - public static void Main() { } -} -``` diff --git a/docs/csharp/misc/cs1629.md b/docs/csharp/misc/cs1629.md deleted file mode 100644 index 5f404a55550c8..0000000000000 --- a/docs/csharp/misc/cs1629.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: "Compiler Error CS1629" -title: "Compiler Error CS1629" -ms.date: 06/28/2024 -f1_keywords: - - "CS1629" -helpviewer_keywords: - - "CS1629" ---- -# Compiler Error CS1629 - -Unsafe code may not appear in iterators - -The C# language specification doesn't allow unsafe code in iterators. This restriction is relaxed in C# 13. You can use `unsafe` blocks, but the `yield return` statement can't be used in an `unsafe` block. - -The following sample generates CS1629: - -```csharp -// CS1629.cs -// compile with: /unsafe -using System.Collections.Generic; -class C -{ - IEnumerator IteratorMethod() - { - int i; - unsafe // CS1629 - { - int *p = &i; - yield return *p; - } - } -} -``` diff --git a/docs/csharp/misc/cs1631.md b/docs/csharp/misc/cs1631.md deleted file mode 100644 index 91822185e6bc3..0000000000000 --- a/docs/csharp/misc/cs1631.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -description: "Compiler Error CS1631" -title: "Compiler Error CS1631" -ms.date: 07/20/2015 -f1_keywords: - - "CS1631" -helpviewer_keywords: - - "CS1631" -ms.assetid: bf0c5ff9-90a3-4db6-b4ee-0b93e31614e0 ---- -# Compiler Error CS1631 - -Cannot yield a value in the body of a catch clause - - The yield statement is not allowed from within the body of a catch clause. To avoid this error, move the yield statement outside the body of the catch clause. - - The following sample generates CS1631: - -```csharp -// CS1631.cs -using System; -using System.Collections; - -public class C : IEnumerable -{ - public IEnumerator GetEnumerator() - { - try - { - } - catch(Exception e) - { - yield return this; // CS1631 - } - } - - public static void Main() - { - } -} -``` diff --git a/docs/csharp/misc/cs1637.md b/docs/csharp/misc/cs1637.md deleted file mode 100644 index 14f9812a1cb60..0000000000000 --- a/docs/csharp/misc/cs1637.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -description: "Compiler Error CS1637" -title: "Compiler Error CS1637" -ms.date: 07/20/2015 -f1_keywords: - - "CS1637" -helpviewer_keywords: - - "CS1637" -ms.assetid: 95aa82ab-bd52-4def-b5f3-d65e6dcb3855 ---- -# Compiler Error CS1637 - -Iterators cannot have unsafe parameters or yield types - - Check the argument list of the iterator and the type of any yield statements to verify that you are not using any unsafe types. - -## Example - - The following sample generates CS1637: - -```csharp -// CS1637.cs -// compile with: /unsafe -using System.Collections; - -public unsafe class C -{ - public IEnumerator Iterator1(int* p) // CS1637 - { - yield return null; - } -} -``` diff --git a/docs/csharp/whats-new/csharp-13.md b/docs/csharp/whats-new/csharp-13.md index c076bc3ebeccb..bdc7ad3933082 100644 --- a/docs/csharp/whats-new/csharp-13.md +++ b/docs/csharp/whats-new/csharp-13.md @@ -82,7 +82,7 @@ In C# 13, `async` methods can declare `ref` local variables, or local variables This relaxed restriction enables the compiler to allow verifiably safe use of `ref` local variables and `ref struct` types in more places. You can safely use types like in these methods. The compiler tells you if you violate safety rules. -In the same fashion, C# 13 allows `unsafe` contexts in iterator methods, provided no unsafe code appears in the same context as the `yield return` statements. +In the same fashion, C# 13 allows `unsafe` contexts in iterator methods. However, all `yield return` and `yield break` statements must be in safe contexts. ## See also From 1ca6896e82ea7118aa7b79aacff5df055b83039f Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 11:00:17 -0700 Subject: [PATCH 10/25] Update 07-09-july-security-and-quality-rollup.md remove lint issue --- .../2024/07-09-july-security-and-quality-rollup.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index 62499f558b978..b97a60e258bb6 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -46,7 +46,7 @@ The following table outlines the updates in this release. | .NET Framework 3.5, 4.8.1 | [5039895](https://support.microsoft.com/kb/5039895) | | **Microsoft server operating system, version 22H2** | **[5041025](https://support.microsoft.com/kb/5041025)** | | .NET Framework 3.5, 4.8 | [5039889](https://support.microsoft.com/kb/5039889) | -| .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) || +| .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) || **Windows 11, version 21H2** | **[5037037](https://support.microsoft.com/kb/5037037)** | | .NET Framework 3.5, 4.8 | [5039887](https://support.microsoft.com/kb/5039887) | | .NET Framework 3.5, 4.8.1 | [5039906](https://support.microsoft.com/kb/5039906) | @@ -82,7 +82,7 @@ The following table is for earlier Windows and Windows Server versions for Secur | .NET Framework 4.8 | [5039888](https://support.microsoft.com/kb/5039888) | | **Windows Server 2008 R2** | **[5041021](https://support.microsoft.com/kb/5041021)** | | .NET Framework 3.5.1 | [5039909](https://support.microsoft.com/kb/5039909) | -| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5039882](https://support.microsoft.com/kb/5039909) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5039882](https://support.microsoft.com/kb/5039909)| | .NET Framework 4.8 |[5039891](https://support.microsoft.com/kb/5039891) | | **Windows Server 2008** | **[5041024](https://support.microsoft.com/kb/5041024)** | | .NET Framework 2.0, 3.0 | [5039911](https://support.microsoft.com/kb/5039911) | @@ -102,4 +102,4 @@ The following table is for earlier Windows and Windows Server versions for Secur | .NET Framework 3.5 SP1 | [5040680](https://support.microsoft.com/kb/5040680) | | .NET Framework 4.6.2 | [5040122](https://support.microsoft.com/kb/5040122) | -The operating system row lists a KB which will be used for update offering purposes. When the operating system KB is offered, the applicability logic will determine the specific .NET Framework update(s) will be installed. Updates for individual .NET Framework versions will be installed based on the version of .NET Framework that is already present on the device. Because of this the operating system KB is not expected to be listed as installed updates on the device. The expected update to be installed are the .NET Framework specific version updates listed in the preceding table. \ No newline at end of file +The operating system row lists a KB which will be used for update offering purposes. When the operating system KB is offered, the applicability logic will determine the specific .NET Framework update(s) will be installed. Updates for individual .NET Framework versions will be installed based on the version of .NET Framework that is already present on the device. Because of this the operating system KB is not expected to be listed as installed updates on the device. The expected update to be installed are the .NET Framework specific version updates listed in the preceding table. From ea653e730d63e911e87038bf83365d576f0d4891 Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 11:21:09 -0700 Subject: [PATCH 11/25] Update toc.yml --- docs/framework/toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/toc.yml b/docs/framework/toc.yml index ac133ad8ba888..8e7c775f180ce 100644 --- a/docs/framework/toc.yml +++ b/docs/framework/toc.yml @@ -695,4 +695,4 @@ items: - name: Obsolete members href: whats-new/obsolete-members.md - name: Code analysis - href: code-analyzers.md \ No newline at end of file + href: code-analyzers.md From df66bc9d667df2a05b7e44a1c94d6cd6a1e8ea81 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 9 Jul 2024 14:27:13 -0400 Subject: [PATCH 12/25] Clarify the unitialized nature of stackalloc memory. (#41630) * Clarify the unitialized nature of stackalloc memory. Responding to anonymous feedback. * Update docs/csharp/language-reference/operators/stackalloc.md * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> --------- Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> --- docs/csharp/language-reference/operators/stackalloc.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/operators/stackalloc.md b/docs/csharp/language-reference/operators/stackalloc.md index a1439c242370b..90aadd7b05185 100644 --- a/docs/csharp/language-reference/operators/stackalloc.md +++ b/docs/csharp/language-reference/operators/stackalloc.md @@ -49,7 +49,10 @@ The amount of memory available on the stack is limited. If you allocate too much - Avoid using `stackalloc` inside loops. Allocate the memory block outside a loop and reuse it inside the loop. -The content of the newly allocated memory is undefined. You should initialize it before the use. For example, you can use the method that sets all the items to the default value of type `T`. +The content of the newly allocated memory is undefined. You should initialize it, either with a `stackalloc` initializer, or a method like before it's used. + +> [!IMPORTANT] +> Not initializing memory allocated by `stackalloc` is an important difference from the `new` operator. Memory allocated using the `new` operator is initialized to the 0 bit pattern. You can use array initializer syntax to define the content of the newly allocated memory. The following example demonstrates various ways to do that: From 2478b3b8ca4d62ae5784bfa8df7bad5d21d62514 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 9 Jul 2024 11:52:44 -0700 Subject: [PATCH 13/25] Fix argument name (#41688) --- docs/core/whats-new/dotnet-8/sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/whats-new/dotnet-8/sdk.md b/docs/core/whats-new/dotnet-8/sdk.md index e45093bfc9e87..7a14c52df866a 100644 --- a/docs/core/whats-new/dotnet-8/sdk.md +++ b/docs/core/whats-new/dotnet-8/sdk.md @@ -31,7 +31,7 @@ MSBuild includes a new feature that makes it easier to incorporate data from MSB |-----------------------------------|----------------------------------------------------------| | `--getProperty:` | Retrieves the MSBuild property with the specified name. | | `--getItem:` | Retrieves MSBuild items of the specified type. | -| `--getTargetResults:` | Retrieves the outputs from running the specified target. | +| `--getTargetResult:` | Retrieves the outputs from running the specified target. | Values are written to the standard output. Multiple or complex values are output as JSON, as shown in the following examples. From cc27d2636440499af833abcb6c2e17468ae9c40f Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:32:02 -0700 Subject: [PATCH 14/25] Update quest-config.json (#41689) * Update quest-config.json * Update quest-config.json --- quest-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quest-config.json b/quest-config.json index bbd8c47c270c3..b0feb9ceab52e 100644 --- a/quest-config.json +++ b/quest-config.json @@ -39,7 +39,7 @@ "Tag": "new-feature" }, { - "Label": ":label: content-curation", + "Label": "okr-curation", "Tag": "content-curation" } ] From d495e42882afb25f5d0ccc2a4c54f1a212b68e2b Mon Sep 17 00:00:00 2001 From: samwherever Date: Tue, 9 Jul 2024 16:14:58 -0500 Subject: [PATCH 15/25] Acronym definition for 41635 (#41692) --- docs/standard/net-standard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md index b832bff8d65b3..a1ad902927886 100644 --- a/docs/standard/net-standard.md +++ b/docs/standard/net-standard.md @@ -55,7 +55,7 @@ Derivative artifacts are provided to enable more convenient reading and to enabl The primary distribution vehicle for the .NET Standard reference assemblies is NuGet packages. Implementations are delivered in a variety of ways, appropriate for each .NET implementation. -NuGet packages target one or more [frameworks](frameworks.md). .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard framework using the `netstandard` [compact TFM](frameworks.md) (for example, `netstandard1.4`). Libraries that are intended to run on multiple implementations of .NET should target this framework. For the broadest set of APIs, target `netstandard2.0` since the number of available APIs more than doubled between .NET Standard 1.6 and 2.0. +NuGet packages target one or more [frameworks](frameworks.md). .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard framework using the `netstandard` [compact target framework monitor (TFM)](frameworks.md), for example, `netstandard1.4`. Libraries that are intended to run on multiple implementations of .NET should target the .NET Standard framework. For the broadest set of APIs, target `netstandard2.0`, because the number of available APIs more than doubled between .NET Standard 1.6 and 2.0. The [`NETStandard.Library`](https://www.nuget.org/packages/NETStandard.Library/) metapackage references the complete set of NuGet packages that define .NET Standard. The most common way to target `netstandard` is by referencing this metapackage. It describes and provides access to the ~40 .NET libraries and associated APIs that define .NET Standard. You can reference additional packages that target `netstandard` to get access to additional APIs. From e86bbfc3bbdcb28b24166f999ffb743a9bf80a1f Mon Sep 17 00:00:00 2001 From: samwherever Date: Tue, 9 Jul 2024 16:28:03 -0500 Subject: [PATCH 16/25] Re-fix for #41635 (#41693) --- docs/standard/net-standard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md index a1ad902927886..4f58d5c7b9d6e 100644 --- a/docs/standard/net-standard.md +++ b/docs/standard/net-standard.md @@ -55,7 +55,7 @@ Derivative artifacts are provided to enable more convenient reading and to enabl The primary distribution vehicle for the .NET Standard reference assemblies is NuGet packages. Implementations are delivered in a variety of ways, appropriate for each .NET implementation. -NuGet packages target one or more [frameworks](frameworks.md). .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard framework using the `netstandard` [compact target framework monitor (TFM)](frameworks.md), for example, `netstandard1.4`. Libraries that are intended to run on multiple implementations of .NET should target the .NET Standard framework. For the broadest set of APIs, target `netstandard2.0`, because the number of available APIs more than doubled between .NET Standard 1.6 and 2.0. +NuGet packages target one or more [frameworks](frameworks.md). .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard framework using the `netstandard` [compact target framework moniker (TFM)](frameworks.md), for example, `netstandard1.4`. Libraries that are intended to run on multiple implementations of .NET should target the .NET Standard framework. For the broadest set of APIs, target `netstandard2.0`, because the number of available APIs more than doubled between .NET Standard 1.6 and 2.0. The [`NETStandard.Library`](https://www.nuget.org/packages/NETStandard.Library/) metapackage references the complete set of NuGet packages that define .NET Standard. The most common way to target `netstandard` is by referencing this metapackage. It describes and provides access to the ~40 .NET libraries and associated APIs that define .NET Standard. You can reference additional packages that target `netstandard` to get access to additional APIs. From 35f93f5b3e791fa8fb6c0b73acda2649c05e7ca5 Mon Sep 17 00:00:00 2001 From: David Pine Date: Tue, 9 Jul 2024 17:53:10 -0500 Subject: [PATCH 17/25] [Draft] Orleans freshness (#41654) * Touch all ms.dates * Fixes #32544 * WIPO * Added details. Fixes #35965 * Fixes #38331 * Fixes #38301 * Fixes #38430 --- docfx.json | 4 + docs/orleans/benefits.md | 2 +- docs/orleans/deployment/consul-deployment.md | 2 +- .../deployment/deploy-to-azure-app-service.md | 3 +- .../deploy-to-azure-container-apps.md | 2 +- docs/orleans/deployment/docker-deployment.md | 2 +- docs/orleans/deployment/handling-failures.md | 2 +- docs/orleans/deployment/index.md | 2 +- docs/orleans/deployment/kubernetes.md | 2 +- .../global-single-instance.md | 2 +- .../multi-cluster-support/gossip-channels.md | 2 +- .../multi-cluster-configuration.md | 2 +- .../multi-cluster-support/overview.md | 2 +- .../silo-configuration.md | 2 +- docs/orleans/deployment/service-fabric.md | 2 +- ...ooting-azure-cloud-services-deployments.md | 2 +- .../deployment/troubleshooting-deployments.md | 2 +- docs/orleans/grains/cancellation-tokens.md | 2 +- docs/orleans/grains/code-generation.md | 2 +- .../event-sourcing-configuration.md | 2 +- .../immediate-vs-delayed-confirmation.md | 2 +- docs/orleans/grains/event-sourcing/index.md | 2 +- .../event-sourcing/journaledgrain-basics.md | 2 +- .../journaledgrain-diagnostics.md | 2 +- .../log-consistency-providers.md | 2 +- .../grains/event-sourcing/notifications.md | 2 +- .../event-sourcing/replicated-instances.md | 2 +- .../grains/external-tasks-and-grains.md | 2 +- docs/orleans/grains/grain-extensions.md | 2 +- docs/orleans/grains/grain-identity.md | 2 +- docs/orleans/grains/grain-lifecycle.md | 2 +- .../grain-persistence/azure-cosmos-db.md | 2 +- .../grains/grain-persistence/azure-storage.md | 2 +- .../grain-persistence/dynamodb-storage.md | 2 +- .../orleans/grains/grain-persistence/index.md | 2 +- .../grain-persistence/relational-storage.md | 2 +- docs/orleans/grains/grain-placement.md | 2 +- docs/orleans/grains/grain-references.md | 2 +- .../backward-compatibility-guidelines.md | 2 +- .../grain-versioning/compatible-grains.md | 2 +- .../deploying-new-versions-of-grains.md | 2 +- .../grain-versioning/grain-versioning.md | 2 +- .../version-selector-strategy.md | 2 +- docs/orleans/grains/grainservices.md | 2 +- docs/orleans/grains/index.md | 2 +- docs/orleans/grains/interceptors.md | 2 +- docs/orleans/grains/observers.md | 2 +- docs/orleans/grains/oneway.md | 2 +- docs/orleans/grains/request-context.md | 83 +++++++++++++++++-- docs/orleans/grains/request-scheduling.md | 2 +- .../orleans/grains/stateless-worker-grains.md | 2 +- docs/orleans/grains/timers-and-reminders.md | 9 +- docs/orleans/grains/transactions.md | 2 +- docs/orleans/host/client.md | 2 +- .../activation-collection.md | 2 +- .../adonet-configuration.md | 2 +- .../client-configuration.md | 2 +- .../configuring-ado-dot-net-providers.md | 2 +- .../configuring-garbage-collection.md | 2 +- .../orleans/host/configuration-guide/index.md | 2 +- .../list-of-options-classes.md | 2 +- .../local-development-configuration.md | 2 +- .../serialization-configuration.md | 2 +- .../serialization-customization.md | 2 +- .../serialization-immutability.md | 2 +- .../host/configuration-guide/serialization.md | 2 +- .../server-configuration.md | 2 +- .../shutting-down-orleans.md | 2 +- .../host/configuration-guide/startup-tasks.md | 2 +- .../typical-configurations.md | 67 ++++++++------- docs/orleans/host/grain-directory.md | 2 +- docs/orleans/host/heterogeneous-silos.md | 2 +- .../client-error-code-monitoring.md | 2 +- docs/orleans/host/monitoring/index.md | 2 +- .../monitoring/silo-error-code-monitoring.md | 2 +- docs/orleans/host/powershell-client.md | 2 +- docs/orleans/host/silo-lifecycle.md | 2 +- .../implementation/cluster-management.md | 2 +- docs/orleans/implementation/index.md | 2 +- docs/orleans/implementation/load-balancing.md | 2 +- .../messaging-delivery-guarantees.md | 2 +- .../implementation/orleans-lifecycle.md | 2 +- docs/orleans/implementation/scheduler.md | 2 +- .../azure-queue-streams.md | 2 +- .../streams-implementation/index.md | 2 +- docs/orleans/implementation/testing.md | 2 +- docs/orleans/index.yml | 2 +- docs/orleans/migration-guide.md | 2 +- docs/orleans/overview.md | 2 +- .../build-your-first-orleans-app.md | 2 +- .../deploy-scale-orleans-on-azure.md | 2 +- docs/orleans/resources/best-practices.md | 8 +- .../resources/frequently-asked-questions.md | 2 +- docs/orleans/resources/links.md | 2 +- docs/orleans/resources/nuget-packages.md | 2 +- ...ns-architecture-principles-and-approach.md | 2 +- .../orleans-thinking-big-and-small.md | 2 +- docs/orleans/resources/student-projects.md | 2 +- docs/orleans/streaming/broadcast-channel.md | 2 +- docs/orleans/streaming/index.md | 2 +- docs/orleans/streaming/stream-providers.md | 2 +- .../streaming/streams-programming-apis.md | 2 +- docs/orleans/streaming/streams-quick-start.md | 2 +- docs/orleans/streaming/streams-why.md | 2 +- .../tutorials-and-samples/adventure.md | 2 +- .../custom-grain-storage.md | 2 +- docs/orleans/tutorials-and-samples/index.md | 2 +- .../overview-helloworld.md | 2 +- .../tutorials-and-samples/tutorial-1.md | 2 +- 109 files changed, 232 insertions(+), 148 deletions(-) diff --git a/docfx.json b/docfx.json index b072d87ddc5ac..dbb9e33ccc7cc 100644 --- a/docfx.json +++ b/docfx.json @@ -851,6 +851,10 @@ "docs/ai/**/**.yml": "ce-skilling-ai-copilot" }, "no-loc": { + "docs/orleans/**/**.md": [ + "Grain", + "Grains" + ], "**/**.md": [ "Orleans" ] diff --git a/docs/orleans/benefits.md b/docs/orleans/benefits.md index a6f596589df72..24af7c8d2e740 100644 --- a/docs/orleans/benefits.md +++ b/docs/orleans/benefits.md @@ -1,7 +1,7 @@ --- title: Orleans benefits description: Learn the many benefits of .NET Orleans. -ms.date: 09/05/2023 +ms.date: 07/03/2024 --- # Orleans benefits diff --git a/docs/orleans/deployment/consul-deployment.md b/docs/orleans/deployment/consul-deployment.md index 82cf624af899e..2e150df7ef002 100644 --- a/docs/orleans/deployment/consul-deployment.md +++ b/docs/orleans/deployment/consul-deployment.md @@ -1,7 +1,7 @@ --- title: Use Consul as a membership provider description: Learn how to use Consul as a membership provider in .NET Orleans. -ms.date: 05/12/2023 +ms.date: 07/03/2024 --- # Use Consul as a membership provider diff --git a/docs/orleans/deployment/deploy-to-azure-app-service.md b/docs/orleans/deployment/deploy-to-azure-app-service.md index a937869e56ea6..da67b75635b0f 100644 --- a/docs/orleans/deployment/deploy-to-azure-app-service.md +++ b/docs/orleans/deployment/deploy-to-azure-app-service.md @@ -1,10 +1,9 @@ --- title: Deploy Orleans to Azure App Service description: Learn how to deploy an Orleans shopping cart app to Azure App Service. -ms.date: 04/05/2023 +ms.date: 07/03/2024 ms.topic: tutorial ms.custom: devx-track-bicep -no-loc: --- # Deploy Orleans to Azure App Service diff --git a/docs/orleans/deployment/deploy-to-azure-container-apps.md b/docs/orleans/deployment/deploy-to-azure-container-apps.md index 9f8d64f8dea3b..9d79cbf44a073 100644 --- a/docs/orleans/deployment/deploy-to-azure-container-apps.md +++ b/docs/orleans/deployment/deploy-to-azure-container-apps.md @@ -1,7 +1,7 @@ --- title: Deploy Orleans to Azure Container Apps description: Learn how to deploy an updated Orleans shopping cart app to Azure Container Apps. -ms.date: 07/25/2022 +ms.date: 07/03/2024 ms.topic: tutorial ms.custom: devx-track-bicep --- diff --git a/docs/orleans/deployment/docker-deployment.md b/docs/orleans/deployment/docker-deployment.md index 44ea87069db3e..188ba5511814f 100644 --- a/docs/orleans/deployment/docker-deployment.md +++ b/docs/orleans/deployment/docker-deployment.md @@ -1,7 +1,7 @@ --- title: Docker deployment description: Learn how to deploy Orleans apps with Docker. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Docker deployment diff --git a/docs/orleans/deployment/handling-failures.md b/docs/orleans/deployment/handling-failures.md index 4be6ac7166447..51122e5618d33 100644 --- a/docs/orleans/deployment/handling-failures.md +++ b/docs/orleans/deployment/handling-failures.md @@ -1,7 +1,7 @@ --- title: Failure handling description: Learn how to handle failures in Orleans apps. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Failure handling diff --git a/docs/orleans/deployment/index.md b/docs/orleans/deployment/index.md index 3abb8c23df9a8..cbba5f1098d6e 100644 --- a/docs/orleans/deployment/index.md +++ b/docs/orleans/deployment/index.md @@ -1,7 +1,7 @@ --- title: Run an Orleans application description: Learn how to run an Orleans app in .NET. -ms.date: 12/07/2022 +ms.date: 07/03/2024 --- # Orleans application diff --git a/docs/orleans/deployment/kubernetes.md b/docs/orleans/deployment/kubernetes.md index 0b0d37fd2aa5d..61f16a01477ac 100644 --- a/docs/orleans/deployment/kubernetes.md +++ b/docs/orleans/deployment/kubernetes.md @@ -1,7 +1,7 @@ --- title: Kubernetes hosting description: Learn how to host an Orleans app with Kubernetes. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Kubernetes hosting diff --git a/docs/orleans/deployment/multi-cluster-support/global-single-instance.md b/docs/orleans/deployment/multi-cluster-support/global-single-instance.md index 856b5ac8734da..bd125bc0e87b0 100644 --- a/docs/orleans/deployment/multi-cluster-support/global-single-instance.md +++ b/docs/orleans/deployment/multi-cluster-support/global-single-instance.md @@ -1,7 +1,7 @@ --- title: Global single-instance grains description: Learn about global single-instance grains and coordination attributes in .NET Orleans. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Grain coordination attributes diff --git a/docs/orleans/deployment/multi-cluster-support/gossip-channels.md b/docs/orleans/deployment/multi-cluster-support/gossip-channels.md index 28f3a040f0da9..e51ba97e57cd5 100644 --- a/docs/orleans/deployment/multi-cluster-support/gossip-channels.md +++ b/docs/orleans/deployment/multi-cluster-support/gossip-channels.md @@ -1,7 +1,7 @@ --- title: Multi-cluster communication description: Learn about multi-cluster communication in .NET Orleans. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Multi-cluster communication diff --git a/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md b/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md index 531e82d8fc16e..5b2b40201eca7 100644 --- a/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md +++ b/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md @@ -1,7 +1,7 @@ --- title: Multi-cluster configuration description: Learn about multi-cluster configuration in .NET Orleans. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Multi-cluster configuration diff --git a/docs/orleans/deployment/multi-cluster-support/overview.md b/docs/orleans/deployment/multi-cluster-support/overview.md index e879a737c9d2d..1ee903294c039 100644 --- a/docs/orleans/deployment/multi-cluster-support/overview.md +++ b/docs/orleans/deployment/multi-cluster-support/overview.md @@ -1,7 +1,7 @@ --- title: Multi-cluster support description: Learn about multi-cluster support in .NET Orleans. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Multi-cluster support diff --git a/docs/orleans/deployment/multi-cluster-support/silo-configuration.md b/docs/orleans/deployment/multi-cluster-support/silo-configuration.md index ffaaf227628d2..9a6834141f0f1 100644 --- a/docs/orleans/deployment/multi-cluster-support/silo-configuration.md +++ b/docs/orleans/deployment/multi-cluster-support/silo-configuration.md @@ -1,7 +1,7 @@ --- title: Silo configuration description: Learn about silo configuration in .NET Orleans. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Orleans silo configuration diff --git a/docs/orleans/deployment/service-fabric.md b/docs/orleans/deployment/service-fabric.md index c9a2be7e0df33..8903836a653fb 100644 --- a/docs/orleans/deployment/service-fabric.md +++ b/docs/orleans/deployment/service-fabric.md @@ -1,7 +1,7 @@ --- title: Host with Service Fabric description: Learn how to host an Orleans app with Service Fabric. -ms.date: 12/02/2022 +ms.date: 07/03/2024 --- # Host with Service Fabric diff --git a/docs/orleans/deployment/troubleshooting-azure-cloud-services-deployments.md b/docs/orleans/deployment/troubleshooting-azure-cloud-services-deployments.md index 37dc571f99b38..d1b22d64aef18 100644 --- a/docs/orleans/deployment/troubleshooting-azure-cloud-services-deployments.md +++ b/docs/orleans/deployment/troubleshooting-azure-cloud-services-deployments.md @@ -1,7 +1,7 @@ --- title: Troubleshoot Azure Cloud Service deployments description: Learn how to troubleshoot an Orleans app with Azure Cloud Service deployment. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Troubleshoot Azure Cloud Service deployments diff --git a/docs/orleans/deployment/troubleshooting-deployments.md b/docs/orleans/deployment/troubleshooting-deployments.md index e28f8d8c2fdd9..0810b72b057a4 100644 --- a/docs/orleans/deployment/troubleshooting-deployments.md +++ b/docs/orleans/deployment/troubleshooting-deployments.md @@ -1,7 +1,7 @@ --- title: Troubleshoot deployments description: Learn how to troubleshoot an Orleans app deployment. -ms.date: 03/09/2022 +ms.date: 07/03/2024 --- # Troubleshoot deployments diff --git a/docs/orleans/grains/cancellation-tokens.md b/docs/orleans/grains/cancellation-tokens.md index 8943f385455d0..257d353d0e9de 100644 --- a/docs/orleans/grains/cancellation-tokens.md +++ b/docs/orleans/grains/cancellation-tokens.md @@ -1,7 +1,7 @@ --- title: Grain cancellation tokens description: Learn how to use grain cancellation tokens in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Grain cancellation tokens diff --git a/docs/orleans/grains/code-generation.md b/docs/orleans/grains/code-generation.md index 92a3c1522634c..841d72ac3a68f 100644 --- a/docs/orleans/grains/code-generation.md +++ b/docs/orleans/grains/code-generation.md @@ -1,7 +1,7 @@ --- title: Code generation description: Learn how to use code generation in .NET Orleans. -ms.date: 06/20/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/grains/event-sourcing/event-sourcing-configuration.md b/docs/orleans/grains/event-sourcing/event-sourcing-configuration.md index 51353fd170e22..ef5115964450d 100644 --- a/docs/orleans/grains/event-sourcing/event-sourcing-configuration.md +++ b/docs/orleans/grains/event-sourcing/event-sourcing-configuration.md @@ -1,7 +1,7 @@ --- title: Event sourcing configuration description: Learn about event sourcing configuration in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Event sourcing configuration diff --git a/docs/orleans/grains/event-sourcing/immediate-vs-delayed-confirmation.md b/docs/orleans/grains/event-sourcing/immediate-vs-delayed-confirmation.md index 36827605b0cf0..be91e111b8df0 100644 --- a/docs/orleans/grains/event-sourcing/immediate-vs-delayed-confirmation.md +++ b/docs/orleans/grains/event-sourcing/immediate-vs-delayed-confirmation.md @@ -1,7 +1,7 @@ --- title: Immediate and delayed confirmation description: Learn the differences between immediate and delayed confirmation in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Immediate and delayed confirmations diff --git a/docs/orleans/grains/event-sourcing/index.md b/docs/orleans/grains/event-sourcing/index.md index acefca39b25a0..18fa1167aa99f 100644 --- a/docs/orleans/grains/event-sourcing/index.md +++ b/docs/orleans/grains/event-sourcing/index.md @@ -1,7 +1,7 @@ --- title: Event sourcing overview description: Learn an overview of event sourcing in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Event sourcing overview diff --git a/docs/orleans/grains/event-sourcing/journaledgrain-basics.md b/docs/orleans/grains/event-sourcing/journaledgrain-basics.md index 2fb8ef5b00661..757f881172e06 100644 --- a/docs/orleans/grains/event-sourcing/journaledgrain-basics.md +++ b/docs/orleans/grains/event-sourcing/journaledgrain-basics.md @@ -1,7 +1,7 @@ --- title: The JournaledGrain API description: Learn the concepts of the JournaledGrain API in .NET Orleans. -ms.date: 01/31/2022 +ms.date: 07/03/2024 --- # JournaledGrain Basics diff --git a/docs/orleans/grains/event-sourcing/journaledgrain-diagnostics.md b/docs/orleans/grains/event-sourcing/journaledgrain-diagnostics.md index fd31fbe4b4046..4637940af71b4 100644 --- a/docs/orleans/grains/event-sourcing/journaledgrain-diagnostics.md +++ b/docs/orleans/grains/event-sourcing/journaledgrain-diagnostics.md @@ -1,7 +1,7 @@ --- title: JournaledGrain diagnostics description: Learn how to use JournaledGrain diagnostics in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # JournaledGrain diagnostics diff --git a/docs/orleans/grains/event-sourcing/log-consistency-providers.md b/docs/orleans/grains/event-sourcing/log-consistency-providers.md index 74971f83db636..8de50c8b592fe 100644 --- a/docs/orleans/grains/event-sourcing/log-consistency-providers.md +++ b/docs/orleans/grains/event-sourcing/log-consistency-providers.md @@ -1,7 +1,7 @@ --- title: Log-consistency providers description: Learn about log-consistency providers in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Log-consistency providers diff --git a/docs/orleans/grains/event-sourcing/notifications.md b/docs/orleans/grains/event-sourcing/notifications.md index bc32d6ebd516d..ca8285150faf5 100644 --- a/docs/orleans/grains/event-sourcing/notifications.md +++ b/docs/orleans/grains/event-sourcing/notifications.md @@ -1,7 +1,7 @@ --- title: Notifications description: Learn the concepts of notifications in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Notifications diff --git a/docs/orleans/grains/event-sourcing/replicated-instances.md b/docs/orleans/grains/event-sourcing/replicated-instances.md index 665bedc277aeb..5446c51a44709 100644 --- a/docs/orleans/grains/event-sourcing/replicated-instances.md +++ b/docs/orleans/grains/event-sourcing/replicated-instances.md @@ -1,7 +1,7 @@ --- title: Replicated grains description: Learn the concepts of the replicated grains in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Replicated grains diff --git a/docs/orleans/grains/external-tasks-and-grains.md b/docs/orleans/grains/external-tasks-and-grains.md index 7a3d53533a339..c5575096e7304 100644 --- a/docs/orleans/grains/external-tasks-and-grains.md +++ b/docs/orleans/grains/external-tasks-and-grains.md @@ -1,7 +1,7 @@ --- title: External tasks and grains description: Learn about external tasks and grains in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # External tasks and grains diff --git a/docs/orleans/grains/grain-extensions.md b/docs/orleans/grains/grain-extensions.md index 49bb12deb123e..8ed2343472eb5 100644 --- a/docs/orleans/grains/grain-extensions.md +++ b/docs/orleans/grains/grain-extensions.md @@ -1,7 +1,7 @@ --- title: Grain extensions description: Learn how to extend an Orleans Grain. -ms.date: 05/08/2023 +ms.date: 07/03/2024 --- # Grain extensions diff --git a/docs/orleans/grains/grain-identity.md b/docs/orleans/grains/grain-identity.md index 9e148d8845f3e..1ca251c5e52db 100644 --- a/docs/orleans/grains/grain-identity.md +++ b/docs/orleans/grains/grain-identity.md @@ -1,7 +1,7 @@ --- title: Grain identity description: Learn about grain identities in .NET Orleans. -ms.date: 12/12/2023 +ms.date: 07/03/2024 --- # Grain identity diff --git a/docs/orleans/grains/grain-lifecycle.md b/docs/orleans/grains/grain-lifecycle.md index 9b6898d4cb2e1..071b966b0f7f6 100644 --- a/docs/orleans/grains/grain-lifecycle.md +++ b/docs/orleans/grains/grain-lifecycle.md @@ -1,7 +1,7 @@ --- title: Grain lifecycle overview description: Learn about grain lifecycles in .NET Orleans. -ms.date: 02/13/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/grains/grain-persistence/azure-cosmos-db.md b/docs/orleans/grains/grain-persistence/azure-cosmos-db.md index 3eabd263ed35f..f1e894e7dd2ae 100644 --- a/docs/orleans/grains/grain-persistence/azure-cosmos-db.md +++ b/docs/orleans/grains/grain-persistence/azure-cosmos-db.md @@ -3,7 +3,7 @@ title: Azure Cosmos DB grain persistence description: Use the Azure Cosmos DB grain to persist Azure Cosmos DB for NoSQL data in a .NET Orleans application. ms.topic: conceptual ms.devlang: csharp -ms.date: 10/03/2023 +ms.date: 07/03/2024 --- # Azure Cosmos DB for NoSQL grain persistence diff --git a/docs/orleans/grains/grain-persistence/azure-storage.md b/docs/orleans/grains/grain-persistence/azure-storage.md index 50ed4ebc983d5..6093f4597ab45 100644 --- a/docs/orleans/grains/grain-persistence/azure-storage.md +++ b/docs/orleans/grains/grain-persistence/azure-storage.md @@ -1,7 +1,7 @@ --- title: Azure Storage grain persistence description: Learn about Azure Storage grain persistence in .NET Orleans. -ms.date: 08/25/2023 +ms.date: 07/03/2024 --- # Azure Storage grain persistence diff --git a/docs/orleans/grains/grain-persistence/dynamodb-storage.md b/docs/orleans/grains/grain-persistence/dynamodb-storage.md index 6e9a4cbffb374..2172178fb3460 100644 --- a/docs/orleans/grains/grain-persistence/dynamodb-storage.md +++ b/docs/orleans/grains/grain-persistence/dynamodb-storage.md @@ -1,7 +1,7 @@ --- title: Amazon DynamoDB grain persistence description: Learn about Azure DynamoDB grain persistence in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Amazon DynamoDB grain persistence diff --git a/docs/orleans/grains/grain-persistence/index.md b/docs/orleans/grains/grain-persistence/index.md index a84bec96625e1..4f2e0a483661e 100644 --- a/docs/orleans/grains/grain-persistence/index.md +++ b/docs/orleans/grains/grain-persistence/index.md @@ -1,7 +1,7 @@ --- title: Grain persistence description: Learn about persistence in .NET Orleans. -ms.date: 09/05/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/grains/grain-persistence/relational-storage.md b/docs/orleans/grains/grain-persistence/relational-storage.md index 904b804f1e908..f00befb86027b 100644 --- a/docs/orleans/grains/grain-persistence/relational-storage.md +++ b/docs/orleans/grains/grain-persistence/relational-storage.md @@ -1,7 +1,7 @@ --- title: ADO.NET grain persistence description: Learn about ADO.NET grain persistence in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # ADO.NET grain persistence diff --git a/docs/orleans/grains/grain-placement.md b/docs/orleans/grains/grain-placement.md index a0c61caa02106..6e0f96d099cc6 100644 --- a/docs/orleans/grains/grain-placement.md +++ b/docs/orleans/grains/grain-placement.md @@ -1,7 +1,7 @@ --- title: Grain placement description: Learn about grain placements in .NET Orleans. -ms.date: 02/23/2023 +ms.date: 07/03/2024 --- # Grain placement diff --git a/docs/orleans/grains/grain-references.md b/docs/orleans/grains/grain-references.md index 02129527d7daa..e74f66531e232 100644 --- a/docs/orleans/grains/grain-references.md +++ b/docs/orleans/grains/grain-references.md @@ -1,7 +1,7 @@ --- title: Grain references description: Learn about grain references in .NET Orleans. -ms.date: 12/10/2023 +ms.date: 07/03/2024 --- # Grain references diff --git a/docs/orleans/grains/grain-versioning/backward-compatibility-guidelines.md b/docs/orleans/grains/grain-versioning/backward-compatibility-guidelines.md index 9d653288f7191..1eff21226f8ac 100644 --- a/docs/orleans/grains/grain-versioning/backward-compatibility-guidelines.md +++ b/docs/orleans/grains/grain-versioning/backward-compatibility-guidelines.md @@ -1,7 +1,7 @@ --- title: Backward compatibility guidelines description: Learn the backward compatibility guidelines in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Backward compatibility guidelines diff --git a/docs/orleans/grains/grain-versioning/compatible-grains.md b/docs/orleans/grains/grain-versioning/compatible-grains.md index bfa4d0bae183e..a45d12bd6a63a 100644 --- a/docs/orleans/grains/grain-versioning/compatible-grains.md +++ b/docs/orleans/grains/grain-versioning/compatible-grains.md @@ -1,7 +1,7 @@ --- title: Compatible grains description: Learn about compatible grains in .NET Orleans. -ms.date: 03/15/2022 +ms.date: 07/03/2024 --- # Compatible grains diff --git a/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md b/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md index 7b758375c81bd..0a0a2a99b9a0d 100644 --- a/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md +++ b/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md @@ -1,7 +1,7 @@ --- title: Deploy new version of grains description: Learn how to deploy new version of grains in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Deploy new version of grains diff --git a/docs/orleans/grains/grain-versioning/grain-versioning.md b/docs/orleans/grains/grain-versioning/grain-versioning.md index 73208b957b555..1f58d3f8d96d1 100644 --- a/docs/orleans/grains/grain-versioning/grain-versioning.md +++ b/docs/orleans/grains/grain-versioning/grain-versioning.md @@ -1,7 +1,7 @@ --- title: Grain interface versioning description: Learn how to use grain interface versioning in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Grain interface versioning diff --git a/docs/orleans/grains/grain-versioning/version-selector-strategy.md b/docs/orleans/grains/grain-versioning/version-selector-strategy.md index e4fe17c871edc..8c8f5afef8deb 100644 --- a/docs/orleans/grains/grain-versioning/version-selector-strategy.md +++ b/docs/orleans/grains/grain-versioning/version-selector-strategy.md @@ -1,7 +1,7 @@ --- title: Version selector strategy description: Learn how to use the version selector strategy in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Version selector strategy diff --git a/docs/orleans/grains/grainservices.md b/docs/orleans/grains/grainservices.md index 0301934e26997..56307b09c50f2 100644 --- a/docs/orleans/grains/grainservices.md +++ b/docs/orleans/grains/grainservices.md @@ -1,7 +1,7 @@ --- title: Create a GrainService description: Learn how to create a GrainService in .NET Orleans. -ms.date: 12/16/2022 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/grains/index.md b/docs/orleans/grains/index.md index 06449599291a3..fad099be7771c 100644 --- a/docs/orleans/grains/index.md +++ b/docs/orleans/grains/index.md @@ -1,7 +1,7 @@ --- title: Develop a grain description: Learn how to develop a grain in .NET Orleans. -ms.date: 12/10/2023 +ms.date: 07/03/2024 --- # Develop a grain diff --git a/docs/orleans/grains/interceptors.md b/docs/orleans/grains/interceptors.md index 34ce205f0e935..303de38143cb5 100644 --- a/docs/orleans/grains/interceptors.md +++ b/docs/orleans/grains/interceptors.md @@ -1,7 +1,7 @@ --- title: Grain call filters description: Learn about grain call filter in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Grain call filters diff --git a/docs/orleans/grains/observers.md b/docs/orleans/grains/observers.md index 53c5375d801f0..adf5953693df0 100644 --- a/docs/orleans/grains/observers.md +++ b/docs/orleans/grains/observers.md @@ -1,7 +1,7 @@ --- title: Observers description: Learn about observers in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Observers diff --git a/docs/orleans/grains/oneway.md b/docs/orleans/grains/oneway.md index caeb1306193d4..74a65a6e5810f 100644 --- a/docs/orleans/grains/oneway.md +++ b/docs/orleans/grains/oneway.md @@ -1,7 +1,7 @@ --- title: One-way requests description: Learn about one-way requests in .NET Orleans. -ms.date: 06/26/2023 +ms.date: 07/03/2024 --- # One-way requests diff --git a/docs/orleans/grains/request-context.md b/docs/orleans/grains/request-context.md index 16cc04398221c..0bff136fe7591 100644 --- a/docs/orleans/grains/request-context.md +++ b/docs/orleans/grains/request-context.md @@ -1,7 +1,7 @@ --- title: Request context description: Learn about request context in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Request context @@ -15,7 +15,7 @@ void Set(string key, object value) The preceding API is used to store a value in the request context. The value can be any serializable type. ```csharp -Object Get(string key) +object Get(string key) ``` The preceding API is used to retrieve a value from the current request context. @@ -27,7 +27,7 @@ Application metadata also is maintained when you schedule a future computation u > [!IMPORTANT] > The application metadata does not flow back with responses; that is, code that runs as a result of a response being received, either within a `ContinueWith` continuation or after a call to or `GetValue`, will still run within the current context that was set by the original request. -For example, to set a trace id in the client to a new `Guid`, one would simply call: +For example, to set a trace id in the client to a new `Guid`, you call: ```csharp RequestContext.Set("TraceId", Guid.NewGuid()); @@ -36,7 +36,80 @@ RequestContext.Set("TraceId", Guid.NewGuid()); Within grain code (or other code that runs within Orleans on a scheduler thread), the trace id of the original client request could be used, for instance, when writing a log: ```csharp -Logger.Info("Currently processing external request {0}", RequestContext.Get("TraceId")); +Logger.LogInformation( + "Currently processing external request {TraceId}", + RequestContext.Get("TraceId")); ``` -While any serializable object may be sent as application metadata, it's worth mentioning that large or complex objects may add noticeable overhead to message serialization time. For this reason, the use of simple types (strings, GUIDs, or numeric types) is recommended. +While any serializable `object` may be sent as application metadata, it's worth mentioning that large or complex objects may add noticeable overhead to message serialization time. For this reason, the use of simple types (strings, GUIDs, or numeric types) is recommended. + +## Example grain code + +To help illustrate the use of a request context, consider the following example grain code: + +```csharp +using GrainInterfaces; +using Microsoft.Extensions.Logging; + +namespace Grains; + +public class HelloGrain(ILogger logger) : Grain, IHelloGrain +{ + ValueTask IHelloGrain.SayHello(string greeting) + { + _logger.LogInformation(""" + SayHello message received: greeting = "{Greeting}" + """, + greeting); + + var traceId = RequestContext.Get("TraceId") as string + ?? "No trace ID"; + + return ValueTask.FromResult($""" + TraceID: {traceId} + Client said: "{greeting}", so HelloGrain says: Hello! + """); + } +} + +public interface IHelloGrain : IGrainWithStringKey +{ + ValueTask SayHello(string greeting); +} +``` + +The `SayHello` method logs the incoming `greeting` parameter and then retrieves the trace id from the request context. If no trace id is found, the grain logs "No trace ID". + +## Example client code + +The client is able to set the trace id in the request context before calling the `SayHello` method on the `HelloGrain`. The following client code demonstrates how to set a trace id in the request context and call the `SayHello` method on the `HelloGrain`: + +```csharp +using GrainInterfaces; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +using var host = Host.CreateDefaultBuilder(args) + .UseOrleansClient(clientBuilder => + clientBuilder.UseLocalhostClustering()) + .Build(); + +await host.StartAsync(); + +var client = host.Services.GetRequiredService(); + +var grain = client.GetGrain("friend"); + +var id = "example-id-set-by-client"; + +RequestContext.Set("TraceId", id); + +var message = await friend.SayHello("Good morning!"); + +Console.WriteLine(message); +// Output: +// TraceID: example-id-set-by-client +// Client said: "Good morning!", so HelloGrain says: Hello! +``` + +In this example, the client sets the trace id to "example-id-set-by-client" before calling the `SayHello` method on the `HelloGrain`. The grain retrieves the trace id from the request context and logs it. diff --git a/docs/orleans/grains/request-scheduling.md b/docs/orleans/grains/request-scheduling.md index 921aa9c87817f..8229cb71e68e4 100644 --- a/docs/orleans/grains/request-scheduling.md +++ b/docs/orleans/grains/request-scheduling.md @@ -1,7 +1,7 @@ --- title: Request scheduling description: Learn about request scheduling in .NET Orleans. -ms.date: 07/28/2023 +ms.date: 07/03/2024 --- # Request scheduling diff --git a/docs/orleans/grains/stateless-worker-grains.md b/docs/orleans/grains/stateless-worker-grains.md index 609fb0480f7dc..77d3e8daa1617 100644 --- a/docs/orleans/grains/stateless-worker-grains.md +++ b/docs/orleans/grains/stateless-worker-grains.md @@ -1,7 +1,7 @@ --- title: Stateless worker grains description: Learn how to use stateless worker grains in .NET Orleans. -ms.date: 01/20/2024 +ms.date: 07/03/2024 --- # Stateless worker grains diff --git a/docs/orleans/grains/timers-and-reminders.md b/docs/orleans/grains/timers-and-reminders.md index 8c2568a36e7bd..fbcc11ef81e3a 100644 --- a/docs/orleans/grains/timers-and-reminders.md +++ b/docs/orleans/grains/timers-and-reminders.md @@ -1,7 +1,7 @@ --- title: Timers and reminders description: Learn how to use timers and reminders in .NET Orleans. -ms.date: 08/28/2023 +ms.date: 07/03/2024 --- # Timers and reminders @@ -49,9 +49,7 @@ Reminders are similar to timers, with a few important differences: ## Configuration -Reminders, being persistent, rely upon storage to function. -You must specify which storage backing to use before the reminder subsystem functions. -This is done by configuring one of the reminder providers via `Use{X}ReminderService` extension methods, where `X` is the name of the provider, for example, . +Reminders, being persistent, rely upon storage to function. You must specify which storage backing to use before the reminder subsystem functions. This is done by configuring one of the reminder providers via `Use{X}ReminderService` extension methods, where `X` is the name of the provider, for example, . Azure Table configuration: @@ -94,6 +92,9 @@ var silo = new HostBuilder() .Build(); ``` +> [!IMPORTANT] +> If you have a heterogenous cluster, where the silos handle different grain types (implement different interfaces), every silo must add the configuration for Reminders, even if the silo itself doesn't handle any reminders. + ## Reminder usage A grain that uses reminders must implement the method. diff --git a/docs/orleans/grains/transactions.md b/docs/orleans/grains/transactions.md index 1f8eebe947c6c..8a26775839880 100644 --- a/docs/orleans/grains/transactions.md +++ b/docs/orleans/grains/transactions.md @@ -1,7 +1,7 @@ --- title: Transactions in Orleans description: Learn how to use transactions in .NET Orleans. -ms.date: 03/04/2024 +ms.date: 07/03/2024 --- # Orleans transactions diff --git a/docs/orleans/host/client.md b/docs/orleans/host/client.md index 358aeac8c9f65..0e7ea2b9e57bd 100644 --- a/docs/orleans/host/client.md +++ b/docs/orleans/host/client.md @@ -1,7 +1,7 @@ --- title: Orleans clients description: Learn how to write .NET Orleans clients. -ms.date: 01/09/2024 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/activation-collection.md b/docs/orleans/host/configuration-guide/activation-collection.md index e67de9a5a5427..48e38420a114e 100644 --- a/docs/orleans/host/configuration-guide/activation-collection.md +++ b/docs/orleans/host/configuration-guide/activation-collection.md @@ -1,7 +1,7 @@ --- title: Activation collection description: Learn about activation collection in .NET Orleans. -ms.date: 02/07/2024 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/adonet-configuration.md b/docs/orleans/host/configuration-guide/adonet-configuration.md index eb4a4412124e2..4daea39c0b167 100644 --- a/docs/orleans/host/configuration-guide/adonet-configuration.md +++ b/docs/orleans/host/configuration-guide/adonet-configuration.md @@ -1,7 +1,7 @@ --- title: ADO.NET database configuration description: Learn about ADO.NET database configurations in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # ADO.NET database configuration diff --git a/docs/orleans/host/configuration-guide/client-configuration.md b/docs/orleans/host/configuration-guide/client-configuration.md index 7abb0c5eae150..d9c4c338f3803 100644 --- a/docs/orleans/host/configuration-guide/client-configuration.md +++ b/docs/orleans/host/configuration-guide/client-configuration.md @@ -1,7 +1,7 @@ --- title: Client configuration description: Learn about client configurations in .NET Orleans. -ms.date: 01/17/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/configuring-ado-dot-net-providers.md b/docs/orleans/host/configuration-guide/configuring-ado-dot-net-providers.md index 93f8a61f798d5..bfd747825ab32 100644 --- a/docs/orleans/host/configuration-guide/configuring-ado-dot-net-providers.md +++ b/docs/orleans/host/configuration-guide/configuring-ado-dot-net-providers.md @@ -1,7 +1,7 @@ --- title: Configure ADO.NET providers description: Learn how to configure ADO.NET providers in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Configure ADO.NET providers diff --git a/docs/orleans/host/configuration-guide/configuring-garbage-collection.md b/docs/orleans/host/configuration-guide/configuring-garbage-collection.md index aa3b0948a66d1..e211d16111fb4 100644 --- a/docs/orleans/host/configuration-guide/configuring-garbage-collection.md +++ b/docs/orleans/host/configuration-guide/configuring-garbage-collection.md @@ -1,7 +1,7 @@ --- title: Configure .NET garbage collection description: Learn how to configure .NET garbage collection in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Configure .NET garbage collection diff --git a/docs/orleans/host/configuration-guide/index.md b/docs/orleans/host/configuration-guide/index.md index eef65c28fc094..268cc1e4e584e 100644 --- a/docs/orleans/host/configuration-guide/index.md +++ b/docs/orleans/host/configuration-guide/index.md @@ -1,7 +1,7 @@ --- title: Orleans configuration guide description: Explore a guide on how to configure .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Orleans configuration guide diff --git a/docs/orleans/host/configuration-guide/list-of-options-classes.md b/docs/orleans/host/configuration-guide/list-of-options-classes.md index d6042dab70aed..5f7848df49635 100644 --- a/docs/orleans/host/configuration-guide/list-of-options-classes.md +++ b/docs/orleans/host/configuration-guide/list-of-options-classes.md @@ -1,7 +1,7 @@ --- title: List of options classes description: Explore a listing of options classes in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # List of options classes diff --git a/docs/orleans/host/configuration-guide/local-development-configuration.md b/docs/orleans/host/configuration-guide/local-development-configuration.md index 4ded3147d11d5..fcce519d0ac42 100644 --- a/docs/orleans/host/configuration-guide/local-development-configuration.md +++ b/docs/orleans/host/configuration-guide/local-development-configuration.md @@ -1,7 +1,7 @@ --- title: Local development configuration description: Learn how to configure .NET Orleans for local development. -ms.date: 05/08/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/serialization-configuration.md b/docs/orleans/host/configuration-guide/serialization-configuration.md index 92487e6fa94ba..4879cce52fb3e 100644 --- a/docs/orleans/host/configuration-guide/serialization-configuration.md +++ b/docs/orleans/host/configuration-guide/serialization-configuration.md @@ -1,7 +1,7 @@ --- title: Serialization configuration in Orleans description: Learn how to configure serialization in .NET Orleans. -ms.date: 12/15/2022 +ms.date: 07/03/2024 uid: orleans-serialization-configuration zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/serialization-customization.md b/docs/orleans/host/configuration-guide/serialization-customization.md index 0538627413dff..4c22a4d683606 100644 --- a/docs/orleans/host/configuration-guide/serialization-customization.md +++ b/docs/orleans/host/configuration-guide/serialization-customization.md @@ -1,7 +1,7 @@ --- title: Serialization customization in Orleans description: Learn how to customize serialization in .NET Orleans. -ms.date: 12/15/2022 +ms.date: 07/03/2024 uid: orleans-serialization-customization zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/serialization-immutability.md b/docs/orleans/host/configuration-guide/serialization-immutability.md index 61b4de703f194..90748b45bfed8 100644 --- a/docs/orleans/host/configuration-guide/serialization-immutability.md +++ b/docs/orleans/host/configuration-guide/serialization-immutability.md @@ -1,7 +1,7 @@ --- title: Serialization of immutable types in Orleans description: Learn how .NET Orleans handles type immutability in the context of serialization. -ms.date: 4/17/2023 +ms.date: 07/03/2024 --- # Serialization of immutable types in Orleans diff --git a/docs/orleans/host/configuration-guide/serialization.md b/docs/orleans/host/configuration-guide/serialization.md index ad35b1a1de214..7569f56d72868 100644 --- a/docs/orleans/host/configuration-guide/serialization.md +++ b/docs/orleans/host/configuration-guide/serialization.md @@ -1,7 +1,7 @@ --- title: Serialization in Orleans description: Learn about serialization and custom serializers in .NET Orleans. -ms.date: 06/20/2023 +ms.date: 07/03/2024 uid: orleans-serialization zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/server-configuration.md b/docs/orleans/host/configuration-guide/server-configuration.md index dfc0349bb07fe..d0ad70a46b2ae 100644 --- a/docs/orleans/host/configuration-guide/server-configuration.md +++ b/docs/orleans/host/configuration-guide/server-configuration.md @@ -1,7 +1,7 @@ --- title: Server configuration description: Learn how to configure .NET Orleans server settings. -ms.date: 12/06/2022 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/configuration-guide/shutting-down-orleans.md b/docs/orleans/host/configuration-guide/shutting-down-orleans.md index c38203c8c3349..ae03f3966bb9d 100644 --- a/docs/orleans/host/configuration-guide/shutting-down-orleans.md +++ b/docs/orleans/host/configuration-guide/shutting-down-orleans.md @@ -1,7 +1,7 @@ --- title: Shut down Orleans silos description: Learn how to shut down .NET Orleans silos. -ms.date: 11/01/2022 +ms.date: 07/03/2024 --- # Shut down Orleans silos diff --git a/docs/orleans/host/configuration-guide/startup-tasks.md b/docs/orleans/host/configuration-guide/startup-tasks.md index 64bac2fff72d4..6c86ffcb4b186 100644 --- a/docs/orleans/host/configuration-guide/startup-tasks.md +++ b/docs/orleans/host/configuration-guide/startup-tasks.md @@ -1,7 +1,7 @@ --- title: Startup tasks description: Learn how to configure and manage startup tasks in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Startup tasks diff --git a/docs/orleans/host/configuration-guide/typical-configurations.md b/docs/orleans/host/configuration-guide/typical-configurations.md index 81c3db48dd90a..bb9dbefc6636b 100644 --- a/docs/orleans/host/configuration-guide/typical-configurations.md +++ b/docs/orleans/host/configuration-guide/typical-configurations.md @@ -1,7 +1,7 @@ --- title: Typical configurations description: Learn about typical configurations in .NET Orleans. -ms.date: 08/18/2023 +ms.date: 07/03/2024 --- # Typical configurations @@ -37,7 +37,7 @@ const string connectionString = "YOUR_CONNECTION_STRING_HERE"; var silo = new HostBuilder() .UseOrleans(builder => { - .Configure(options => + builder.Configure(options => { options.ClusterId = "Cluster42"; options.ServiceId = "MyAwesomeService"; @@ -54,15 +54,16 @@ Client configuration: ```csharp const string connectionString = "YOUR_CONNECTION_STRING_HERE"; -var client = new ClientBuilder() - .Configure(options => - { - options.ClusterId = "Cluster42"; - options.ServiceId = "MyAwesomeService"; - }) - .UseAzureStorageClustering( - options => options.ConfigureTableServiceClient(connectionString)) - .ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Warning).AddConsole()) + +using var host = Host.CreateDefaultBuilder(args) + .UseOrleansClient(clientBuilder => + clientBuilder.Configure(options => + { + options.ClusterId = "Cluster42"; + options.ServiceId = "MyAwesomeService"; + }) + .UseAzureStorageClustering( + options => options.ConfigureTableServiceClient(connectionString))) .Build(); ``` @@ -77,7 +78,7 @@ const string connectionString = "YOUR_CONNECTION_STRING_HERE"; var silo = new HostBuilder() .UseOrleans(builder => { - .Configure(options => + builder.Configure(options => { options.ClusterId = "Cluster42"; options.ServiceId = "MyAwesomeService"; @@ -97,18 +98,19 @@ Client configuration: ```csharp const string connectionString = "YOUR_CONNECTION_STRING_HERE"; -var client = new ClientBuilder() - .Configure(options => - { - options.ClusterId = "Cluster42"; - options.ServiceId = "MyAwesomeService"; - }) - .UseAdoNetClustering(options => - { - options.ConnectionString = connectionString; - options.Invariant = "System.Data.SqlClient"; - }) - .ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Warning).AddConsole()) + +using var host = Host.CreateDefaultBuilder(args) + .UseOrleansClient(clientBuilder => + clientBuilder.Configure(options => + { + options.ClusterId = "Cluster42"; + options.ServiceId = "MyAwesomeService"; + }) + .UseAdoNetClustering(options => + { + options.ConnectionString = connectionString; + options.Invariant = "System.Data.SqlClient"; + })) .Build(); ``` @@ -146,13 +148,14 @@ var gateways = new IPEndPoint[] // ... new IPEndPoint(OTHER_SILO__IP_ADDRESS_N, 30_000), }; -var client = new ClientBuilder() - .UseStaticClustering(gateways) - .Configure(options => - { - options.ClusterId = "Cluster42"; - options.ServiceId = "MyAwesomeService"; - }) - .ConfigureLogging(logging => logging.AddConsole()) + +using var host = Host.CreateDefaultBuilder(args) + .UseOrleansClient(clientBuilder => + clientBuilder.UseStaticClustering(gateways) + .Configure(options => + { + options.ClusterId = "Cluster42"; + options.ServiceId = "MyAwesomeService"; + })) .Build(); ``` diff --git a/docs/orleans/host/grain-directory.md b/docs/orleans/host/grain-directory.md index 58e618eb9d410..abd83d65090da 100644 --- a/docs/orleans/host/grain-directory.md +++ b/docs/orleans/host/grain-directory.md @@ -1,7 +1,7 @@ --- title: Grain directory description: Learn about the grain directory in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Orleans grain directory diff --git a/docs/orleans/host/heterogeneous-silos.md b/docs/orleans/host/heterogeneous-silos.md index ac3fa011116cb..b9a609c39b7b6 100644 --- a/docs/orleans/host/heterogeneous-silos.md +++ b/docs/orleans/host/heterogeneous-silos.md @@ -1,7 +1,7 @@ --- title: Heterogeneous silos overview description: Learn an overview of the supported heterogeneous silos in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Heterogeneous silos overview diff --git a/docs/orleans/host/monitoring/client-error-code-monitoring.md b/docs/orleans/host/monitoring/client-error-code-monitoring.md index 8c0c0dc9b267a..8bf6597d62517 100644 --- a/docs/orleans/host/monitoring/client-error-code-monitoring.md +++ b/docs/orleans/host/monitoring/client-error-code-monitoring.md @@ -1,7 +1,7 @@ --- title: Client error code monitoring description: Explore the various client error code monitoring values in .NET Orleans. -ms.date: 02/21/2023 +ms.date: 07/03/2024 ms.topic: error-reference --- diff --git a/docs/orleans/host/monitoring/index.md b/docs/orleans/host/monitoring/index.md index 67aef89054b49..745a233fa04fb 100644 --- a/docs/orleans/host/monitoring/index.md +++ b/docs/orleans/host/monitoring/index.md @@ -1,7 +1,7 @@ --- title: Orleans observability description: Explore the various runtime monitoring, logging, distributed tracing, and metrics options available in .NET Orleans. -ms.date: 08/31/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/host/monitoring/silo-error-code-monitoring.md b/docs/orleans/host/monitoring/silo-error-code-monitoring.md index fb2772b9a95d7..992857a01b8eb 100644 --- a/docs/orleans/host/monitoring/silo-error-code-monitoring.md +++ b/docs/orleans/host/monitoring/silo-error-code-monitoring.md @@ -1,7 +1,7 @@ --- title: Silo error code monitoring description: Explore the various silo error code monitoring values in .NET Orleans. -ms.date: 02/21/2023 +ms.date: 07/03/2024 ms.topic: error-reference --- diff --git a/docs/orleans/host/powershell-client.md b/docs/orleans/host/powershell-client.md index c4cf6b85772aa..0509e7b89d271 100644 --- a/docs/orleans/host/powershell-client.md +++ b/docs/orleans/host/powershell-client.md @@ -1,7 +1,7 @@ --- title: PowerShell client module description: Learn about the PowerShell client module in .NET Orleans. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # PowerShell client module diff --git a/docs/orleans/host/silo-lifecycle.md b/docs/orleans/host/silo-lifecycle.md index 7f7d7d5c681b0..7ab5a239a39a0 100644 --- a/docs/orleans/host/silo-lifecycle.md +++ b/docs/orleans/host/silo-lifecycle.md @@ -1,7 +1,7 @@ --- title: Orleans silo lifecycles description: Learn about .NET Orleans silo lifecycles. -ms.date: 03/16/2022 +ms.date: 07/03/2024 --- # Orleans silo lifecycle overview diff --git a/docs/orleans/implementation/cluster-management.md b/docs/orleans/implementation/cluster-management.md index 23a9d37634cde..4747013448137 100644 --- a/docs/orleans/implementation/cluster-management.md +++ b/docs/orleans/implementation/cluster-management.md @@ -1,7 +1,7 @@ --- title: Cluster management in Orleans description: Learn about cluster management in .NET Orleans. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Cluster management in Orleans diff --git a/docs/orleans/implementation/index.md b/docs/orleans/implementation/index.md index 75542f202df8a..1ff7d1ddcad5c 100644 --- a/docs/orleans/implementation/index.md +++ b/docs/orleans/implementation/index.md @@ -1,7 +1,7 @@ --- title: Implementation details description: Explore the various implementation details in .NET Orleans. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Implementation details overview diff --git a/docs/orleans/implementation/load-balancing.md b/docs/orleans/implementation/load-balancing.md index 747c013464424..f52ef1f8d48e1 100644 --- a/docs/orleans/implementation/load-balancing.md +++ b/docs/orleans/implementation/load-balancing.md @@ -1,7 +1,7 @@ --- title: Load balancing description: Learn how .NET Orleans manages load balancing. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Load balancing diff --git a/docs/orleans/implementation/messaging-delivery-guarantees.md b/docs/orleans/implementation/messaging-delivery-guarantees.md index bde2fa84853d4..dcc912824616f 100644 --- a/docs/orleans/implementation/messaging-delivery-guarantees.md +++ b/docs/orleans/implementation/messaging-delivery-guarantees.md @@ -1,7 +1,7 @@ --- title: Messaging delivery guarantees description: Learn about messaging delivery guarantees in .NET Orleans. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Messaging delivery guarantees diff --git a/docs/orleans/implementation/orleans-lifecycle.md b/docs/orleans/implementation/orleans-lifecycle.md index bad7afb384123..4b23bf3a05856 100644 --- a/docs/orleans/implementation/orleans-lifecycle.md +++ b/docs/orleans/implementation/orleans-lifecycle.md @@ -1,7 +1,7 @@ --- title: Orleans lifecycle description: Learn the various lifecycles of .NET Orleans apps. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Orleans lifecycle overview diff --git a/docs/orleans/implementation/scheduler.md b/docs/orleans/implementation/scheduler.md index ffca6060b9c12..02825e920e6b3 100644 --- a/docs/orleans/implementation/scheduler.md +++ b/docs/orleans/implementation/scheduler.md @@ -1,7 +1,7 @@ --- title: Scheduling overview description: Explore the scheduling overview in .NET Orleans. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Scheduling overview diff --git a/docs/orleans/implementation/streams-implementation/azure-queue-streams.md b/docs/orleans/implementation/streams-implementation/azure-queue-streams.md index c3ed5dc1af360..4ccd4771e6126 100644 --- a/docs/orleans/implementation/streams-implementation/azure-queue-streams.md +++ b/docs/orleans/implementation/streams-implementation/azure-queue-streams.md @@ -1,7 +1,7 @@ --- title: Azure Queue streams overview description: Explore the streaming implementation with Azure Queue in .NET Orleans. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Azure Queue streams overview diff --git a/docs/orleans/implementation/streams-implementation/index.md b/docs/orleans/implementation/streams-implementation/index.md index fe00abcbdb197..ff1319c9916f1 100644 --- a/docs/orleans/implementation/streams-implementation/index.md +++ b/docs/orleans/implementation/streams-implementation/index.md @@ -1,7 +1,7 @@ --- title: Streams implementation details description: Learn the stream implementation details in .NET Orleans. -ms.date: 03/17/2022 +ms.date: 07/03/2024 --- # Orleans streams implementation details diff --git a/docs/orleans/implementation/testing.md b/docs/orleans/implementation/testing.md index 5f46c3fefacc7..9c1f1665a95c4 100644 --- a/docs/orleans/implementation/testing.md +++ b/docs/orleans/implementation/testing.md @@ -1,7 +1,7 @@ --- title: Unit testing description: Learn how to unit test with .NET Orleans. -ms.date: 01/17/2024 +ms.date: 07/03/2024 --- # Unit testing with Orleans diff --git a/docs/orleans/index.yml b/docs/orleans/index.yml index 20a9d9b57bf7e..7183c5715540e 100644 --- a/docs/orleans/index.yml +++ b/docs/orleans/index.yml @@ -9,7 +9,7 @@ metadata: description: Samples, tutorials, and education for .NET Orleans. Microsoft's cloud native and distributed systems platform. ms.topic: hub-page ms.service: dotnet-orleans - ms.date: 03/06/2023 + ms.date: 07/03/2024 highlightedContent: # itemType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new diff --git a/docs/orleans/migration-guide.md b/docs/orleans/migration-guide.md index 1d438f559f2f7..63e4a32f7b6db 100644 --- a/docs/orleans/migration-guide.md +++ b/docs/orleans/migration-guide.md @@ -1,7 +1,7 @@ --- title: Migrate from Orleans 3.x to 7.0 description: Learn the various new features introduced in Orleans 7.0, and how to migrate from 3.x versions. -ms.date: 03/06/2023 +ms.date: 07/03/2024 --- # Migrate from Orleans 3.x to 7.0 diff --git a/docs/orleans/overview.md b/docs/orleans/overview.md index f6f89d7cc6da4..7177ffdb442b5 100644 --- a/docs/orleans/overview.md +++ b/docs/orleans/overview.md @@ -1,7 +1,7 @@ --- title: Orleans overview description: An introduction to .NET Orleans. -ms.date: 05/10/2022 +ms.date: 07/03/2024 --- # Microsoft Orleans diff --git a/docs/orleans/quickstarts/build-your-first-orleans-app.md b/docs/orleans/quickstarts/build-your-first-orleans-app.md index 549ad6554ea49..1bcf6e5c2ed04 100644 --- a/docs/orleans/quickstarts/build-your-first-orleans-app.md +++ b/docs/orleans/quickstarts/build-your-first-orleans-app.md @@ -1,7 +1,7 @@ --- title: 'Quickstart: Build your first Orleans app with ASP.NET Core' description: Learn how to use Orleans to build a scalable, distributed ASP.NET Core application -ms.date: 01/09/2024 +ms.date: 07/03/2024 ms.topic: quickstart ms.devlang: csharp --- diff --git a/docs/orleans/quickstarts/deploy-scale-orleans-on-azure.md b/docs/orleans/quickstarts/deploy-scale-orleans-on-azure.md index e5b1a33029e3c..5ae477779e717 100644 --- a/docs/orleans/quickstarts/deploy-scale-orleans-on-azure.md +++ b/docs/orleans/quickstarts/deploy-scale-orleans-on-azure.md @@ -3,7 +3,7 @@ title: Deploy and scale an Orleans app on Azure description: Host and scale an Orleans app on Azure Container Apps with Azure Container Registry and Azure Table Storage or Azure Cosmos DB for NoSQL. ms.topic: how-to ms.devlang: csharp -ms.date: 01/11/2024 +ms.date: 07/03/2024 zone_pivot_groups: orleans-persistence-option # CustomerIntent: As a developer, I want to host my Orleans application in Azure so that I can take advantage of the scaling capabilities for the database and application services. --- diff --git a/docs/orleans/resources/best-practices.md b/docs/orleans/resources/best-practices.md index e225a2dc84e8b..c62dc77084ad1 100644 --- a/docs/orleans/resources/best-practices.md +++ b/docs/orleans/resources/best-practices.md @@ -1,7 +1,7 @@ --- title: Best practices in Orleans description: Learn some of the best practices in Orleans for .NET Orleans app development. -ms.date: 01/18/2024 +ms.date: 07/03/2024 --- # Best practices in Orleans @@ -67,7 +67,9 @@ Orleans is not the best fit when: ```csharp var x = await bar.Foo(); + var y = DoSomething(x); + return y; ``` @@ -75,11 +77,13 @@ Orleans is not the best fit when: ```csharp var tasks = new List(); + foreach (var grain in grains) { tasks.Add(grain.Foo()); } await Task.WhenAll(tasks); + DoMoreWork(); ``` @@ -95,7 +99,7 @@ Orleans is not the best fit when: - Deadlock can occur due to call cycles. - Examples: - The grain calls itself. - - Grains A calls B while C is also calling A (A -> B -> C -> A). + - Grain A calls B which calls C which in turn is calling A (A -> B -> C -> A). - Grain A calls Grain B as Grain B is calling Grain A (A -> B -> A). - Timeouts are used to automatically break deadlocks. - can be used to allow the grain class reentrant. diff --git a/docs/orleans/resources/frequently-asked-questions.md b/docs/orleans/resources/frequently-asked-questions.md index 4efd7ddd63839..7568ce2014dc6 100644 --- a/docs/orleans/resources/frequently-asked-questions.md +++ b/docs/orleans/resources/frequently-asked-questions.md @@ -1,7 +1,7 @@ --- title: Frequently asked questions description: Explore the frequently asked questions for .NET Orleans. -ms.date: 03/21/2022 +ms.date: 07/03/2024 --- # Frequently Asked Questions diff --git a/docs/orleans/resources/links.md b/docs/orleans/resources/links.md index 256622f279836..b93c5f1b6dcea 100644 --- a/docs/orleans/resources/links.md +++ b/docs/orleans/resources/links.md @@ -1,7 +1,7 @@ --- title: External links for .NET Orleans description: Explore external links for .NET Orleans. -ms.date: 03/21/2022 +ms.date: 07/03/2024 --- # External links for .NET Orleans diff --git a/docs/orleans/resources/nuget-packages.md b/docs/orleans/resources/nuget-packages.md index 07fbbb7b1d0e0..4c7d26fae91db 100644 --- a/docs/orleans/resources/nuget-packages.md +++ b/docs/orleans/resources/nuget-packages.md @@ -1,7 +1,7 @@ --- title: Orleans NuGet packages description: Explore the many .NET Orleans NuGet packages. -ms.date: 03/07/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/resources/orleans-architecture-principles-and-approach.md b/docs/orleans/resources/orleans-architecture-principles-and-approach.md index 0f0c6ff1ddb36..c8e836c6b66dc 100644 --- a/docs/orleans/resources/orleans-architecture-principles-and-approach.md +++ b/docs/orleans/resources/orleans-architecture-principles-and-approach.md @@ -1,7 +1,7 @@ --- title: Orleans architecture design principles description: Explore the architecture design principles for .NET Orleans. -ms.date: 03/21/2022 +ms.date: 07/03/2024 --- # Orleans architecture design principles diff --git a/docs/orleans/resources/orleans-thinking-big-and-small.md b/docs/orleans/resources/orleans-thinking-big-and-small.md index 1fc512053c5ec..d96ce70a925bb 100644 --- a/docs/orleans/resources/orleans-thinking-big-and-small.md +++ b/docs/orleans/resources/orleans-thinking-big-and-small.md @@ -1,7 +1,7 @@ --- title: Big and small thinking description: Learn how Orleans applies to both big and small distributed applications. -ms.date: 03/21/2022 +ms.date: 07/03/2024 --- # Big and small thinking diff --git a/docs/orleans/resources/student-projects.md b/docs/orleans/resources/student-projects.md index ec79daaf253fe..179a5dd6be905 100644 --- a/docs/orleans/resources/student-projects.md +++ b/docs/orleans/resources/student-projects.md @@ -1,7 +1,7 @@ --- title: Student projects description: Learn how the Orleans team encourages students to build distributed applications. -ms.date: 03/21/2022 +ms.date: 07/03/2024 --- # Student projects diff --git a/docs/orleans/streaming/broadcast-channel.md b/docs/orleans/streaming/broadcast-channel.md index cfc932b7c969c..9d7b8638c332d 100644 --- a/docs/orleans/streaming/broadcast-channel.md +++ b/docs/orleans/streaming/broadcast-channel.md @@ -1,7 +1,7 @@ --- title: Broadcast channels description: Learn how to work with Orleans broadcast channels. -ms.date: 01/02/2023 +ms.date: 07/03/2024 --- # Broadcast channels in Orleans diff --git a/docs/orleans/streaming/index.md b/docs/orleans/streaming/index.md index f93c05e3c9152..af4d38d10a42e 100644 --- a/docs/orleans/streaming/index.md +++ b/docs/orleans/streaming/index.md @@ -1,7 +1,7 @@ --- title: Streaming with Orleans description: Learn how to work with streaming in .NET Orleans. -ms.date: 05/04/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/streaming/stream-providers.md b/docs/orleans/streaming/stream-providers.md index 622e53b2c3582..882b90bacee9b 100644 --- a/docs/orleans/streaming/stream-providers.md +++ b/docs/orleans/streaming/stream-providers.md @@ -1,7 +1,7 @@ --- title: Orleans stream providers description: Learn about the available stream providers for .NET Orleans. -ms.date: 01/09/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/streaming/streams-programming-apis.md b/docs/orleans/streaming/streams-programming-apis.md index 96ce46a3392de..b68ea443b3df4 100644 --- a/docs/orleans/streaming/streams-programming-apis.md +++ b/docs/orleans/streaming/streams-programming-apis.md @@ -1,7 +1,7 @@ --- title: Orleans streaming APIs description: Learn about the available streaming APIs for .NET Orleans. -ms.date: 01/09/2024 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/streaming/streams-quick-start.md b/docs/orleans/streaming/streams-quick-start.md index be863bc409526..d15bc30f1de06 100644 --- a/docs/orleans/streaming/streams-quick-start.md +++ b/docs/orleans/streaming/streams-quick-start.md @@ -1,7 +1,7 @@ --- title: Orleans streaming quickstart description: Learn from the streaming quickstart in .NET Orleans. -ms.date: 02/14/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/streaming/streams-why.md b/docs/orleans/streaming/streams-why.md index 582e4eb459369..e31726093bee5 100644 --- a/docs/orleans/streaming/streams-why.md +++ b/docs/orleans/streaming/streams-why.md @@ -1,7 +1,7 @@ --- title: Why streams in Orleans? description: Learn why you'd want to use streams in .NET Orleans. -ms.date: 03/21/2022 +ms.date: 07/03/2024 --- # Why streams in Orleans? diff --git a/docs/orleans/tutorials-and-samples/adventure.md b/docs/orleans/tutorials-and-samples/adventure.md index ea1783d147010..1ccfea4f566c3 100644 --- a/docs/orleans/tutorials-and-samples/adventure.md +++ b/docs/orleans/tutorials-and-samples/adventure.md @@ -1,7 +1,7 @@ --- title: Adventure game sample project description: Explore the Adventure sample project written with .NET Orleans. -ms.date: 12/05/2022 +ms.date: 07/03/2024 --- # Adventure game sample project diff --git a/docs/orleans/tutorials-and-samples/custom-grain-storage.md b/docs/orleans/tutorials-and-samples/custom-grain-storage.md index 135acad72ae89..d722068bca180 100644 --- a/docs/orleans/tutorials-and-samples/custom-grain-storage.md +++ b/docs/orleans/tutorials-and-samples/custom-grain-storage.md @@ -1,7 +1,7 @@ --- title: Custom grain storage sample project description: Explore a custom grain storage sample project written with .NET Orleans. -ms.date: 02/27/2023 +ms.date: 07/03/2024 zone_pivot_groups: orleans-version --- diff --git a/docs/orleans/tutorials-and-samples/index.md b/docs/orleans/tutorials-and-samples/index.md index d83c61f40ad43..040e4141b83f1 100644 --- a/docs/orleans/tutorials-and-samples/index.md +++ b/docs/orleans/tutorials-and-samples/index.md @@ -1,7 +1,7 @@ --- title: Orleans sample projects description: Explore the various sample projects written with .NET Orleans. -ms.date: 12/01/2022 +ms.date: 07/03/2024 --- # Orleans sample projects diff --git a/docs/orleans/tutorials-and-samples/overview-helloworld.md b/docs/orleans/tutorials-and-samples/overview-helloworld.md index 8103be754de29..761d969911d68 100644 --- a/docs/orleans/tutorials-and-samples/overview-helloworld.md +++ b/docs/orleans/tutorials-and-samples/overview-helloworld.md @@ -1,7 +1,7 @@ --- title: "Tutorial: Hello world" description: Explore the hello world tutorial project written with .NET Orleans. -ms.date: 02/04/2022 +ms.date: 07/03/2024 --- # Tutorial: Hello world diff --git a/docs/orleans/tutorials-and-samples/tutorial-1.md b/docs/orleans/tutorials-and-samples/tutorial-1.md index 11f31bc088ed2..ea963fd12afb9 100644 --- a/docs/orleans/tutorials-and-samples/tutorial-1.md +++ b/docs/orleans/tutorials-and-samples/tutorial-1.md @@ -1,7 +1,7 @@ --- title: Minimal Orleans app sample project description: Explore the minimal Orleans app sample project. -ms.date: 06/06/2023 +ms.date: 07/03/2024 --- # Tutorial: Create a minimal Orleans application From ad0c01a7900712bb224209c0f220b3d99cc5068c Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:14:58 -0700 Subject: [PATCH 18/25] Update 07-09-july-security-and-quality-rollup.md --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index b97a60e258bb6..bb36c808a490b 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -3,7 +3,7 @@ title: July 2024 security and quality rollup description: Learn about the improvements in the .NET Framework July 2024 security and quality rollup. ms.date: 07/09/2024 --- -# April 2024 security and quality rollup +# July 2024 security and quality rollup _Released July 9, 2024_ From 21d6e4c809196581e3561e1519498aa7dd1a968e Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:20:28 -0700 Subject: [PATCH 19/25] Update 07-09-july-security-and-quality-rollup.md --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index bb36c808a490b..d530decb4cf7c 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -46,7 +46,7 @@ The following table outlines the updates in this release. | .NET Framework 3.5, 4.8.1 | [5039895](https://support.microsoft.com/kb/5039895) | | **Microsoft server operating system, version 22H2** | **[5041025](https://support.microsoft.com/kb/5041025)** | | .NET Framework 3.5, 4.8 | [5039889](https://support.microsoft.com/kb/5039889) | -| .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) || +| .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) | **Windows 11, version 21H2** | **[5037037](https://support.microsoft.com/kb/5037037)** | | .NET Framework 3.5, 4.8 | [5039887](https://support.microsoft.com/kb/5039887) | | .NET Framework 3.5, 4.8.1 | [5039906](https://support.microsoft.com/kb/5039906) | From afb9e2053ae3f6ca38eeecb0ec0e1ed9690c0e5e Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:45:23 -0700 Subject: [PATCH 20/25] Update 07-09-july-security-and-quality-rollup.md --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index d530decb4cf7c..928704c7503f7 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -47,7 +47,7 @@ The following table outlines the updates in this release. | **Microsoft server operating system, version 22H2** | **[5041025](https://support.microsoft.com/kb/5041025)** | | .NET Framework 3.5, 4.8 | [5039889](https://support.microsoft.com/kb/5039889) | | .NET Framework 3.5, 4.8.1 | [5039907](https://support.microsoft.com/kb/5039907) | -**Windows 11, version 21H2** | **[5037037](https://support.microsoft.com/kb/5037037)** | +| **Windows 11, version 21H2** | **[5037037](https://support.microsoft.com/kb/5037037)** | | .NET Framework 3.5, 4.8 | [5039887](https://support.microsoft.com/kb/5039887) | | .NET Framework 3.5, 4.8.1 | [5039906](https://support.microsoft.com/kb/5039906) | | **Microsoft server operating system, version 21H2** | **[5041016](https://support.microsoft.com/kb/5041016)** | From e35c2b8b867a229308fc7c4e065b3cb23fc60d8c Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:51:34 -0700 Subject: [PATCH 21/25] Update docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index 928704c7503f7..373de3d8b5543 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -16,7 +16,7 @@ _Released July 9, 2024_ #### CVE-2024-38081 – Remote code execution vulnerability -This security update addresses a elevation of privilege vulnerability detailed in [CVE 2024-38081](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38081). +This security update addresses an elevation of privilege vulnerability detailed in [CVE 2024-38081](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38081). ### Quality and reliability improvements From 705c130f4a7716f08baf51f064bfa31a1ea3b52d Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:51:52 -0700 Subject: [PATCH 22/25] Update docs/framework/toc.yml Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/framework/toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/toc.yml b/docs/framework/toc.yml index 8e7c775f180ce..990375e9227e1 100644 --- a/docs/framework/toc.yml +++ b/docs/framework/toc.yml @@ -679,7 +679,7 @@ items: href: release-notes/2024/05-14-may-security-and-quality-rollup.md - name: June 2024 cumulative update preview href: release-notes/2024/06-25-june-preview-cumulative-update.md - - name: July 2024 cumulative update + - name: July 2024 security and quality rollup href: release-notes/2024/07-09-july-security-and-quality-rollup.md - name: What's new href: whats-new/index.md From 86ad0e9fa8bf554248fa00b1393a05273e917608 Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:52:16 -0700 Subject: [PATCH 23/25] Update docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index 373de3d8b5543..e256c4f5d1088 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -102,4 +102,4 @@ The following table is for earlier Windows and Windows Server versions for Secur | .NET Framework 3.5 SP1 | [5040680](https://support.microsoft.com/kb/5040680) | | .NET Framework 4.6.2 | [5040122](https://support.microsoft.com/kb/5040122) | -The operating system row lists a KB which will be used for update offering purposes. When the operating system KB is offered, the applicability logic will determine the specific .NET Framework update(s) will be installed. Updates for individual .NET Framework versions will be installed based on the version of .NET Framework that is already present on the device. Because of this the operating system KB is not expected to be listed as installed updates on the device. The expected update to be installed are the .NET Framework specific version updates listed in the preceding table. +The operating system rows list a KB that's used for update-offering purposes. When the operating system KB is offered, the applicability logic determines the specific .NET Framework updates that will be installed. Updates for individual .NET Framework versions are installed based on the version of .NET Framework that's already present on the device. Because of this, the operating system KB is not expected to be listed as an installed update on the device. The expected updates to be installed are the .NET Framework–specific version updates listed in the preceding table. From 4d510f38a7d7e61053f13d499f6ff2e781591695 Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:52:32 -0700 Subject: [PATCH 24/25] Update docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index e256c4f5d1088..b3d23b8d3cb3c 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -28,7 +28,7 @@ Addresses an issue with x509 certificate use under PPL in Azure AD (*Applies to: #### Winforms -Addresses an issue with the size of memory leaks associated with AccessibleObjects held in memory due to ref-counting (*Applies to: .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1.*) +Addresses an issue with the size of memory leaks associated with AccessibleObjects held in memory due to ref-counting. (*Applies to: .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1.*) ## Known issues From 483a9cba11b0a47f0af35dfcd2a5c0ff3f6bffc2 Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 9 Jul 2024 17:52:44 -0700 Subject: [PATCH 25/25] Update docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .../2024/07-09-july-security-and-quality-rollup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md index b3d23b8d3cb3c..a8c1d2a266535 100644 --- a/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md +++ b/docs/framework/release-notes/2024/07-09-july-security-and-quality-rollup.md @@ -24,7 +24,7 @@ This release contains the following quality and reliability improvements. #### .NET fundamentals -Addresses an issue with x509 certificate use under PPL in Azure AD (*Applies to: .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1.*) +Addresses an issue with x509 certificate use under PPL in Azure AD. (*Applies to: .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1.*) #### Winforms