From ccdd83bebe572ae3ff8e8dec023250afe9d822bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 08:31:08 -0500 Subject: [PATCH 1/9] Bump actions/upload-artifact from 4.5.0 to 4.6.0 (#44245) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/6f51ac03b9356f520e9adb1b1b7802705f340c2b...65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/scorecards.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 89f9fc6759f75..7ad6e2ef78bac 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -63,7 +63,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 with: name: SARIF file path: results.sarif From 1e5a7137f6aaa03389bbc4468aac6f42be0853e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 08:31:21 -0500 Subject: [PATCH 2/9] Bump step-security/harden-runner from 2.10.2 to 2.10.3 (#44248) Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.10.2 to 2.10.3. - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](https://github.com/step-security/harden-runner/compare/0080882f6c36860b6ba35c610c98ce87d4e2f26f...c95a14d0e5bab51a9f56296a4eb0e416910cd350) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/check-for-build-warnings.yml | 2 +- .github/workflows/cleanrepo-orphaned-articles.yml | 2 +- .github/workflows/cleanrepo-orphaned-images.yml | 2 +- .github/workflows/cleanrepo-orphaned-includes.yml | 2 +- .github/workflows/cleanrepo-orphaned-snippets.yml | 2 +- .github/workflows/cleanrepo-redirect-hops.yml | 2 +- .github/workflows/cleanrepo-relative-links.yml | 2 +- .github/workflows/cleanrepo-replace-redirects.yml | 2 +- .github/workflows/dependabot-bot.yml | 2 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/do-not-merge-label-check.yml | 2 +- .github/workflows/docs-verifier.yml | 2 +- .github/workflows/live-protection.yml | 2 +- .github/workflows/markdownlint.yml | 2 +- .github/workflows/profanity-filter.yml | 2 +- .github/workflows/quest-bulk.yml | 2 +- .github/workflows/quest.yml | 2 +- .github/workflows/scorecards.yml | 2 +- .github/workflows/snippets5000.yml | 2 +- .github/workflows/stale.yml | 2 +- .github/workflows/version-sweep.yml | 2 +- .github/workflows/whats-new.yml | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/check-for-build-warnings.yml b/.github/workflows/check-for-build-warnings.yml index c75543ea60bfc..84c9b1372021e 100644 --- a/.github/workflows/check-for-build-warnings.yml +++ b/.github/workflows/check-for-build-warnings.yml @@ -16,7 +16,7 @@ jobs: pull-requests: write steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-orphaned-articles.yml b/.github/workflows/cleanrepo-orphaned-articles.yml index 319f0cf3ef9f6..6e34b80d4a256 100644 --- a/.github/workflows/cleanrepo-orphaned-articles.yml +++ b/.github/workflows/cleanrepo-orphaned-articles.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-orphaned-images.yml b/.github/workflows/cleanrepo-orphaned-images.yml index 8337775ac4452..991552cedf192 100644 --- a/.github/workflows/cleanrepo-orphaned-images.yml +++ b/.github/workflows/cleanrepo-orphaned-images.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-orphaned-includes.yml b/.github/workflows/cleanrepo-orphaned-includes.yml index 463678cc5b296..839749711af01 100644 --- a/.github/workflows/cleanrepo-orphaned-includes.yml +++ b/.github/workflows/cleanrepo-orphaned-includes.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-orphaned-snippets.yml b/.github/workflows/cleanrepo-orphaned-snippets.yml index 5605d5ab2eb8c..092dac8bba21e 100644 --- a/.github/workflows/cleanrepo-orphaned-snippets.yml +++ b/.github/workflows/cleanrepo-orphaned-snippets.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-redirect-hops.yml b/.github/workflows/cleanrepo-redirect-hops.yml index 3612e84ac56ca..629df7b1a717e 100644 --- a/.github/workflows/cleanrepo-redirect-hops.yml +++ b/.github/workflows/cleanrepo-redirect-hops.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-relative-links.yml b/.github/workflows/cleanrepo-relative-links.yml index 8aeb9c0c4790b..8f29a59384809 100644 --- a/.github/workflows/cleanrepo-relative-links.yml +++ b/.github/workflows/cleanrepo-relative-links.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/cleanrepo-replace-redirects.yml b/.github/workflows/cleanrepo-replace-redirects.yml index cf8b11c1050f0..a78705b7c8039 100644 --- a/.github/workflows/cleanrepo-replace-redirects.yml +++ b/.github/workflows/cleanrepo-replace-redirects.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/dependabot-bot.yml b/.github/workflows/dependabot-bot.yml index 9ff17792b9692..e72b58552f4df 100644 --- a/.github/workflows/dependabot-bot.yml +++ b/.github/workflows/dependabot-bot.yml @@ -26,7 +26,7 @@ jobs: # Checkout the repo into the workspace within the VM steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 21a469b132cbb..922916c510160 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/do-not-merge-label-check.yml b/.github/workflows/do-not-merge-label-check.yml index a9a5e9a3d6f66..af74e91740a62 100644 --- a/.github/workflows/do-not-merge-label-check.yml +++ b/.github/workflows/do-not-merge-label-check.yml @@ -22,7 +22,7 @@ jobs: - 'DO NOT MERGE' steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/docs-verifier.yml b/.github/workflows/docs-verifier.yml index 3a81ce3fd8ead..9ed38c4d3eca0 100644 --- a/.github/workflows/docs-verifier.yml +++ b/.github/workflows/docs-verifier.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/live-protection.yml b/.github/workflows/live-protection.yml index 5781de85b032a..6213b84ea1798 100644 --- a/.github/workflows/live-protection.yml +++ b/.github/workflows/live-protection.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml index 8ac9e461f53c8..5b0a0f3d54dfb 100644 --- a/.github/workflows/markdownlint.yml +++ b/.github/workflows/markdownlint.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/profanity-filter.yml b/.github/workflows/profanity-filter.yml index 8da8778ea11e1..b98ae5f309240 100644 --- a/.github/workflows/profanity-filter.yml +++ b/.github/workflows/profanity-filter.yml @@ -19,7 +19,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/quest-bulk.yml b/.github/workflows/quest-bulk.yml index 6bf62ecfb6ff8..fd5dff756cff3 100644 --- a/.github/workflows/quest-bulk.yml +++ b/.github/workflows/quest-bulk.yml @@ -26,7 +26,7 @@ jobs: if: ${{ github.repository_owner == 'dotnet' }} steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/quest.yml b/.github/workflows/quest.yml index e169f669a4e85..d09567f1f15d0 100644 --- a/.github/workflows/quest.yml +++ b/.github/workflows/quest.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 7ad6e2ef78bac..59f6832663a63 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/snippets5000.yml b/.github/workflows/snippets5000.yml index 2b3133122d199..aea8d75c34db2 100644 --- a/.github/workflows/snippets5000.yml +++ b/.github/workflows/snippets5000.yml @@ -31,7 +31,7 @@ jobs: steps: # Checkout the repository for the PR - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 6019f21524b3a..982441c02e154 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/version-sweep.yml b/.github/workflows/version-sweep.yml index 373341507c800..b26c74a62bcc4 100644 --- a/.github/workflows/version-sweep.yml +++ b/.github/workflows/version-sweep.yml @@ -34,7 +34,7 @@ jobs: # Start the .NET version updater action # A composite of the .NET Version Sweeper and the .NET Upgrade Assistant - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit diff --git a/.github/workflows/whats-new.yml b/.github/workflows/whats-new.yml index 7948deef825c5..b2dcce24d1563 100644 --- a/.github/workflows/whats-new.yml +++ b/.github/workflows/whats-new.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Harden Runner - uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2 + uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3 with: egress-policy: audit From 008cbf88f482261e736ebda93e7f6c962d8ad9e1 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Tue, 14 Jan 2025 07:19:45 -0800 Subject: [PATCH 3/9] Update ca1872.md (#43739) --- docs/fundamentals/code-analysis/quality-rules/ca1872.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1872.md b/docs/fundamentals/code-analysis/quality-rules/ca1872.md index c9552e8195e42..16ee262a2ef65 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1872.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1872.md @@ -90,12 +90,12 @@ class HelloWorldEncoder public string Encode() { - return Convert.ToHexString(data); + return Convert.ToHexString(_data); } public string EncodeToLower() { - return Convert.ToHexStringLower(data); + return Convert.ToHexStringLower(_data); } } ``` @@ -108,11 +108,11 @@ Class HelloWorldEncoder Private ReadOnly _data As Byte() = Encoding.ASCII.GetBytes("Hello World") Public Function Encode() As String - Return Convert.ToHexString(data) + Return Convert.ToHexString(_data) End Function Public Function EncodeToLower() As String - Return Convert.ToHexStringLower(data) + Return Convert.ToHexStringLower(_data) End Function End Class ``` From 81c50f548c125963da365ce51610e45d537d5370 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 14 Jan 2025 11:10:45 -0500 Subject: [PATCH 4/9] Generate a What's new in docs for all of the .NET 9 release (#43408) * update config for .NET 9 * checkpoint This has generated the "what's new" file for the release. Some items need updating by hand, and this first pass may have missed some PRs that didn't have the "Release .NET 9" label * add to index and TOC * replace redirects * fix missing titles * Finish .NET 9 release docs * edit pass * remove extra dups --------- Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .whatsnew.release.json | 87 ++++++++++---- docs/whats-new/dotnet-9-release.md | 175 +++++++++++++++++++++++++++++ docs/whats-new/index.yml | 8 +- docs/whats-new/toc.yml | 2 + 4 files changed, 248 insertions(+), 24 deletions(-) create mode 100644 docs/whats-new/dotnet-9-release.md diff --git a/.whatsnew.release.json b/.whatsnew.release.json index 634a77f5445a0..053ec6d592852 100644 --- a/.whatsnew.release.json +++ b/.whatsnew.release.json @@ -8,7 +8,7 @@ }, "inclusionCriteria": { "labels": [ - "label:\":checkered_flag: Release: .NET 7\"" + "label:\":checkered_flag: Release: .NET 9\"" ], "maxFilesChanged": 100, "minAdditionsToFile": 1 @@ -22,40 +22,81 @@ }, "areas": [ { - "names": [ "." ], - "heading": "Home" + "names": [ "standard/security" ], + "heading": ".NET security" }, { - "names": [ "architecture" ], - "heading": "Architecture guides" + "names": [ "core/compatibility" ], + "heading": ".NET breaking changes" }, { - "names": [ "azure" ], - "heading": "Azure SDK for .NET" + "names": [ "core", "fundamentals", "standard" ], + "heading": ".NET fundamentals" + }, + { + "names": [ "core/porting" ], + "heading": "Migration to .NET" }, { "names": [ "csharp" ], "heading": "C# language" }, { - "names": [ "desktop-wpf" ], - "heading": ".NET Core desktop" + "names": [ "fsharp" ], + "heading": "F# language" }, { - "names": [ "framework" ], - "heading": ".NET Framework" + "names": [ "visual-basic" ], + "heading": "Visual Basic language" }, { - "names": [ "fsharp" ], - "heading": "F# language" + "names": [ "architecture" ], + "heading": "Architecture guides" }, { - "names": [ "core/compatibility" ], - "heading": ".NET breaking changes" + "names": [ "devops", + "core/testing", + "core/deploying", + "core/docker" + ], + "heading": "DevOps and testing in .NET" }, { - "names": [ "core", "fundamentals", "standard" ], - "heading": ".NET fundamentals" + "names": [ "core/tools", + "core/additional-tools", + "core/diagnostics", + "fundamentals/code-analysis", + "standard/analyzers", + "fundamentals/syslib-diagnostics", + "fundamentals/package-validation" + ], + "heading": ".NET tools and diagnostics" + }, + { + "names": [ "standard/asynchronous-programming-patterns", + "standard/parallel-programming", + "standard/threading", + "standard/collections/thread-safe", + "standard/native-interop", + "standard/garbage-collection" + ], + "heading": "Advanced .NET programming" + }, + { + "names": [ "ai" ], + "heading": "AI in .NET" + }, + { + "names": [ "azure" ], + "heading": "Azure SDK for .NET" + }, + { + "names": [ "desktop-wpf" ], + "heading": ".NET Core desktop" + }, + { + "names": [ "standard/linq", "standard/data" ], + "heading": "Data access in .NET" }, { "names": [ "iot" ], @@ -65,17 +106,21 @@ "names": [ "machine-learning" ], "heading": "ML.NET" }, + { + "names": [ "orleans", "dotnet-orleans" ], + "heading": "Microsoft Orleans" + }, { "names": [ "spark" ], "heading": ".NET for Apache Spark" }, { - "names": [ "visual-basic" ], - "heading": "Visual Basic language" + "names": [ "." ], + "heading": "Home" }, { - "names": [ "orleans", "dotnet-orleans" ], - "heading": "Microsoft Orleans" + "names": [ "framework" ], + "heading": ".NET Framework" } ] } diff --git a/docs/whats-new/dotnet-9-release.md b/docs/whats-new/dotnet-9-release.md new file mode 100644 index 0000000000000..8cc7e34ce8e8a --- /dev/null +++ b/docs/whats-new/dotnet-9-release.md @@ -0,0 +1,175 @@ +--- +title: ".NET docs: What's new for .NET 9" +description: "What's new in the .NET docs for .NET 9." +ms.custom: October-2024 +ms.date: 11/11/2024 +--- + +# .NET docs: What's new for .NET 9 + +This article lists some of the major changes to docs for .NET 9. + +## .NET security + +### Updated articles + +- [Cross-Platform Cryptography in .NET](../standard/security/cross-platform-cryptography.md) - Crypto docs + +## .NET breaking changes + +### New articles + +- [Breaking changes in .NET 9](../core/compatibility/9.0.md) +- [`dotnet workload` commands output change](../core/compatibility/sdk/9.0/dotnet-workload-output.md) +- [`GetXmlNamespaceMaps` type change](../core/compatibility/wpf/9.0/xml-namespace-maps.md) +- [`installer` repo version no longer included in `productcommits` files](../core/compatibility/sdk/9.0/productcommits-versions.md) +- [API obsoletions with non-default diagnostic IDs (.NET 9)](../core/compatibility/core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md) +- [BindingSource.SortDescriptions doesn't return null](../core/compatibility/windows-forms/9.0/sortdescriptions-return-value.md) +- [Breaking changes in .NET 9](../core/compatibility/9.0.md) +- [Changes to nullability annotations (Windows Forms)](../core/compatibility/windows-forms/9.0/nullability-changes.md) +- [ComponentDesigner.Initialize throws ArgumentNullException](../core/compatibility/windows-forms/9.0/componentdesigner-initialize.md) +- [Creating type of array of System.Void not allowed](../core/compatibility/core-libraries/9.0/type-instance.md) +- [DataGridViewRowAccessibleObject.Name starting row index](../core/compatibility/windows-forms/9.0/datagridviewrowaccessibleobject-name-row.md) +- [Default `Equals()` and `GetHashCode()` throw for types marked with `InlineArrayAttribute`](../core/compatibility/core-libraries/9.0/inlinearrayattribute.md) +- [DefaultKeyResolution.ShouldGenerateNewKey has altered meaning](../core/compatibility/aspnet-core/9.0/key-resolution.md) +- [Deprecated desktop Windows/macOS/Linux MonoVM runtime packages](../core/compatibility/deployment/9.0/monovm-packages.md) +- [Floating point-to-integer conversions are saturating](../core/compatibility/jit/9.0/fp-to-integer.md) +- [HttpListenerRequest.UserAgent is nullable](../core/compatibility/networking/9.0/useragent-nullable.md) +- [In-box BinaryFormatter implementation removed and always throws](../core/compatibility/serialization/9.0/binaryformatter-removal.md) +- [Inline array struct size limit is enforced](../core/compatibility/core-libraries/9.0/inlinearray-size.md) +- [InMemoryDirectoryInfo prepends rootDir to files](../core/compatibility/core-libraries/9.0/inmemorydirinfo-prepends-rootdir.md) +- [No exception if DataGridView is null](../core/compatibility/windows-forms/9.0/datagridviewheadercell-nre.md) +- [PictureBox raises HttpClient exceptions](../core/compatibility/windows-forms/9.0/httpclient-exceptions.md) +- [RuntimeHelpers.GetSubArray returns different type](../core/compatibility/core-libraries/9.0/getsubarray-return.md) +- [Support for empty environment variables](../core/compatibility/core-libraries/9.0/empty-env-variable.md) +- [Terminal logger is default](../core/compatibility/sdk/9.0/terminal-logger.md) +- [Warning emitted for .NET Standard 1.x targets](../core/compatibility/sdk/9.0/netstandard-warning.md) + +## .NET fundamentals + +### New articles + +- [CA2022: Avoid inexact read with Stream.Read](../fundamentals/code-analysis/quality-rules/ca2022.md) +- [CA2265: Do not compare `Span` to `null` or `default`](../fundamentals/code-analysis/quality-rules/ca2265.md) +- [Configuration source generator](../core/extensions/configuration-generator.md) + +### Updated articles + +- [.NET Standard](../standard/net-standard.md) +- [Code quality rules](../fundamentals/code-analysis/quality-rules/index.md) +- [Configuration in .NET](../core/extensions/configuration.md) - Add content for config source gen with interceptors +- [Obsolete features in .NET 5+](../fundamentals/syslib-diagnostics/obsoletions-overview.md) - Update diagnostic docs for SYSLIB0009 +- [Overview of .NET source code analysis](../fundamentals/code-analysis/overview.md) +- [Synchronizing data for multithreading](../standard/threading/synchronizing-data-for-multithreading.md) - Add language reference for `lock` +- [SYSLIB0009: AuthenticationManager is not supported](../fundamentals/syslib-diagnostics/syslib0009.md) - Update diagnostic docs for SYSLIB0009 +- [What's new in the SDK and tooling for .NET 9](../core/whats-new/dotnet-9/sdk.md) + +## C# language + +### New articles + +- [Errors and warnings associated with `ref struct` types](../csharp/language-reference/compiler-messages/ref-struct-errors.md) +- [Errors and warnings related to `partial` type and `partial` member declarations](../csharp/language-reference/compiler-messages/partial-declarations.md) +- [Errors and warnings related to the `lock` statement and thread synchronization](../csharp/language-reference/compiler-messages/lock-semantics.md) +- [Errors and warnings related to the `params` modifier on method parameters](../csharp/language-reference/compiler-messages/params-arrays.md) +- [Errors and warnings related to the `yield return` statement and iterator methods](../csharp/language-reference/compiler-messages/iterator-yield.md) +- [Partial member (C# Reference)](../csharp/language-reference/keywords/partial-member.md) +- [Resolve errors and warnings that affect overload resolution.](../csharp/language-reference/compiler-messages/overload-resolution.md) +- [What's new in C# 13](../csharp/whats-new/csharp-13.md) + +### Updated articles + +- [interface (C# Reference)](../csharp/language-reference/keywords/interface.md) - Add reference and conceptual content for `ref struct` allowed in interfaces +- [`ref` structure types (C# reference)](../csharp/language-reference/builtin-types/ref-struct.md) + - Add reference and conceptual content for `ref struct` allowed in interfaces + - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Access Modifiers (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/access-modifiers.md) - Add conceptual content for partial properties +- [Arithmetic operators (C# reference)](../csharp/language-reference/operators/arithmetic-operators.md) - Explain better conversion from collection expression +- [Assembly level attributes interpreted by the C# compiler](../csharp/language-reference/attributes/global.md) - Add reference and conceptual content for `ref struct` allowed in interfaces +- [Attributes](../csharp/advanced-topics/reflection-and-attributes/index.md) - Add conceptual content for partial properties +- [Automatically implemented properties](../csharp/programming-guide/classes-and-structs/auto-implemented-properties.md) - Add conceptual content for partial properties +- [await operator - asynchronously await for a task to complete](../csharp/language-reference/operators/await.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [C# Compiler Errors](../csharp/language-reference/compiler-messages/index.md) - Add errors and warnings for params arrays +- [C# Keywords](../csharp/language-reference/keywords/index.md) + - Add conceptual content for partial properties + - Add reference and conceptual content for `ref struct` allowed in interfaces +- [C# Warning waves](../csharp/language-reference/compiler-messages/warning-waves.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Collection expressions - C# language reference](../csharp/language-reference/operators/collection-expressions.md) - Explain better conversion from collection expression +- [Compiler Error CS0401](../csharp/misc/cs0401.md) - Add, update compiler error and warning messages for `ref struct` interfaces +- [Compiler Error CS1996](../csharp/language-reference/compiler-messages/cs1996.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Compiler Error CS4004](../csharp/language-reference/compiler-messages/cs4004.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Compiler Error CS8177](../csharp/language-reference/compiler-messages/cs8177.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Constraints on type parameters (C# Programming Guide)](../csharp/programming-guide/generics/constraints-on-type-parameters.md) - Add reference and conceptual content for `ref struct` allowed in interfaces +- [default value expressions - produce the default value](../csharp/language-reference/operators/default.md) - Explain better conversion from collection expression +- [Errors and warnings associated with `ref struct` types](../csharp/language-reference/compiler-messages/ref-struct-errors.md) + - Add new diagnostics + - Add, update compiler error and warning messages for `ref struct` interfaces +- [Errors and warnings associated with reference parameters, variables, and returns](../csharp/language-reference/compiler-messages/ref-modifiers-errors.md) + - Add new diagnostics + - Add, update compiler error and warning messages for `ref struct` interfaces +- [Errors and warnings related to the `yield return` statement and iterator methods](../csharp/language-reference/compiler-messages/iterator-yield.md) + - Add errors and warnings related to `partial` properties and indexers + - update and consolidate errors related to iterators and `yield` +- [Expression Trees](../csharp/advanced-topics/expression-trees/index.md) - Add conceptual content for partial properties +- [from clause (C# Reference)](../csharp/language-reference/keywords/from-clause.md) - Add conceptual content for partial properties +- [get (C# Reference)](../csharp/language-reference/keywords/get.md) - Add conceptual content for partial properties +- [How to handle an exception using try/catch](../csharp/fundamentals/exceptions/how-to-handle-an-exception-using-try-catch.md) - Add conceptual content for partial properties +- [How to initialize a dictionary with a collection initializer (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md) - Add params collections +- [How to initialize objects by using an object initializer (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer.md) - Add params collections +- [Indexers](../csharp/programming-guide/indexers/index.md) - Add conceptual content for partial properties +- [Indexers in Interfaces (C# Programming Guide)](../csharp/programming-guide/indexers/indexers-in-interfaces.md) - Add conceptual content for partial properties +- [Interface Properties (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/interface-properties.md) - Add conceptual content for partial properties +- [Introduction to classes](../csharp/fundamentals/types/classes.md) - Add conceptual content for partial properties +- [Lambda expressions and anonymous functions](../csharp/language-reference/operators/lambda-expressions.md) - Add params collections +- [Member access operators and expressions - the dot, indexer, and invocation operators.](../csharp/language-reference/operators/member-access-operators.md) + - Explain better conversion from collection expression + - Add C# 13 small fixes +- [Method Parameters](../csharp/language-reference/keywords/method-parameters.md) + - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods + - Add params collections +- [Methods in C\#](../csharp/methods.md) - Add params collections +- [Miscellaneous attributes interpreted by the C# compiler](../csharp/language-reference/attributes/general.md) + - Add OverloadResolutionPriority conceptual documentation. + - Add reference and conceptual content for `ref struct` allowed in interfaces +- [nameof expression (C# reference)](../csharp/language-reference/operators/nameof.md) - Explain better conversion from collection expression +- [new operator - The `new` operator creates a new instance of a type](../csharp/language-reference/operators/new-operator.md) - Explain better conversion from collection expression +- [Object and Collection Initializers (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md) - Add params collections +- [Partial Classes and Methods (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/partial-classes-and-methods.md) - Add conceptual content for partial properties +- [Partial type (C# Reference)](../csharp/language-reference/keywords/partial-type.md) - Add conceptual content for partial properties +- [Properties (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/properties.md) - Add conceptual content for partial properties +- [Recommended XML tags for C# documentation comments](../csharp/language-reference/xmldoc/recommended-tags.md) - Add conceptual content for partial properties +- [Resolve errors and warnings generated from expressions prohibited in expression trees](../csharp/language-reference/compiler-messages/expression-tree-restrictions.md) + - Add conceptual content for partial properties + - Add errors and warnings for params arrays +- [Resolve errors and warnings in array and collection declarations and initialization expressions](../csharp/language-reference/compiler-messages/array-declaration-errors.md) - Add errors and warnings related to overload resolution +- [Resolve errors and warnings with inline array declarations](../csharp/language-reference/compiler-messages/inline-array-errors.md) + - Add new diagnostics + - Add conceptual content for partial properties +- [Resolve warnings related to language features and versions](../csharp/language-reference/compiler-messages/feature-version-errors.md) + - Add new diagnostics + - Add, update compiler error and warning messages for `ref struct` interfaces +- [Roadmap for Java developers learning C\#](../csharp/tour-of-csharp/tips-for-java-developers.md) - Add conceptual content for partial properties +- [select clause (C# Reference)](../csharp/language-reference/keywords/select-clause.md) - Add conceptual content for partial properties +- [set (C# Reference)](../csharp/language-reference/keywords/set.md) - Add conceptual content for partial properties +- [Standard .NET event patterns](../csharp/event-pattern.md) - Add conceptual content for partial properties +- [The `ref` keyword](../csharp/language-reference/keywords/ref.md) - Add, update compiler error and warning messages for `ref struct` interfaces +- [The C# type system](../csharp/fundamentals/types/index.md) - Add conceptual content for partial properties +- [The checked and unchecked statements (C# reference)](../csharp/language-reference/statements/checked-and-unchecked.md) - Explain better conversion from collection expression +- [The history of C\#](../csharp/whats-new/csharp-version-history.md) - Add conceptual content for partial properties +- [The lock statement - ensure exclusive access to a shared resource](../csharp/language-reference/statements/lock.md) - Add language reference for `lock` +- [Type-testing operators and cast expressions - `is`, `as`, `typeof` and casts](../csharp/language-reference/operators/type-testing-and-cast.md) - Explain better conversion from collection expression +- [Use string interpolation to construct formatted strings](../csharp/tutorials/exploration/interpolated-strings-local.md) - Add conceptual content for partial properties +- [Using indexers (C# Programming Guide)](../csharp/programming-guide/indexers/using-indexers.md) - Add conceptual content for partial properties +- [Using Properties (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/using-properties.md) - Add conceptual content for partial properties +- [where (generic type constraint) (C# Reference)](../csharp/language-reference/keywords/where-generic-type-constraint.md) - Add reference and conceptual content for `ref struct` allowed in interfaces +- [yield statement - provide the next element](../csharp/language-reference/statements/yield.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Compiler Errors on partial type and member declarations](../csharp/language-reference/compiler-messages/partial-declarations.md) - Add conceptual content for partial properties +- [Errors and warnings for iterator methods and `yield return`](../csharp/language-reference/compiler-messages/iterator-yield.md) - Add information for C# 13 feature `ref` locals and `unsafe` contexts in iterators and `async` methods +- [Errors and warnings related to `params` arrays](../csharp/language-reference/compiler-messages/params-arrays.md) - Add params collections + +## .NET Framework + +### Updated articles + +- [Add Business Logic By Using Partial Methods](../framework/data/adonet/sql/linq/adding-business-logic-by-using-partial-methods.md) - Add conceptual content for partial properties +- [dangerousThreadingAPI MDA](../framework/debug-trace-profile/dangerousthreadingapi-mda.md) - Add language reference for `lock` diff --git a/docs/whats-new/index.yml b/docs/whats-new/index.yml index 1bb74505f4775..b619df0b27c61 100644 --- a/docs/whats-new/index.yml +++ b/docs/whats-new/index.yml @@ -5,7 +5,7 @@ summary: Welcome to what's new in .NET and .NET docs. Use this page to navigate metadata: title: .NET what's new? description: Learn about new .NET features and new and updated content in .NET docs. - ms.date: 01/01/2025 + ms.date: 01/14/2025 ms.topic: landing-page landingContent: - title: .NET 9 release updates @@ -20,6 +20,8 @@ landingContent: url: /dotnet/maui/whats-new/dotnet-9 - text: EF Core 9 url: /ef/core/what-is-new/ef-core-9.0/whatsnew + - text: Documentation updates + url: dotnet-9-release.md - title: .NET 8 release updates linkLists: - linkListType: whats-new @@ -50,8 +52,8 @@ landingContent: linkLists: - linkListType: whats-new links: - - text: What's new in C# 12 - url: ../csharp/whats-new/csharp-12.md + - text: What's new in C# 13 + url: ../csharp/whats-new/csharp-13.md - text: What's new in F# 9 url: ../fsharp/whats-new/fsharp-9.md - text: What's new for Visual Basic diff --git a/docs/whats-new/toc.yml b/docs/whats-new/toc.yml index 7a8e402de6943..1c67a13daa766 100644 --- a/docs/whats-new/toc.yml +++ b/docs/whats-new/toc.yml @@ -25,6 +25,8 @@ items: href: /dotnet/maui/whats-new/dotnet-9?toc=/dotnet/whats-new/toc.json&bc=/dotnet/breadcrumb/toc.json - name: EF Core 9 href: /ef/core/what-is-new/ef-core-9.0/whatsnew?toc=/dotnet/whats-new/toc.json&bc=/dotnet/breadcrumb/toc.json + - name: Documentation updates + href: dotnet-9-release.md - name: .NET 8 items: - name: .NET 8 From d703cbdda3271aa674aae41688b3ca19321ed120 Mon Sep 17 00:00:00 2001 From: Mikel Blanchard Date: Tue, 14 Jan 2025 08:13:29 -0800 Subject: [PATCH 5/9] [diagnostics] Add InstrumentAdvice details to instrumentation doc (#43640) * Add InstrumentAdvice details to instrumentation doc. * Code review. * Code review. * Code review. * Lint. * Tweak. --- .../diagnostics/metrics-instrumentation.md | 96 ++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/docs/core/diagnostics/metrics-instrumentation.md b/docs/core/diagnostics/metrics-instrumentation.md index f739e46be0ebc..219580e22e141 100644 --- a/docs/core/diagnostics/metrics-instrumentation.md +++ b/docs/core/diagnostics/metrics-instrumentation.md @@ -2,7 +2,7 @@ title: Creating Metrics description: How to add new metrics to a .NET library or application ms.topic: tutorial -ms.date: 08/27/2024 +ms.date: 11/19/2024 --- # Creating metrics @@ -224,6 +224,11 @@ Types of instruments currently available: to record these measurements during the collection tool's update interval: 1,5,2,3,10,9,7,4,6,8. A collection tool might report that the 50th, 90th, and 95th percentiles of these measurements are 5, 9, and 9 respectively. + > [!NOTE] + > For details about how to set the recommended bucket boundaries when creating + > a Histogram instrument see: [Using Advice to customize Histogram + > instruments](#using-advice-to-customize-histogram-instruments). + ### Best practices when selecting an instrument type - For counting things, or any other value that solely increases over time, use Counter or ObservableCounter. Choose between Counter and ObservableCounter depending on which @@ -542,6 +547,95 @@ Name Current Value > [!NOTE] > OpenTelemetry refers to tags as 'attributes'. These are two different names for the same functionality. +## Using Advice to customize Histogram instruments + +When using Histograms, it is the responsibility of the tool or library +collecting the data to decide how best to represent the distribution of values +that were recorded. A common strategy (and the [default mode when using +OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#explicit-bucket-histogram-aggregation)) +is to divide up the range of possible values into sub-ranges called buckets and +report how many recorded values were in each bucket. For example a tool might +divide numbers into three buckets, those less than 1, those between 1-10, and +those greater than 10. If your app recorded the values 0.5, 6, 0.1, 12 then +there would be two data points the first bucket, one in the second, and one in +the 3rd. + +The tool or library collecting the Histogram data is responsible for defining +the buckets it will use. The default bucket configuration when using +OpenTelemetry is: `[ 0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, +7500, 10000 ]`. + +The default values may not lead to the best granularity for every Histogram. For +example, sub-second request durations would all fall into the `0` bucket. + +The tool or library collecting the Histogram data may offer mechanism(s) to +allow users to customize the bucket configuration. For example, OpenTelemetry +defines a [View +API](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#view). +This however requires end user action and makes it the user's responsibility to +understand the data distribution well enough to choose correct buckets. + +To improve the experience the `9.0.0` version of the +`System.Diagnostics.DiagnosticSource` package introduced the +() API. + +The `InstrumentAdvice` API may be used by instrumentation authors to specify the +set of recommended default bucket boundaries for a given Histogram. The tool or +library collecting the Histogram data can then choose to use those values when +configuring aggregation leading to a more seamless onboarding experience for +users. This is supported in the [OpenTelemetry .NET SDK as of version +1.10.0](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/metrics/customizing-the-sdk#configuring-the-aggregation-of-a-histogram). + +> [!IMPORTANT] +> In general more buckets will lead to more precise data for a given Histogram +> but each bucket requires memory to store the aggregated details and there is +> CPU cost to find the correct bucket when processing a measurement. It is +> important to understand the tradeoffs between precision and CPU/memory +> consumption when choosing the number of buckets to recommend via the +> `InstrumentAdvice` API. + +The following code shows an example using the `InstrumentAdvice` API to set +recommended default buckets. + +```csharp +using System; +using System.Diagnostics.Metrics; +using System.Threading; + +class Program +{ + static Meter s_meter = new Meter("HatCo.Store"); + static Histogram s_orderProcessingTime = s_meter.CreateHistogram( + name: "hatco.store.order_processing_time", + unit: "s", + description: "Order processing duration", + advice: new InstrumentAdvice { HistogramBucketBoundaries = [0.01, 0.05, 0.1, 0.5, 1, 5] }); + + static Random s_rand = new Random(); + + static void Main(string[] args) + { + Console.WriteLine("Press any key to exit"); + while (!Console.KeyAvailable) + { + // Pretend our store has one transaction each 100ms + Thread.Sleep(100); + + // Pretend that we measured how long it took to do the transaction (for example we could time it with Stopwatch) + s_orderProcessingTime.Record(s_rand.Next(5, 15) / 1000.0); + } + } +} +``` + +### Additional information + +For more details about explicit bucket Histograms in OpenTelemetry see: + +* [Why Histograms?](https://opentelemetry.io/blog/2023/why-histograms/) + +* [Histograms vs Summaries](https://opentelemetry.io/blog/2023/histograms-vs-summaries/) + ## Test custom metrics Its possible to test any custom metrics you add using . This type makes it easy to record the measurements from specific instruments and assert the values were correct. From fc2f5a3964a0fc683ea3d378b5b3b3a8432bb81d Mon Sep 17 00:00:00 2001 From: Adit Sheth Date: Tue, 14 Jan 2025 21:53:52 +0530 Subject: [PATCH 6/9] Fix: Improve F# Recursive Module Example for Banana Type Logic (#44181) * Fixed bug 41533. * Update docs/fsharp/language-reference/modules.md Comment resolution. Co-authored-by: Petr --------- Co-authored-by: Adit Sheth Co-authored-by: Petr --- docs/fsharp/language-reference/modules.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/fsharp/language-reference/modules.md b/docs/fsharp/language-reference/modules.md index 14a26b262a1c3..11e96fed33219 100644 --- a/docs/fsharp/language-reference/modules.md +++ b/docs/fsharp/language-reference/modules.md @@ -93,15 +93,21 @@ module rec RecursiveModule = exception DontSqueezeTheBananaException of Banana type Banana(orientation : Orientation) = - member val IsPeeled = false with get, set member val Orientation = orientation with get, set - member val Sides: PeelState list = [ Unpeeled; Unpeeled; Unpeeled; Unpeeled] with get, set + member val Sides: PeelState list = [ Unpeeled; Unpeeled; Unpeeled; Unpeeled ] with get, set - member self.Peel() = BananaHelpers.peel self // Note the dependency on the BananaHelpers module. - member self.SqueezeJuiceOut() = raise (DontSqueezeTheBananaException self) // This member depends on the exception above. + member self.IsPeeled = + self.Sides |> List.forall ((=) Peeled) + + member self.Peel() = + BananaHelpers.peel self + |> fun peeledSides -> self.Sides <- peeledSides + + member self.SqueezeJuiceOut() = + raise (DontSqueezeTheBananaException self) module BananaHelpers = - let peel (b: Banana) = + let peel (banana: Banana) = let flip (banana: Banana) = match banana.Orientation with | Up -> @@ -115,9 +121,7 @@ module rec RecursiveModule = | Unpeeled -> Peeled | Peeled -> Peeled) - match b.Orientation with - | Up -> b |> flip |> peelSides - | Down -> b |> peelSides + banana |> flip |> peelSides ``` Note that the exception `DontSqueezeTheBananaException` and the class `Banana` both refer to each other. Additionally, the module `BananaHelpers` and the class `Banana` also refer to each other. This would not be possible to express in F# if you removed the `rec` keyword from the `RecursiveModule` module. From ff740340743d03ecdfe9466e5cf6301f9d426f8b Mon Sep 17 00:00:00 2001 From: Mahdi Azarboon <21277296+azarboon@users.noreply.github.com> Date: Wed, 15 Jan 2025 00:28:09 +0800 Subject: [PATCH 7/9] Update connection-pooling.md (#43895) --- docs/framework/data/adonet/connection-pooling.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/framework/data/adonet/connection-pooling.md b/docs/framework/data/adonet/connection-pooling.md index debb0baca8cf8..c114a21de7ae5 100644 --- a/docs/framework/data/adonet/connection-pooling.md +++ b/docs/framework/data/adonet/connection-pooling.md @@ -6,7 +6,17 @@ ms.assetid: 955c057f-aea8-4ba8-aa6d-e3dfa18ba8d5 --- # Connection Pooling -Connecting to a data source can be time consuming. To minimize the cost of opening connections, ADO.NET uses an optimization technique called *connection pooling*, which minimizes the cost of repeatedly opening and closing connections. Connection pooling is handled differently for the .NET Framework data providers. +Connecting to a data source can be time consuming. To minimize the cost of opening connections, ADO.NET uses an optimization technique called *connection pooling*, which minimizes the cost of repeatedly opening and closing connections. Connection pooling is handled differently for the .NET Framework data providers. While connection pooling improves performance and resource utilization, several factors can influence its efficiency depending on the database environment and configuration: + +- **Connection Limits and Resource Constraints:** In database environments, connection limits are often tied to service tiers or resource configurations. For instance, Azure SQL Database defines connection limits based on the selected service tier, while Azure SQL Managed Instance enforces limits based on allocated resources, such as CPU, memory, or vCores. When connection pool configurations exceed these limits, applications may experience rejected connections, throttling, or degraded performance. + +- **Authentication Methods:** Token-based authentication mechanisms, such as Microsoft Entra ID authentication, can impact connection pooling due to token expiration. Expired tokens may invalidate connections within the pool, disrupting reuse. This behavior occurs in both cloud-based and on-premises database systems that use modern authentication protocols. + +- **Network Latency and Endpoints:** Network latency and endpoint configurations can influence the efficiency of connection pooling. Public endpoints, commonly used in cloud-hosted databases, typically introduce higher latency compared to private or direct connections. In cloud-native applications with dynamic IP addressing, connection reuse may be disrupted if firewall rules are not updated to accommodate changing IP addresses. + +- **Encryption Requirements:** Databases that enforce TLS/SSL encryption require alignment between connection pooling configurations and encryption settings. For example, omitting required encryption parameters in connection strings, such as `Encrypt=True`, can lead to connection failures, reducing pooling efficiency. + +- **DNS Resolution:** Private endpoints and custom DNS configurations may pose challenges for connection pooling. Misconfigured or inconsistent DNS settings can delay or block connection establishment, impacting the performance and reliability of connection reuse. This is especially relevant in environments with hybrid or private cloud setups. ## In This Section From 467ac425d51d4310a28120132ba70ca9cd71a69f Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 14 Jan 2025 13:57:50 -0500 Subject: [PATCH 8/9] Remove links to the try-samples repo (#44279) This incarnation isn't supported or updated. --- .../language-reference/operators/lambda-expressions.md | 1 - docs/csharp/tour-of-csharp/tutorials/index.md | 7 +------ docs/standard/linq/index.md | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/csharp/language-reference/operators/lambda-expressions.md b/docs/csharp/language-reference/operators/lambda-expressions.md index 7f334b8dd5bc0..f40bd119af835 100644 --- a/docs/csharp/language-reference/operators/lambda-expressions.md +++ b/docs/csharp/language-reference/operators/lambda-expressions.md @@ -340,4 +340,3 @@ For more information about these features, see the following feature proposal no - [Local functions vs. lambda expressions](../../programming-guide/classes-and-structs/local-functions.md#local-functions-vs-lambda-expressions) - [LINQ sample queries](https://github.com/microsoftarchive/msdn-code-gallery-microsoft/tree/master/Visual%20Studio%20Product%20Team/Official%20Visual%20Studio%202008%20C%23%20Samples/%5BC%23%5D-Official%20Visual%20Studio%202008%20C%23%20Samples/LINQ%20-%20Sample%20Queries/C%23) - [XQuery sample](https://github.com/microsoftarchive/msdn-code-gallery-microsoft/tree/master/Visual%20Studio%20Product%20Team/Official%20Visual%20Studio%202008%20C%23%20Samples/%5BC%23%5D-Official%20Visual%20Studio%202008%20C%23%20Samples/XQuery/C%23) -- [101 LINQ samples](/samples/dotnet/try-samples/101-linq-samples/) diff --git a/docs/csharp/tour-of-csharp/tutorials/index.md b/docs/csharp/tour-of-csharp/tutorials/index.md index 723d5228cbac3..0b8d5ee5e7800 100644 --- a/docs/csharp/tour-of-csharp/tutorials/index.md +++ b/docs/csharp/tour-of-csharp/tutorials/index.md @@ -23,7 +23,6 @@ You can try these tutorials in different environments. The concepts you'll learn - [In your browser, on the docs platform](hello-world.yml): This experience embeds a runnable C# code window in docs pages. You write and execute C# code in the browser. - [In the Microsoft Learn training experience](/training/paths/csharp-first-steps/). This learning path contains several modules that teach the basics of C#. -- [In Jupyter on Binder](https://mybinder.org/v2/gh/dotnet/try-samples/main?filepath=hello-csharp%2Fhello-world.ipynb). You can experiment with C# code in a Jupyter notebook on binder. - [On your local machine](numbers-in-csharp-local.md). After you've explored online, you can [download the .NET SDK and build programs on your machine](local-environment.md). All the introductory tutorials following the Hello World lesson are available using @@ -36,7 +35,7 @@ on your machine. ## [Hello world](hello-world.yml) In the [Hello world](hello-world.yml) tutorial, you'll create the most basic -C# program. You'll explore the `string` type and how to work with text. You can also use the path on [Microsoft Learn training](/training/paths/csharp-first-steps/) or [Jupyter on Binder](https://mybinder.org/v2/gh/dotnet/try-samples/main?filepath=hello-csharp%2Fhello-world.ipynb). +C# program. You'll explore the `string` type and how to work with text. You can also use the path on [Microsoft Learn training](/training/paths/csharp-first-steps/). ## [Numbers in C#](numbers-in-csharp.yml) @@ -66,7 +65,3 @@ a tour of the List collection type that stores sequences of data. You'll learn h available [to run locally on your machine](arrays-and-collections.md). This tutorial assumes that you've finished the lessons listed above. - -## [101 Linq Samples](https://github.com/dotnet/try-samples/tree/main/101-linq-samples) - -This sample requires the [dotnet-try](https://github.com/dotnet/try/blob/main/README.md#setup) global tool. Once you install the tool, and clone the [try-samples](https://github.com/dotnet/try-samples) repo, you can learn Language Integrated Query (LINQ) through a set of 101 samples you can run interactively. You can explore different ways to query, explore, and transform data sequences. diff --git a/docs/standard/linq/index.md b/docs/standard/linq/index.md index 332b114e6e137..4a36d408a748a 100644 --- a/docs/standard/linq/index.md +++ b/docs/standard/linq/index.md @@ -153,8 +153,6 @@ The answer to this question is **no** if... ## Essential LINQ -For a truly comprehensive list of LINQ samples, visit [101 LINQ Samples](/samples/dotnet/try-samples/101-linq-samples/). - The following examples are a quick demonstration of some of the essential pieces of LINQ. This is in no way comprehensive, as LINQ provides more functionality than what is showcased here. ### The bread and butter - `Where`, `Select`, and `Aggregate` @@ -387,6 +385,5 @@ Parallelizable CPU-bound jobs that can be easily expressed via LINQ (in other wo ## More resources -* [101 LINQ Samples](/samples/dotnet/try-samples/101-linq-samples/) * [Linqpad](https://www.linqpad.net/), a playground environment and Database querying engine for C#/F#/Visual Basic * [EduLinq](https://codeblog.jonskeet.uk/2011/02/23/reimplementing-linq-to-objects-part-45-conclusion-and-list-of-posts/), an e-book for learning how LINQ-to-objects is implemented From 013cdac893e47dfee577aac7a431da572ebe053a Mon Sep 17 00:00:00 2001 From: Tara Overfield Date: Tue, 14 Jan 2025 14:34:42 -0800 Subject: [PATCH 9/9] January security release notes (#44213) * January securty release notes DO NOT PUBLISH until 1/14/25! * Update docs/framework/release-notes/release-notes.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> * Update docs/framework/toc.yml Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> * Remove release date from release notes --------- Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .../2025/01-14-january-cumulative-update.md | 93 +++++++++++++++++++ docs/framework/release-notes/release-notes.md | 29 ++++++ docs/framework/toc.yml | 4 + 3 files changed, 126 insertions(+) create mode 100644 docs/framework/release-notes/2025/01-14-january-cumulative-update.md create mode 100644 docs/framework/release-notes/release-notes.md diff --git a/docs/framework/release-notes/2025/01-14-january-cumulative-update.md b/docs/framework/release-notes/2025/01-14-january-cumulative-update.md new file mode 100644 index 0000000000000..38dbfea2c234a --- /dev/null +++ b/docs/framework/release-notes/2025/01-14-january-cumulative-update.md @@ -0,0 +1,93 @@ +--- +title: January 2025 cumulative update +description: Learn about the improvements in the .NET Framework January 2025 cumulative update. +ms.date: 01/14/2025 +--- +# January 2025 cumulative update + +_Released January 14, 2025_ + +## Summary of what's new in this release + +- [Security improvements](#security-improvements) +- [Quality and reliability improvements](#quality-and-reliability-improvements) + +### Security improvements + +#### CVE-2025-21176 – Remote Code Execution vulnerability + +This security update addresses a remote code execution vulnerability detailed in [CVE 2025-21146](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-21176). + +### Quality and reliability improvements + +#### CLR + +Address crashes that can occur due to certain interactions between multi-module assembly native image usage and OS code integrity enforcement policy updates. (*Applies to: .NET Framework 4.8, 4.8.1.*) + +## Known issues in this release + +This release contains no known issues. + +## Summary tables + +The following table outlines the updates in this release. + +| Product version | Cumulative update | +| --- | --- | +| **Windows 11, version 24H2** | | +| .NET Framework 3.5, 4.8.1 | [5049622](https://support.microsoft.com/kb/5049622) | +| **Microsoft server operating system, version 24H2** | | +| .NET Framework 3.5, 4.8.1 | [5049622](https://support.microsoft.com/kb/5049622) | +| **Microsoft server operating system, version 23H2** | | +| .NET Framework 3.5, 4.8.1 | [5049620](https://support.microsoft.com/kb/5049620) | +| **Windows 11, version 22H2 and Windows 11, version 23H2** | | +| .NET Framework 3.5, 4.8.1 | [5049624](https://support.microsoft.com/kb/5049624) | +| **Microsoft server operating system, version 22H2** | **[5050190](https://support.microsoft.com/kb/5050190)** | +| .NET Framework 3.5, 4.8 | [5049617](https://support.microsoft.com/kb/5049617) | +| .NET Framework 3.5, 4.8.1 | [5049625](https://support.microsoft.com/kb/5049625) | +| **Microsoft server operating system, version 21H2** | **[5050187](https://support.microsoft.com/kb/5050187)** | +| .NET Framework 3.5, 4.8 | [5049617](https://support.microsoft.com/kb/5049617) | +| .NET Framework 3.5, 4.8.1 | [5049625](https://support.microsoft.com/kb/5049625) | +| **Windows 10, version 22H2** | **[5050188](https://support.microsoft.com/kb/5050188)** | +| .NET Framework 3.5, 4.8 | [5049613](https://support.microsoft.com/kb/5049613) | +| .NET Framework 3.5, 4.8.1 | [5049621](https://support.microsoft.com/kb/5049621) | +| **Windows 10, version 21H2** | **[5050416](https://support.microsoft.com/kb/5050416)** | +| .NET Framework 3.5, 4.8 | [5049613](https://support.microsoft.com/kb/5049613) | +| .NET Framework 3.5, 4.8.1 | [5049621](https://support.microsoft.com/kb/5049621) | +| **Windows 10 1809 and Windows Server 2019** | **[5050182](https://support.microsoft.com/kb/5050182)** | +| .NET Framework 3.5, 4.7.2 | [5049608](https://support.microsoft.com/kb/5049608) | +| .NET Framework 3.5, 4.8 | [5049615](https://support.microsoft.com/kb/5049615) | +| **Windows 10 1607 and Windows Server 2016** | | +| .NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2 | [5049993](https://support.microsoft.com/kb/5049993) | +| .NET Framework 4.8 | [5049614](https://support.microsoft.com/kb/5049614) | + +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** | **[5050185](https://support.microsoft.com/kb/5050185)** | +| .NET Framework 3.5 | [5044012](https://support.microsoft.com/kb/5044012) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5049610](https://support.microsoft.com/kb/5049610) | +| .NET Framework 4.8 | [5049614](https://support.microsoft.com/kb/5049614) | +| **Windows Server 2012** | **[5050184](https://support.microsoft.com/kb/5050184)** | +| .NET Framework 3.5 | [5044009](https://support.microsoft.com/kb/5044009) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [55049609](https://support.microsoft.com/kb/5049610) | +| .NET Framework 4.8 | [5049618](https://support.microsoft.com/kb/5049618) | +| **Windows Server 2008 R2** | **[5046543](https://support.microsoft.com/kb/5046543)** | +| .NET Framework 3.5.1 | [5044011](https://support.microsoft.com/kb/5044011) | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5049611](https://support.microsoft.com/kb/5049611)| +| .NET Framework 4.8 |[5049619](https://support.microsoft.com/kb/5049619) | +| **Windows Server 2008** | **[5050186](https://support.microsoft.com/kb/5050186)** | +| .NET Framework 2.0, 3.0 | [5044010](https://support.microsoft.com/kb/5044010) | +| .NET Framework 3.5 SP1 | [5040673](https://support.microsoft.com/kb/5040673) | +| .NET Framework 4.6.2 | [5049611](https://support.microsoft.com/kb/5049611) | + +| Product version | Security Only Update | +| --- | --- | +| **Windows Server 2008 R2** | **[5050180](https://support.microsoft.com/kb/5050180)** | +| .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 | [5049627](https://support.microsoft.com/kb/5049627)| +| .NET Framework 4.8 |[5049628](https://support.microsoft.com/kb/5049628) | +| **Windows Server 2008** | **[5050181](https://support.microsoft.com/kb/5050181)** | +| .NET Framework 4.6.2 | [5049627](https://support.microsoft.com/kb/5049627) | + +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. diff --git a/docs/framework/release-notes/release-notes.md b/docs/framework/release-notes/release-notes.md new file mode 100644 index 0000000000000..22ccf88b4a25f --- /dev/null +++ b/docs/framework/release-notes/release-notes.md @@ -0,0 +1,29 @@ +--- +title: .NET Framework release information +description: Improvements in the .NET Framework servicing cumulative updates. +ms.date: 01/14/2025 +--- +# .NET Framework release notes + +The .NET Framework updates include cumulative security and reliability improvements. We recommend that you apply updates as part of your regular maintenance routines. + +.NET Framework will be supported with fixes and security updates for years to come as explained in more detail in the [lifecycle and support policy](/lifecycle/products/microsoft-net-framework). You can acquire the latest, most secure version of .NET Framework from Windows Update or by visiting Microsoft Update Catalog. + +.NET Framework cumulative update releases are discussed in detail in the following individual release notes: + +* January 14, 2025 - [cumulative update](./2025/01-14-january-cumulative-update.md) **New Release** +* November 21, 2024 - [cumulative update preview](./2024/11-21-november-preview-cumulative-update.md) +* November 12, 2024 - [security and quality rollup](./2024/11-12-november-security-and-quality-rollup.md) +* Octber 22, 2024 - [cumulative update preview](./2024/10-22-october-preview-cumulative-update.md) +* October 8, 2024 - [security and quality rollup](./2024/10-08-october-security-and-quality-rollup.md) +* August 13, 2024 - [security and quality rollup](./2024/08-13-august-security-and-quality-rollup.md) +* July 25, 2024 - [cumulative update preview](./2024/07-25-july-preview-cumulative-update.md) +* July 9, 2024 - [security and quality rollup](./2024/07-09-july-security-and-quality-rollup.md) +* June 25, 2024 - [cumulative update preview](./2024/06-25-june-preview-cumulative-update.md) +* May 14, 2024 - [security and quality rollup](./2024/05-14-may-security-and-quality-rollup.md) +* April 23, 2024 - [cumulative update preview](./2024/04-23-april-preview-cumulative-update.md) +* April 9, 2024 - [security and quality rollup](./2024/04-09-april-security-and-quality-rollup.md) +* March 26, 2024 - [cumulative update preview](./2024/03-26-march-preview-cumulative-update.md) +* February 14, 2024 - [security and quality rollup](./2024/02-14-february-security-and-quality-rollup.md) +* January 23, 2024 - [cumulative update preview](./2024/01-23-january-preview-cumulative-update.md) +* January 9, 2024 - [security and quality rollup](./2024/01-09-january-security-and-quality-rollup.md) diff --git a/docs/framework/toc.yml b/docs/framework/toc.yml index 3cb088b81f694..f403efea9639b 100644 --- a/docs/framework/toc.yml +++ b/docs/framework/toc.yml @@ -673,6 +673,8 @@ items: items: - name: Release notes items: + - name: Overview and index + href: release-notes/release-notes.md - name: January 2024 security and quality rollup href: release-notes/2024/01-09-january-security-and-quality-rollup.md - name: January 2024 cumulative update preview @@ -703,6 +705,8 @@ items: href: release-notes/2024/11-12-november-security-and-quality-rollup.md - name: November 2024 cumulative update preview href: release-notes/2024/11-21-november-preview-cumulative-update.md + - name: January 2025 cumulative update + href: release-notes/2025/01-14-january-cumulative-update.md - name: What's new href: whats-new/index.md - name: What's new in accessibility