diff --git a/.github/policies/label-issues.yml b/.github/policies/label-issues.yml
index 30da739ecc93d..7ced254b88bd3 100644
--- a/.github/policies/label-issues.yml
+++ b/.github/policies/label-issues.yml
@@ -6,50 +6,69 @@ resource: repository
disabled: false
where:
configuration:
- resourceManagementConfiguration:
- scheduledSearches:
- - description: Label doc-bug issues with okr-health (scheduled search)
- frequencies:
- - hourly:
- hour: 3
- filters:
- - isIssue
- - isOpen
- - hasLabel:
- label: doc-bug
- - isNotLabeledWith:
- label: okr-health
- actions:
- - addLabel:
- label: okr-health
- eventResponderTasks:
- - if:
- - payloadType: Pull_Request
- then:
- - inPrLabel:
- label: in-pr
- description: Add in-pr label to issues
- - if:
- - payloadType: Pull_Request
- then:
- - labelSync:
- pattern: okr-
- - labelSync:
- pattern: ':checkered_flag: Release'
- description: Synchronize OKR and release labels from PRs to closing issues
- - if:
- - payloadType: Issues
- - or:
- - titleContains:
- pattern: freshness
- isRegex: False
- - titleContains:
- pattern: out( |-)of( |-)date
- isRegex: True
- - titleContains:
- pattern: stale
- isRegex: False
- then:
- - addLabel:
- label: okr-freshness
- description: Label issues with okr-freshness (event-based)
+ resourceManagementConfiguration:
+ scheduledSearches:
+ - description: Label doc-bug issues with okr-quality (scheduled search)
+ frequencies:
+ - hourly:
+ hour: 3
+ filters:
+ - isIssue
+ - isOpen
+ - hasLabel:
+ label: doc-bug
+ - isNotLabeledWith:
+ label: okr-quality
+ actions:
+ - addLabel:
+ label: okr-quality
+
+ eventResponderTasks:
+ - description: Add in-pr label to issues
+ if:
+ - payloadType: Pull_Request
+ then:
+ - inPrLabel:
+ label: in-pr
+
+ - description: Synchronize OKR and release labels from PRs to closing issues
+ if:
+ - payloadType: Pull_Request
+ then:
+ - labelSync:
+ pattern: okr-
+ - labelSync:
+ pattern: ":checkered_flag: Release"
+
+ - description: Label issues with okr-freshness (event-based)
+ if:
+ - payloadType: Issues
+ - or:
+ - titleContains:
+ pattern: freshness
+ isRegex: False
+ - titleContains:
+ pattern: out( |-)of( |-)date
+ isRegex: True
+ - titleContains:
+ pattern: stale
+ isRegex: False
+ then:
+ - addLabel:
+ label: okr-freshness
+
+ - description: Label typo issues
+ if:
+ - payloadType: Issues
+ - isAction:
+ action: Opened
+ - titleContains:
+ pattern: (T|t)ypo
+ isRegex: True
+ then:
+ - addLabel:
+ label: doc-bug
+ - addLabel:
+ label: help wanted
+ - addLabel:
+ label: good first issue
diff --git a/.github/policies/label-prs.yml b/.github/policies/label-prs.yml
index 844344144b942..a279a57cff56a 100644
--- a/.github/policies/label-prs.yml
+++ b/.github/policies/label-prs.yml
@@ -8,82 +8,82 @@ where:
configuration:
resourceManagementConfiguration:
eventResponderTasks:
- - description: Label community PRs
- if:
- - payloadType: Pull_Request
- - isAction:
- action: Opened
- - and:
- - not:
- activitySenderHasPermission:
- permission: Admin
- - not:
- activitySenderHasPermission:
- permission: Write
- - not:
- isActivitySender:
- user: github-actions[bot]
- - not:
- isActivitySender:
- user: github-actions
- - not:
- isActivitySender:
- user: azure-sdk
- - not:
- isActivitySender:
- user: dependabot
- then:
- - addLabel:
- label: community-contribution
+ - description: Label community PRs
+ if:
+ - payloadType: Pull_Request
+ - isAction:
+ action: Opened
+ - and:
+ - not:
+ activitySenderHasPermission:
+ permission: Admin
+ - not:
+ activitySenderHasPermission:
+ permission: Write
+ - not:
+ isActivitySender:
+ user: github-actions[bot]
+ - not:
+ isActivitySender:
+ user: github-actions
+ - not:
+ isActivitySender:
+ user: azure-sdk
+ - not:
+ isActivitySender:
+ user: dependabot
+ then:
+ - addLabel:
+ label: community-contribution
- - description: Label publish PRs from the dotnet-policy-service bot
- triggerOnOwnActions: true
- if:
- - payloadType: Pull_Request
- - isAction:
- action: Opened
- - isActivitySender:
- user: dotnet-policy-service[bot]
- - titleContains:
- pattern: Merge main into live
- isRegex: False
- then:
- - addLabel:
- label: ':octocat: auto-merge'
+ - description: Label publish PRs from the dotnet-policy-service bot
+ triggerOnOwnActions: true
+ if:
+ - payloadType: Pull_Request
+ - isAction:
+ action: Opened
+ - isActivitySender:
+ user: dotnet-policy-service[bot]
+ - titleContains:
+ pattern: Merge main into live
+ isRegex: False
+ then:
+ - addLabel:
+ label: ":octocat: auto-merge"
- - description: Label PRs from the Azure SDK bot
- if:
- - payloadType: Pull_Request
- - isActivitySender:
- user: azure-sdk
- then:
- - addLabel:
- label: ':octocat: auto-merge'
+ - description: Label PRs from the Azure SDK bot
+ if:
+ - payloadType: Pull_Request
+ - isActivitySender:
+ user: azure-sdk
+ then:
+ - addLabel:
+ label: ":octocat: auto-merge"
- - description: Label PRs with okr-health
- if:
- - payloadType: Pull_Request
- - or:
- - titleContains:
- pattern: build warning
- isRegex: False
- - bodyContains:
- pattern: build warning
- isRegex: False
- then:
- - addLabel:
- label: okr-health
+ - description: Label PRs with okr-quality
+ if:
+ - payloadType: Pull_Request
+ - or:
+ - titleContains:
+ pattern: build warning
+ isRegex: False
+ - bodyContains:
+ pattern: build warning
+ isRegex: False
+ then:
+ - addLabel:
+ label: okr-quality
- - description: Label PRs with okr-freshness
- if:
- - payloadType: Pull_Request
- - or:
- - titleContains:
- pattern: freshness
- isRegex: False
- - bodyContains:
- pattern: freshness
- isRegex: False
- then:
- - addLabel:
- label: okr-freshness
+ - description: Label PRs with okr-freshness
+ if:
+ - payloadType: Pull_Request
+ - or:
+ - titleContains:
+ pattern: freshness
+ isRegex: False
+ - bodyContains:
+ pattern: freshness
+ isRegex: False
+ then:
+ - addLabel:
+ label: okr-freshness
diff --git a/.github/workflows/check-for-build-warnings.yml b/.github/workflows/check-for-build-warnings.yml
index cd37988ec0015..33e7a923b4412 100644
--- a/.github/workflows/check-for-build-warnings.yml
+++ b/.github/workflows/check-for-build-warnings.yml
@@ -17,7 +17,7 @@ jobs:
pull-requests: write
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/clean-repo.yml b/.github/workflows/clean-repo.yml
index edc4ec1bfc634..00569c409e21b 100644
--- a/.github/workflows/clean-repo.yml
+++ b/.github/workflows/clean-repo.yml
@@ -18,7 +18,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
@@ -27,7 +27,7 @@ jobs:
# Call clean repo
- name: Clean repo
id: clean-repo-step
- uses: dotnet/docs-tools/cleanrepo/CleanRepo@5e8bcc78465d45a7544bba56509a1a69922b6a5a # main
+ uses: dotnet/docs-tools/cleanrepo@2a815a6c0976e888a49264f513dc230008b4a1f2
with:
docfx_directory: '.'
articles_directory: 'docs'
diff --git a/.github/workflows/dependabot-approve-and-automerge.yml b/.github/workflows/dependabot-approve-and-automerge.yml
index 8e21d4c242798..724d2d27e8f16 100644
--- a/.github/workflows/dependabot-approve-and-automerge.yml
+++ b/.github/workflows/dependabot-approve-and-automerge.yml
@@ -11,7 +11,7 @@ jobs:
if: ${{ github.actor == 'dependabot[bot]' && github.repository_owner == 'dotnet' }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/dependabot-bot.yml b/.github/workflows/dependabot-bot.yml
index caca05800f546..c61bff21b80ce 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml
index 56d5770ba50a1..f072eabac8d4e 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
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 2189fd51673fb..36d65e34ed1f8 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/docs-verifier-tryfix.yml b/.github/workflows/docs-verifier-tryfix.yml
index 4c7d2ff92f427..0e23b8c5e4272 100644
--- a/.github/workflows/docs-verifier-tryfix.yml
+++ b/.github/workflows/docs-verifier-tryfix.yml
@@ -17,7 +17,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/docs-verifier.yml b/.github/workflows/docs-verifier.yml
index e6d4a44a085fa..df77f87872e75 100644
--- a/.github/workflows/docs-verifier.yml
+++ b/.github/workflows/docs-verifier.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/live-protection.yml b/.github/workflows/live-protection.yml
index cdc26e65057ac..2020b2b550e90 100644
--- a/.github/workflows/live-protection.yml
+++ b/.github/workflows/live-protection.yml
@@ -5,7 +5,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml
index e1846d2e87640..f5fc80a12dc6b 100644
--- a/.github/workflows/markdownlint.yml
+++ b/.github/workflows/markdownlint.yml
@@ -27,7 +27,7 @@ jobs:
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml
index b8456dea80e52..800f6dde5e97f 100644
--- a/.github/workflows/no-response.yml
+++ b/.github/workflows/no-response.yml
@@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/profanity-filter.yml b/.github/workflows/profanity-filter.yml
index 6fe74ead8b75b..5a9ffca299246 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/quest-bulk.yml b/.github/workflows/quest-bulk.yml
index 6eeef3c699082..d6c51bd1336ff 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/quest.yml b/.github/workflows/quest.yml
index c9d0ac1325201..6e75c183cfb49 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml
index 50d9f5ab1184b..052e4789d98f3 100644
--- a/.github/workflows/rebase-needed.yml
+++ b/.github/workflows/rebase-needed.yml
@@ -15,12 +15,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
- uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
- name: Check for merge conflicts
- uses: eps1lon/actions-label-merge-conflict@fd1f295ee7443d13745804bc49fe158e240f6c6e # releases/2.x
+ uses: eps1lon/actions-label-merge-conflict@1b1b1fcde06a9b3d089f3464c96417961dde1168 # releases/2.x
with:
dirtyLabel: "rebase needed :construction:"
repoToken: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index 10c0d9bdfc315..fc41713707668 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
@@ -71,6 +71,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f # v3.25.12
+ uses: github/codeql-action/upload-sarif@2d790406f505036ef40ecba973cc774a50395aac # v3.25.13
with:
sarif_file: results.sarif
diff --git a/.github/workflows/snippets5000.yml b/.github/workflows/snippets5000.yml
index 7fa6053125200..9a0aa3c28a3f0 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
@@ -60,5 +60,7 @@ jobs:
- name: Run snippets 5000 for PR
env:
GitHubKey: ${{ secrets.GITHUB_TOKEN }}
+ ExtensionsCodeTriggers: .cs;.vb;.fs;.xaml;.razor;.cshtml;.vbhtml;.sln;.csproj;.fsproj;.vbproj;.proj
+ ExtensionsProjects: .sln;.csproj;.fsproj;.vbproj;.proj
run: |
dotnet run --project docs-tools/snippets5000/Snippets5000/Snippets5000.csproj -- --sourcepath "${{ github.workspace }}" --pullrequest ${{ github.event.number }} --owner ${{ github.repository_owner }} --repo ${{ github.event.repository.name }}
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index e8e4671ea8242..1edb495e06aa9 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/version-sweep.yml b/.github/workflows/version-sweep.yml
index ffec8df63df97..19e6ac649f696 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/.github/workflows/whats-new.yml b/.github/workflows/whats-new.yml
index b8ee9c9421176..0a089e0e982f9 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@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+ uses: step-security/harden-runner@0d381219ddf674d61a7572ddd19d7941e271515c # v2.9.0
with:
egress-policy: audit
diff --git a/docfx.json b/docfx.json
index dbb9e33ccc7cc..7ad11e348bcd2 100644
--- a/docfx.json
+++ b/docfx.json
@@ -662,7 +662,7 @@
"_csharplang/proposals/lock-object.md": "Obey lock object semantics for lock statements",
"_csharplang/proposals/method-group-natural-type-improvements.md": "Method group natural type improvements",
"_csharplang/proposals/params-collections.md": "Params collections",
- "_csharplang/proposals/ref-unsafe-in-terators-async.md": "Allow ref and unsafe in iterators and async methods",
+ "_csharplang/proposals/ref-unsafe-in-iterators-async.md": "Allow ref and unsafe in iterators and async methods",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md": "C# compiler breaking changes since C# 10",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "C# compiler breaking changes since C# 11",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "C# compiler breaking changes since C# 12",
@@ -779,7 +779,7 @@
"_csharplang/proposals/lock-object.md": "Special-case how `System.Threading.Lock` interacts with the `lock` keyword by calling its `EnterScope` method. Add static analysis warnings to prevent accidental misuse of the type where possible.",
"_csharplang/proposals/method-group-natural-type-improvements.md": "This proposal refines the determination of the natural type of a method group by considering candidates scope-by-scope and pruning at each scope.",
"_csharplang/proposals/params-collections.md": "Allow the `params` modifier on collection types beyond arrays, including `IEnumerable` types.",
- "_csharplang/proposals/ref-unsafe-in-terators-async.md": "This proposal modifies restrictions to enable ref local variables and unsafe blocks in iterators and async methods",
+ "_csharplang/proposals/ref-unsafe-in-iterators-async.md": "This proposal modifies restrictions to enable ref local variables and unsafe blocks in iterators and async methods",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md": "Learn about any breaking changes since the initial release of C# 10",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "Learn about any breaking changes since the initial release of C# 11",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "Learn about any breaking changes since the initial release of C# 12",
diff --git a/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj b/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj
index af431f4dd3e6e..a357e65a4c35a 100644
--- a/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj
+++ b/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/docs/architecture/cloud-native/communication-patterns.md b/docs/architecture/cloud-native/communication-patterns.md
index 85214bf5edeae..3a10184d0bb18 100644
--- a/docs/architecture/cloud-native/communication-patterns.md
+++ b/docs/architecture/cloud-native/communication-patterns.md
@@ -28,15 +28,10 @@ Across the cluster, microservices communicate with each other through APIs and m
While they provide many benefits, microservices are no free lunch. Local in-process method calls between components are now replaced with network calls. Each microservice must communicate over a network protocol, which adds complexity to your system:
- Network congestion, latency, and transient faults are a constant concern.
-
- Resiliency (that is, retrying failed requests) is essential.
-
-- Some calls must be [idempotent](https://www.restapitutorial.com/lessons/idempotency.html) as to keep consistent state.
-
+- Some calls must be idempotent as to keep consistent state.
- Each microservice must authenticate and authorize calls.
-
- Each message must be serialized and then deserialized - which can be expensive.
-
- Message encryption/decryption becomes important.
The book [.NET Microservices: Architecture for Containerized .NET Applications](https://dotnet.microsoft.com/download/thank-you/microservices-architecture-ebook), available for free from Microsoft, provides an in-depth coverage of communication patterns for microservice applications. In this chapter, we provide a high-level overview of these patterns along with implementation options available in the Azure cloud.
diff --git a/docs/architecture/cloud-native/elastic-search-in-azure.md b/docs/architecture/cloud-native/elastic-search-in-azure.md
index 5a7208c9acf1f..c59696142b125 100644
--- a/docs/architecture/cloud-native/elastic-search-in-azure.md
+++ b/docs/architecture/cloud-native/elastic-search-in-azure.md
@@ -12,7 +12,7 @@ ms.date: 04/06/2022
Elasticsearch is a distributed search and analytics system that enables complex search capabilities across diverse types of data. It's open source and widely popular. Consider how the following companies integrate Elasticsearch into their application:
- [Wikipedia](https://blog.wikimedia.org/2014/01/06/wikimedia-moving-to-elasticsearch/) for full-text and incremental (search as you type) searching.
-- [GitHub](https://www.elastic.co/customers/github) to index and expose over 8 million code repositories.
+- [GitHub](https://www.elastic.co/customers/github) to index and expose over 8 million code repositories.
- [Docker](https://www.elastic.co/customers/docker) for making its container library discoverable.
Elasticsearch is built on top of the [Apache Lucene](https://lucene.apache.org/core/) full-text search engine. Lucene provides high-performance document indexing and querying. It indexes data with an inverted indexing scheme – instead of mapping pages to keywords, it maps keywords to pages just like a glossary at the end of a book. Lucene has powerful query syntax capabilities and can query data by:
@@ -43,7 +43,7 @@ This chapter presented a detailed look at data in cloud-native systems. We start
- [Materialized View](/azure/architecture/patterns/materialized-view)
-- [All you really need to know about open source databases](https://www.ibm.com/blogs/systems/all-you-really-need-to-know-about-open-source-databases/)
+- All you really need to know about open source databases (IBM blog)
- [Compensating Transaction pattern](/azure/architecture/patterns/compensating-transaction)
@@ -56,7 +56,7 @@ This chapter presented a detailed look at data in cloud-native systems. We start
- [Getting Behind the 9-Ball: Cosmos DB Consistency Levels Explained](https://blog.jeremylikness.com/blog/2018-03-23_getting-behind-the-9ball-cosmosdb-consistency-levels/)
- [On RDBMS, NoSQL and NewSQL databases. Interview with John Ryan](http://www.odbms.org/blog/2018/03/on-rdbms-nosql-and-newsql-databases-interview-with-john-ryan/)
-
+
- [SQL vs NoSQL vs NewSQL: The Full Comparison](https://www.xenonstack.com/blog/sql-vs-nosql-vs-newsql/)
- [DASH: Four Properties of Kubernetes-Native Databases](https://thenewstack.io/dash-four-properties-of-kubernetes-native-databases/)
@@ -70,7 +70,7 @@ This chapter presented a detailed look at data in cloud-native systems. We start
- [Vitess](https://vitess.io/)
- [Elasticsearch: The Definitive Guide](https://shop.oreilly.com/product/0636920028505.do)
-
+
- [Introduction to Apache Lucene](https://www.baeldung.com/lucene)
>[!div class="step-by-step"]
diff --git a/docs/architecture/maui/media/login-page-displayed-by-the-webview.png b/docs/architecture/maui/media/login-page-displayed-by-the-webview.png
deleted file mode 100644
index ee05b1b233cd8..0000000000000
Binary files a/docs/architecture/maui/media/login-page-displayed-by-the-webview.png and /dev/null differ
diff --git a/docs/architecture/maui/media/screenshot.png b/docs/architecture/maui/media/screenshot.png
deleted file mode 100644
index 1139628f0219c..0000000000000
Binary files a/docs/architecture/maui/media/screenshot.png and /dev/null differ
diff --git a/docs/architecture/maui/mvvm.md b/docs/architecture/maui/mvvm.md
index 4cef3f9163ab5..a6c8d135674b8 100644
--- a/docs/architecture/maui/mvvm.md
+++ b/docs/architecture/maui/mvvm.md
@@ -169,9 +169,9 @@ Using a lambda expression in this way involves a small performance cost because
## MVVM Frameworks
-The MVVM pattern is well established in .NET, and the community has created many frameworks which help ease this development. Each framework provides a different set of features, but it is standard for them to provide a common view model with an implementation of the `INotifyPropertyChanged` interface. Additional features of MVVM frameworks include custom commands, navigation helpers, dependency injection/service locator components, and UI platform integration. While it is not necessary to use these frameworks, they can speed up and standardize your development. The eShop multi-platform app uses [the .NET Community MVVM Toolkit](/dotnet/communitytoolkit/mvvm/introduction). When choosing a framework, you should consider your application's needs and your team's strengths. The list below includes some of the more common MVVM frameworks for .NET MAUI.
+The MVVM pattern is well established in .NET, and the community has created many frameworks which help ease this development. Each framework provides a different set of features, but it is standard for them to provide a common view model with an implementation of the `INotifyPropertyChanged` interface. Additional features of MVVM frameworks include custom commands, navigation helpers, dependency injection/service locator components, and UI platform integration. While it is not necessary to use these frameworks, they can speed up and standardize your development. The eShop multi-platform app uses [the .NET Community MVVM Toolkit](/dotnet/communitytoolkit/mvvm/). When choosing a framework, you should consider your application's needs and your team's strengths. The list below includes some of the more common MVVM frameworks for .NET MAUI.
-- [.NET Community MVVM Toolkit](/dotnet/communitytoolkit/mvvm/introduction/)
+- [.NET Community MVVM Toolkit](/dotnet/communitytoolkit/mvvm/)
- [ReactiveUI](https://www.reactiveui.net/)
- [Prism Library](https://prismlibrary.com/)
diff --git a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure.md b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure.md
index d2cba2b1ddf6d..d0794492a8c3e 100644
--- a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure.md
+++ b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure.md
@@ -327,9 +327,6 @@ services:
- **Connect a MongoDB application to Azure Cosmos DB** \
[https://learn.microsoft.com/azure/cosmos-db/connect-mongodb-account](/azure/cosmos-db/connect-mongodb-account)
-- **The Cosmos DB Emulator Docker image (Windows Container)** \
-
-
- **The MongoDB Docker image (Linux and Windows Container)** \
diff --git a/docs/azure/TOC.yml b/docs/azure/TOC.yml
index 09dd2447f1eb8..5e58f198ae13d 100644
--- a/docs/azure/TOC.yml
+++ b/docs/azure/TOC.yml
@@ -81,6 +81,8 @@
href: ./sdk/unit-testing-mocking.md
- name: Configure a proxy server
href: ./sdk/azure-sdk-configure-proxy.md
+ - name: Library method types
+ href: ./sdk/protocol-convenience-methods.md
- name: Packages list
href: ./sdk/packages.md
- name: SDK example
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index dcf6a70a8c302..0d1d203cad10a 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -47,7 +47,7 @@
| Health Insights Radiology Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.RadiologyInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.RadiologyInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.RadiologyInsights_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.RadiologyInsights/) |
| Identity | NuGet [1.12.0](https://www.nuget.org/packages/Azure.Identity/1.12.0) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.12.0/sdk/identity/Azure.Identity/) |
| Identity Broker | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Identity.Broker/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Identity.Broker/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Identity.Broker-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.1.0/sdk/identity/Azure.Identity.Broker/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.2.0-beta.1/sdk/identity/Azure.Identity.Broker/) |
-| Image Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/vision/Azure.AI.Vision.ImageAnalysis) |
+| Image Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Vision.ImageAnalysis_1.0.0-beta.3/sdk/vision/Azure.AI.Vision.ImageAnalysis/) |
| Key Vault - Administration | NuGet [4.4.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Administration/4.4.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Administration-readme) | GitHub [4.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Administration_4.4.0/sdk/keyvault/Azure.Security.KeyVault.Administration/) |
| Key Vault - Certificates | NuGet [4.6.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Certificates/4.6.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Certificates-readme) | GitHub [4.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Certificates_4.6.0/sdk/keyvault/Azure.Security.KeyVault.Certificates/) |
| Key Vault - Keys | NuGet [4.6.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Keys/4.6.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Keys-readme) | GitHub [4.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Keys_4.6.0/sdk/keyvault/Azure.Security.KeyVault.Keys/) |
@@ -92,7 +92,7 @@
| Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) |
| Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) |
| System.ClientModel | NuGet [1.0.0](https://www.nuget.org/packages/System.ClientModel/1.0.0)
NuGet [1.1.0-beta.5](https://www.nuget.org/packages/System.ClientModel/1.1.0-beta.5) | [docs](/dotnet/api/overview/azure/System.ClientModel-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.0.0/sdk/core/System.ClientModel/)
GitHub [1.1.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.1.0-beta.5/sdk/core/System.ClientModel/) |
-| Tables | NuGet [12.8.3](https://www.nuget.org/packages/Azure.Data.Tables/12.8.3) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.8.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.8.3/sdk/tables/Azure.Data.Tables/) |
+| Tables | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Data.Tables/12.9.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.9.0/sdk/tables/Azure.Data.Tables/) |
| Text Analytics | NuGet [5.3.0](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.3.0) | [docs](/dotnet/api/overview/azure/AI.TextAnalytics-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.3.0/sdk/textanalytics/Azure.AI.TextAnalytics/) |
| Text Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Text/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Text-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Text_1.0.0/sdk/translation/Azure.AI.Translation.Text/) |
| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.CallingServer/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Communication.CallingServer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallingServer_1.0.0-beta.3/sdk/communication/Azure.Communication.CallingServer/) |
@@ -343,11 +343,11 @@
| Application Insights | NuGet [0.9.0-preview](https://www.nuget.org/packages/Microsoft.Azure.ApplicationInsights/0.9.0-preview) | | |
| Auto Suggest | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.AutoSuggest/2.0.0) | | |
| Auto Suggest | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingAutoSuggest/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingAutoSuggest_2.1.0-preview.1/sdk/cognitiveservices/Search.BingAutoSuggest) |
-| Autorest Client Runtime - Azure | NuGet [3.3.19](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Azure/3.3.19) | | GitHub [3.3.19](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/mgmtcommon/ClientRuntime.Azure) |
+| Autorest Client Runtime - Azure | NuGet [3.3.19](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Azure/3.3.19) | | GitHub [3.3.19](https://github.com/Azure/azure-sdk-for-net/tree/mgmt-legacy/sdk/mgmtcommon/ClientRuntime.Azure) |
| Autorest Client Runtime - Azure Authentication | NuGet [2.4.1](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Azure.Authentication/2.4.1) | | GitHub [2.4.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Rest.ClientRuntime.Azure.Authentication_2.4.1/sdk/mgmtcommon/Auth/Az.Auth/Az.Authentication) |
| Autorest Client Runtime - Client | NuGet [2.3.24](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime/2.3.24) | | GitHub [2.3.24](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Rest.ClientRuntime_2.3.21/sdk/mgmtcommon/ClientRuntime) |
-| Autorest Client Runtime - ETW | NuGet [2.1.3](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Etw/2.1.3) | | GitHub [2.1.3](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/mgmtcommon/ClientRuntime.Etw) |
-| Autorest Client Runtime - Log4Net | NuGet [2.1.4](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Log4Net/2.1.4) | | GitHub [2.1.4](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/mgmtcommon/ClientRuntime.Log4Net) |
+| Autorest Client Runtime - ETW | NuGet [2.1.3](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Etw/2.1.3) | | GitHub [2.1.3](https://github.com/Azure/azure-sdk-for-net/tree/mgmt-legacy/sdk/mgmtcommon/ClientRuntime.Etw) |
+| Autorest Client Runtime - Log4Net | NuGet [2.1.4](https://www.nuget.org/packages/Microsoft.Rest.ClientRuntime.Log4Net/2.1.4) | | GitHub [2.1.4](https://github.com/Azure/azure-sdk-for-net/tree/mgmt-legacy/sdk/mgmtcommon/ClientRuntime.Log4Net) |
| AutoRest Common | NuGet [2.4.48](https://www.nuget.org/packages/Microsoft.AutoRest.Common/2.4.48) | | GitHub [2.4.48](https://github.com/Azure/autorest.common) |
| Azure Stack - Azure Consistent Storage | NuGet [0.10.8-preview](https://www.nuget.org/packages/Microsoft.AzureStack.AzureConsistentStorage/0.10.8-preview) | | |
| Azure.FX | NuGet [0.0.24-alpha](https://www.nuget.org/packages/Azure.FX/0.0.24-alpha) | | |
@@ -355,7 +355,7 @@
| Batch | NuGet [16.2.0](https://www.nuget.org/packages/Microsoft.Azure.Batch/16.2.0) | | GitHub [16.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Batch_16.2.0/sdk/batch/Microsoft.Azure.Batch/) |
| Batch - Apps Cryptography | NuGet [1.1.1.4](https://www.nuget.org/packages/Microsoft.Azure.Batch.Apps.Cryptography/1.1.1.4) | | |
| Batch - Conventions Files | NuGet [4.0.0](https://www.nuget.org/packages/Microsoft.Azure.Batch.Conventions.Files/4.0.0) | | GitHub [4.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Batch.Conventions.Files_4.0.0/sdk/batch/Microsoft.Azure.Batch.Conventions.Files/) |
-| Batch - File Staging | NuGet [9.0.0](https://www.nuget.org/packages/Microsoft.Azure.Batch.FileStaging/9.0.0) | | GitHub [9.0.0](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/batch/Microsoft.Azure.Batch.FileStaging) |
+| Batch - File Staging | NuGet [9.0.0](https://www.nuget.org/packages/Microsoft.Azure.Batch.FileStaging/9.0.0) | | GitHub [9.0.0](https://github.com/Azure/azure-sdk-for-net/tree/mgmt-legacy/sdk/batch/Microsoft.Azure.Batch.FileStaging) |
| Commerce Usage Aggregates | NuGet [1.5.3](https://www.nuget.org/packages/Microsoft.Azure.Commerce.UsageAggregates/1.5.3) | | |
| 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) | | |
@@ -442,7 +442,7 @@
| Cosmos DB - BulkExecutor | NuGet [2.5.1-preview](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.BulkExecutor/2.5.1-preview) | | GitHub [2.5.1-preview](https://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started) |
| Cosmos DB - Direct | NuGet [3.34.4](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.34.4) | | GitHub [3.34.4](https://github.com/Azure/azure-cosmos-dotnet-v3) |
| Cosmos DB - Encryption | NuGet [2.0.3](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/2.0.3)
NuGet [2.1.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/2.1.0-preview4) | | GitHub [2.0.3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/encryption/1.0.0-preview4/Microsoft.Azure.Cosmos.Encryption) |
-| Cosmos DB - Encryption | NuGet [1.0.0-preview06](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption.Custom/1.0.0-preview06) | | |
+| Cosmos DB - Encryption | NuGet [1.0.0-preview07](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption.Custom/1.0.0-preview07) | | |
| Extensions - Caching Cosmos | NuGet [1.6.1](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Cosmos/1.6.1) | | GitHub [1.6.1](https://github.com/Azure/Microsoft.Extensions.Caching.Cosmos/tree/v1.0.0-preview4) |
| Functions - Extensions | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Extensions/1.1.0) | | GitHub [1.1.0](https://github.com/Azure/azure-functions-dotnet-extensions) |
| Functions extension for Application Insights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | |
@@ -500,9 +500,9 @@
| Microsoft.Azure.Functions.Worker.Extensions.ServiceBus | NuGet [5.20.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.ServiceBus/5.20.0) | | |
| Microsoft.Azure.Functions.Worker.Extensions.SignalRService | NuGet [1.13.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.SignalRService/1.13.2) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Sql | NuGet [3.0.534](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Sql/3.0.534) | | |
-| Microsoft.Azure.Functions.Worker.Extensions.Storage | NuGet [6.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage/6.4.0) | | |
-| Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs | NuGet [6.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs/6.4.0) | | |
-| Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues/5.4.0) | | |
+| Microsoft.Azure.Functions.Worker.Extensions.Storage | NuGet [6.5.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage/6.5.0) | | |
+| Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs | NuGet [6.5.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs/6.5.0) | | |
+| Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues | NuGet [5.5.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues/5.5.0) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Storage.Tables | NuGet [1.0.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Tables/1.0.0-preview1) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Tables | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Tables/1.3.0) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Timer | NuGet [4.3.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Timer/4.3.1) | | |
@@ -542,4 +542,4 @@
| ProviderHub Controller | NuGet [0.13.0](https://www.nuget.org/packages/Microsoft.TypeSpec.ProviderHub.Controller/0.13.0) | | |
| ProviderHub Templates | NuGet [1.5.0](https://www.nuget.org/packages/Microsoft.TypeSpec.ProviderHub.Templates/1.5.0) | | |
| Template | NuGet [1.0.2-preview1](https://www.nuget.org/packages/Microsoft.Azure.Template/1.0.2-preview1) | | |
-| Test HttpRecorder | NuGet [1.13.3](https://www.nuget.org/packages/Microsoft.Azure.Test.HttpRecorder/1.13.3) | | GitHub [1.13.3](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/mgmtcommon/TestFramework/Microsoft.Azure.Test.HttpRecorder) |
+| Test HttpRecorder | NuGet [1.13.3](https://www.nuget.org/packages/Microsoft.Azure.Test.HttpRecorder/1.13.3) | | GitHub [1.13.3](https://github.com/Azure/azure-sdk-for-net/tree/mgmt-legacy/sdk/mgmtcommon/TestFramework/Microsoft.Azure.Test.HttpRecorder) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 385393b86793b..bdc90d70df6e5 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -48,7 +48,7 @@
| Health Insights Radiology Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Health.Insights.RadiologyInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Health.Insights.RadiologyInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Health.Insights.RadiologyInsights_1.0.0-beta.1/sdk/healthinsights/Azure.Health.Insights.RadiologyInsights/) |
| Identity | NuGet [1.12.0](https://www.nuget.org/packages/Azure.Identity/1.12.0) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.12.0/sdk/identity/Azure.Identity/) |
| Identity Broker | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Identity.Broker/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Identity.Broker/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Identity.Broker-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.1.0/sdk/identity/Azure.Identity.Broker/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity.Broker_1.2.0-beta.1/sdk/identity/Azure.Identity.Broker/) |
-| Image Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/vision/Azure.AI.Vision.ImageAnalysis) |
+| Image Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Vision.ImageAnalysis/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Vision.ImageAnalysis-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Vision.ImageAnalysis_1.0.0-beta.3/sdk/vision/Azure.AI.Vision.ImageAnalysis/) |
| Key Vault - Administration | NuGet [4.4.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Administration/4.4.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Administration-readme) | GitHub [4.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Administration_4.4.0/sdk/keyvault/Azure.Security.KeyVault.Administration/) |
| Key Vault - Certificates | NuGet [4.6.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Certificates/4.6.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Certificates-readme) | GitHub [4.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Certificates_4.6.0/sdk/keyvault/Azure.Security.KeyVault.Certificates/) |
| Key Vault - Keys | NuGet [4.6.0](https://www.nuget.org/packages/Azure.Security.KeyVault.Keys/4.6.0) | [docs](/dotnet/api/overview/azure/Security.KeyVault.Keys-readme) | GitHub [4.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.KeyVault.Keys_4.6.0/sdk/keyvault/Azure.Security.KeyVault.Keys/) |
@@ -96,7 +96,7 @@
| Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) |
| Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) |
| System.ClientModel | NuGet [1.0.0](https://www.nuget.org/packages/System.ClientModel/1.0.0)
NuGet [1.1.0-beta.5](https://www.nuget.org/packages/System.ClientModel/1.1.0-beta.5) | [docs](/dotnet/api/overview/azure/System.ClientModel-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.0.0/sdk/core/System.ClientModel/)
GitHub [1.1.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.1.0-beta.5/sdk/core/System.ClientModel/) |
-| Tables | NuGet [12.8.3](https://www.nuget.org/packages/Azure.Data.Tables/12.8.3) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.8.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.8.3/sdk/tables/Azure.Data.Tables/) |
+| Tables | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Data.Tables/12.9.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.9.0/sdk/tables/Azure.Data.Tables/) |
| Text Analytics | NuGet [5.3.0](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.3.0) | [docs](/dotnet/api/overview/azure/AI.TextAnalytics-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.3.0/sdk/textanalytics/Azure.AI.TextAnalytics/) |
| Text Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Text/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Text-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Text_1.0.0/sdk/translation/Azure.AI.Translation.Text/) |
| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.CallingServer/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Communication.CallingServer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallingServer_1.0.0-beta.3/sdk/communication/Azure.Communication.CallingServer/) |
diff --git a/docs/azure/sdk/protocol-convenience-methods.md b/docs/azure/sdk/protocol-convenience-methods.md
new file mode 100644
index 0000000000000..074435dad73ba
--- /dev/null
+++ b/docs/azure/sdk/protocol-convenience-methods.md
@@ -0,0 +1,132 @@
+---
+title: Understand Azure SDK client library method types
+description: Learn about the key differences between Azure SDK client library protocol and convenience methods
+ms.topic: conceptual
+ms.custom: devx-track-dotnet, engagement-fy23, devx-track-arm-template
+ms.date: 06/24/2024
+---
+
+# Azure SDK for .NET protocol and convenience methods overview
+
+The Azure SDK client libraries provide an interface to Azure services by translating method calls into messages sent via the respective service protocol. For REST API services, this means sending HTTP requests and converting the responses into runtime types. In this article, you'll learn about the different types of methods exposed by the client libraries and explore their implementation patterns.
+
+## Understand protocol and convenience methods
+
+An Azure SDK for .NET client library can expose two different categories of methods to make requests to an Azure service:
+
+- **Protocol methods** provide a thin wrapper around the underlying REST API for a corresponding Azure service. These methods map primitive input parameters to HTTP request values and return a raw HTTP response object.
+
+- **Convenience methods** provide a convenience layer over the lower-level protocol layer to add support for the .NET type system and other benefits. Convenience methods accept primitives or .NET model types as parameters and map them to the body of an underlying REST API request. These methods also handle various details of request and response management to allow developers to focus on sending and receiving data objects, instead of lower-level concerns.
+
+### Azure SDK client library dependency patterns
+
+Protocol and convenience methods implement slightly different patterns based on the underlying package dependency chain of the respective library. An Azure SDK for .NET client library depends on one of two different foundational libraries:
+
+- [**Azure.Core**](/dotnet/api/overview/azure/core-readme) provides shared primitives, abstractions, and helpers for building modern Azure SDK client libraries. These libraries follow the [Azure SDK Design Guidelines for .NET](https://azure.github.io/azure-sdk/dotnet_introduction.html) and use package names and namespaces prefixed with *Azure*, such as [`Azure.Storage.Blobs`](/dotnet/api/overview/azure/storage.blobs-readme).
+
+- [**System.ClientModel**](/dotnet/api/overview/azure/system.clientmodel-readme) is a core library that provides shared primitives, abstractions, and helpers for .NET service client libraries. The `System.ClientModel` library is a general purpose toolset designed to help build libraries for a variety of platforms and services, whereas the `Azure.Core` library is specifically designed for building Azure client libraries.
+
+> [!NOTE]
+> The `Azure.Core` library itself also depends on `System.ClientModel` for various client building blocks. In the context of this article, the key differentiator for method patterns is whether a client library depends on `Azure.Core` or `System.ClientModel` directly, rather than through a transitive dependency.
+
+The following table compares some of the request and response types used by protocol and convenience methods, based on whether the library depends on `Azure.Core` or `System.ClientModel`:
+
+|Request or response concern |Azure.Core | System.ClientModel |
+|---------|---------|---------|
+|Request body | [`RequestContent`](/dotnet/api/azure.core.requestcontent) | [`BinaryContent`](/dotnet/api/system.clientmodel.binarycontent) |
+|Advanced options | [`RequestContext`](/dotnet/api/azure.requestcontext) | [`RequestOptions`](/dotnet/api/system.clientmodel.primitives.requestoptions) |
+|Raw HTTP Response | [`Response`](/dotnet/api/azure.response) | [`PipelineResponse`](/dotnet/api/system.clientmodel.primitives.pipelineresponse) |
+|Return type with output model | [`Response`](/dotnet/api/azure.response-1) | [`ClientResult`](/dotnet/api/system.clientmodel.clientresult-1) |
+
+The sections ahead provide implementation examples of these concepts.
+
+## Protocol and convenience method examples
+
+The coding patterns and types used by client library protocol and convenience methods vary slightly based on whether the library depends on `Azure.Core` or `System.ClientModel`. The differences primarily influence the .NET types used for handling request and response data.
+
+### Libraries that depend on Azure.Core
+
+Azure SDK client libraries adhering to the [latest design guidelines](https://azure.github.io/azure-sdk/general_introduction.html) depend on the `Azure.Core` library. For example, the [`Azure.AI.ContentSafety`](/dotnet/api/overview/azure/ai.contentsafety-readme) library depends on the `Azure.Core` library and provides a `ContentSafetyClient` class that exposes both protocol and convenience methods.
+
+### [Convenience method](#tab/convenience-methods)
+
+The following code uses a `ContentSafetyClient` to call the `AnalyzeText` convenience method:
+
+:::code source="snippets/protocol-convenience-methods/AzureCoreConvenience/Program.cs" highlight="10":::
+
+The preceding code demonstrates the following `Azure.Core` convenience method patterns:
+
+- Uses a standard C# primitive or model type as a parameter.
+- Returns a friendly C# type that represents the result of the operation.
+
+### [Protocol method](#tab/protocol-methods)
+
+The following code uses a `ContentSafetyClient` to call the `AnalyzeText` protocol method:
+
+:::code source="snippets/protocol-convenience-methods/AzureCoreProtocol/Program.cs" highlight="18-23":::
+
+The preceding code demonstrates the following protocol method patterns:
+
+- Uses the `RequestContent` type to supply data for the request body.
+- Uses the `RequestContext` type to configure request options.
+- Returns data using the `Response` type.
+- Reads `response.Content` to access the response data.
+
+> [!NOTE]
+> The preceding code configures the `ClientErrorBehaviors.NoThrow` for the `RequestOptions`. This option prevents non-success service responses status codes from throwing an exception, which means the app code should manually handle the response status code checks.
+
+---
+
+### Libraries that depend on System.ClientModel
+
+Some client libraries that connect to non-Azure services use patterns similar to the libraries that depend on `Azure.Core`. For example, the [`OpenAI`](https://www.nuget.org/packages/OpenAI/2.0.0-beta.7) library provides a client that connects to the OpenAI services. These libraries are based on a library called `System.ClientModel` that has patterns similar to `Azure.Core`.
+
+### [Convenience method](#tab/convenience-methods)
+
+Consider the following code that uses a `ChatClient` to call the `CompleteChat` convenience method:
+
+:::code source="snippets/protocol-convenience-methods/SCMConvenience/Program.cs" highlight="10,11":::
+
+The preceding code demonstrates the following `System.ClientModel` convenience method patterns:
+
+- Uses a standard C# primitive or model type as a parameter.
+- Returns a `ClientResult` type that represents the result of the operation.
+
+### [Protocol method](#tab/protocol-methods)
+
+The following code uses a `ChatClient` to call the `CompleteChat` protocol method:
+
+:::code source="snippets/protocol-convenience-methods/SCMProtocol/Program.cs" highlight="26-31":::
+
+The preceding code demonstrates the following `System.ClientModel` protocol method patterns:
+
+- Uses the `BinaryContent` type as a parameter to supply data for the request body.
+- Uses the `RequestContext` type to configure request options.
+- Returns data using the `ClientResult` type.
+- Calls the `GetRawResponse` method to access the response data.
+
+> [!NOTE]
+> The preceding code configures the [ClientErrorBehaviors.NoThrow](/dotnet/api/system.clientmodel.primitives.clienterrorbehaviors) behavior for the `RequestOptions`. This option prevents non-success service responses status codes from throwing an exception, which means the app code should manually handle the response status code checks.
+
+---
+
+## Protocol and convenience method usage guidance
+
+Although the Azure SDK for .NET client libraries provide the option to use either protocol or convenience methods, prioritize using convenience methods in most scenarios. Convenience methods are designed to improve the development experience and provide flexibility for authoring requests and handling responses. However, both method types can be used in your app as needed. Consider the following criteria when deciding which type of method to use:
+
+Convenience methods:
+
+- Enable you to work with more friendly method parameter and response types.
+- Handle various low-level concerns and optimizations for you.
+
+Protocol methods:
+
+- Provide access to lower-level types, such as `RequestContext` and `RequestOptions`, which aren't available through convenience methods.
+- Enable access to features of the underlying REST APIs that convenience methods don't expose.
+- Enable you to create your own convenience methods around service endpoints that don't already have convenience methods. This approach requires understanding the service's REST API documentation to handle requests and responses correctly.
+
+## See also
+
+- [Understanding the Azure Core library for .NET](https://devblogs.microsoft.com/azure-sdk/understanding-the-azure-core-library-for-net/)
+- [Azure.Core library for .NET](/dotnet/api/overview/azure/core-readme)
+- [System.ClientModel library for .NET](/dotnet/api/overview/azure/system.clientmodel-readme)
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience/AzureCoreConvenience.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience/AzureCoreConvenience.csproj
new file mode 100644
index 0000000000000..be600e9eafe69
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience/AzureCoreConvenience.csproj
@@ -0,0 +1,15 @@
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience/Program.cs
new file mode 100644
index 0000000000000..75b9a7e7e6c15
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreConvenience/Program.cs
@@ -0,0 +1,16 @@
+using Azure.AI.ContentSafety;
+using Azure.Identity;
+
+// Create the client
+ContentSafetyClient safetyClient = new(
+ new Uri("https://contentsafetyai.cognitiveservices.azure.com/"),
+ new DefaultAzureCredential());
+
+// Call the convenience method
+AnalyzeTextResult result = safetyClient.AnalyzeText("What is Microsoft Azure?");
+
+// Display the results
+foreach (TextCategoriesAnalysis item in result.CategoriesAnalysis)
+{
+ Console.WriteLine($"{item.Category}: {item.Severity}");
+}
\ No newline at end of file
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol/AzureCoreProtocol.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol/AzureCoreProtocol.csproj
new file mode 100644
index 0000000000000..be600e9eafe69
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol/AzureCoreProtocol.csproj
@@ -0,0 +1,15 @@
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol/Program.cs
new file mode 100644
index 0000000000000..d857985031f90
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/AzureCoreProtocol/Program.cs
@@ -0,0 +1,33 @@
+using Azure;
+using Azure.AI.ContentSafety;
+using Azure.Core;
+using Azure.Identity;
+
+// Create the client
+ContentSafetyClient safetyClient = new(
+ new Uri("https://contentsafetyai.cognitiveservices.azure.com/"),
+ new DefaultAzureCredential());
+
+// Create the prompt
+RequestContent prompt = RequestContent.Create(new
+{
+ text = "What is Microsoft Azure?",
+});
+
+// Call the protocol method
+Response response = safetyClient.AnalyzeText(
+ prompt,
+ new RequestContext()
+ {
+ ErrorOptions = ErrorOptions.NoThrow
+ });
+
+// Any non-200 response code from Azure AI Content Safety AnalyzeText REST API isn't considered a success response.
+// See REST API details at https://azure-ai-content-safety-api-docs.developer.azure-api.net/api-details#api=content-safety-service-2023-10-01&operation=TextOperations_AnalyzeText
+if (response.Status != 200)
+{
+ throw new RequestFailedException(response);
+}
+
+// Display the results
+Console.WriteLine(response.Content);
\ No newline at end of file
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience/Program.cs
new file mode 100644
index 0000000000000..596a8c9d4b953
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience/Program.cs
@@ -0,0 +1,14 @@
+using OpenAI;
+using OpenAI.Chat;
+using System.ClientModel;
+
+// Create the client
+OpenAIClient client = new("");
+ChatClient chatClient = client.GetChatClient("gpt-4");
+
+// Call the convenience method
+ChatCompletion completion
+ = chatClient.CompleteChat("What is Microsoft Azure?");
+
+// Display the results
+Console.WriteLine($"{completion.Role}: {completion.Content}");
\ No newline at end of file
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience/SCMConvenience.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience/SCMConvenience.csproj
new file mode 100644
index 0000000000000..dfa0e53953394
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMConvenience/SCMConvenience.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol/Program.cs b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol/Program.cs
new file mode 100644
index 0000000000000..88d89803729b3
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol/Program.cs
@@ -0,0 +1,51 @@
+using OpenAI;
+using OpenAI.Chat;
+using System.ClientModel;
+using System.ClientModel.Primitives;
+using System.Text.Json;
+
+// Create the client
+OpenAIClient client = new("");
+ChatClient chatClient = client.GetChatClient("gpt-4");
+
+// Create the request content
+BinaryData input = BinaryData.FromBytes("""
+ {
+ "model": "gpt-4o",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is Microsoft Azure?."
+ }
+ ]
+ }
+ """u8.ToArray());
+using BinaryContent content = BinaryContent.Create(input);
+
+// Call the protocol method
+ClientResult result = chatClient.CompleteChat(
+ content,
+ new RequestOptions()
+ {
+ ErrorOptions = ClientErrorBehaviors.NoThrow
+ });
+
+PipelineResponse response = result.GetRawResponse();
+
+// Any non-200 response code from CompleteChat endpoint isn't considered a success response.
+if (response.Status != 200)
+{
+ throw new ClientResultException(response);
+}
+
+// Display the results
+BinaryData output = result.GetRawResponse().Content;
+
+using JsonDocument outputAsJson = JsonDocument.Parse(output);
+string message = outputAsJson.RootElement
+ .GetProperty("choices"u8)[0]
+ .GetProperty("message"u8)
+ .GetProperty("content"u8)
+ .GetString();
+
+Console.WriteLine(message);
\ No newline at end of file
diff --git a/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol/SCMProtocol.csproj b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol/SCMProtocol.csproj
new file mode 100644
index 0000000000000..dfa0e53953394
--- /dev/null
+++ b/docs/azure/sdk/snippets/protocol-convenience-methods/SCMProtocol/SCMProtocol.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md b/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md
index 1fc7b5d692937..64d807b4ae696 100644
--- a/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md
+++ b/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md
@@ -9,7 +9,7 @@ In previous versions, when a override, the host continues to run, and no message is logged.
+In previous .NET versions, when an exception is thrown from a override, the exception is lost and the service appears unresponsive. The host continues to run, and no message is logged.
Starting in .NET 6, when an exception is thrown from a override, the exception is logged to the current . By default, the host is stopped when an unhandled exception is encountered.
diff --git a/docs/core/docker/container-images.md b/docs/core/docker/container-images.md
index 74e18ba5cf937..6b941fd3112c7 100644
--- a/docs/core/docker/container-images.md
+++ b/docs/core/docker/container-images.md
@@ -91,38 +91,36 @@ All of the official Microsoft images for .NET are published to the [microsoft-do
_.NET stable image repositories:_
-| Image repository | Image |
-|--|--|
-| [aspnet](https://hub.docker.com/_/microsoft-dotnet-aspnet) | `mcr.microsoft.com/dotnet/aspnet` |
-| [monitor](https://hub.docker.com/_/microsoft-dotnet-monitor) | `mcr.microsoft.com/dotnet/monitor` |
-| [monitor-base](https://hub.docker.com/_/microsoft-dotnet-monitor-base) | `mcr.microsoft.com/dotnet/monitor/base` |
+| Image repository | Image |
+|------------------------------------------------------------------------|-----------------------------------------|
+| [aspnet](https://hub.docker.com/_/microsoft-dotnet-aspnet) | `mcr.microsoft.com/dotnet/aspnet` |
+| [monitor](https://hub.docker.com/_/microsoft-dotnet-monitor) | `mcr.microsoft.com/dotnet/monitor` |
| [runtime-deps](https://hub.docker.com/_/microsoft-dotnet-runtime-deps) | `mcr.microsoft.com/dotnet/runtime-deps` |
-| [runtime](https://hub.docker.com/_/microsoft-dotnet-runtime) | `mcr.microsoft.com/dotnet/runtime` |
-| [samples](https://hub.docker.com/_/microsoft-dotnet-samples) | `mcr.microsoft.com/dotnet/samples` |
-| [sdk](https://hub.docker.com/_/microsoft-dotnet-sdk) | `mcr.microsoft.com/dotnet/sdk` |
+| [runtime](https://hub.docker.com/_/microsoft-dotnet-runtime) | `mcr.microsoft.com/dotnet/runtime` |
+| [samples](https://hub.docker.com/_/microsoft-dotnet-samples) | `mcr.microsoft.com/dotnet/samples` |
+| [sdk](https://hub.docker.com/_/microsoft-dotnet-sdk) | `mcr.microsoft.com/dotnet/sdk` |
_.NET nightly image repositories:_
-| Image repository | Image |
-|--|--|
-| [nightly](https://hub.docker.com/_/microsoft-dotnet-nightly) | `mcr.microsoft.com/dotnet/nightly` |
-| [nightly-aspnet](https://hub.docker.com/_/microsoft-dotnet-nightly-aspnet) | `mcr.microsoft.com/dotnet/nightly/aspnet` |
-| [nightly-monitor-base](https://hub.docker.com/_/microsoft-dotnet-nightly-monitor-base) | `mcr.microsoft.com/dotnet/nightly/monitor/base` |
+| Image repository | Image |
+|------------------------------------------------------------------------------|--------------------------------------------|
+| [nightly](https://hub.docker.com/_/microsoft-dotnet-nightly) | `mcr.microsoft.com/dotnet/nightly` |
+| [nightly-aspnet](https://hub.docker.com/_/microsoft-dotnet-nightly-aspnet) | `mcr.microsoft.com/dotnet/nightly/aspnet` |
| [nightly-monitor](https://hub.docker.com/_/microsoft-dotnet-nightly-monitor) | `mcr.microsoft.com/dotnet/nightly/monitor` |
| [nightly-runtime-deps](https://hub.docker.com/_/microsoft-dotnet-nightly-runtime-deps) | `mcr.microsoft.com/dotnet/nightly/runtime-deps` |
| [nightly-runtime](https://hub.docker.com/_/microsoft-dotnet-nightly-runtime) | `mcr.microsoft.com/dotnet/nightly/runtime` |
-| [nightly-sdk](https://hub.docker.com/_/microsoft-dotnet-nightly-sdk) | `mcr.microsoft.com/dotnet/nightly/sdk` |
+| [nightly-sdk](https://hub.docker.com/_/microsoft-dotnet-nightly-sdk) | `mcr.microsoft.com/dotnet/nightly/sdk` |
_.NET Framework image repositories:_
-| Image repository | Image |
-|--|--|
-| [framework](https://hub.docker.com/_/microsoft-dotnet-framework) | `mcr.microsoft.com/dotnet/framework` |
-| [framework-aspnet](https://hub.docker.com/_/microsoft-dotnet-framework-aspnet) | `mcr.microsoft.com/dotnet/framework/aspnet` |
+| Image repository | Image |
+|----------------------------------------------------------------------------------|----------------------------------------------|
+| [framework](https://hub.docker.com/_/microsoft-dotnet-framework) | `mcr.microsoft.com/dotnet/framework` |
+| [framework-aspnet](https://hub.docker.com/_/microsoft-dotnet-framework-aspnet) | `mcr.microsoft.com/dotnet/framework/aspnet` |
| [framework-runtime](https://hub.docker.com/_/microsoft-dotnet-framework-runtime) | `mcr.microsoft.com/dotnet/framework/runtime` |
| [framework-samples](https://hub.docker.com/_/microsoft-dotnet-framework-samples) | `mcr.microsoft.com/dotnet/framework/samples` |
-| [framework-sdk](https://hub.docker.com/_/microsoft-dotnet-framework-sdk) | `mcr.microsoft.com/dotnet/framework/sdk` |
-| [framework-wcf](https://hub.docker.com/_/microsoft-dotnet-framework-wcf) | `mcr.microsoft.com/dotnet/framework/wcf` |
+| [framework-sdk](https://hub.docker.com/_/microsoft-dotnet-framework-sdk) | `mcr.microsoft.com/dotnet/framework/sdk` |
+| [framework-wcf](https://hub.docker.com/_/microsoft-dotnet-framework-wcf) | `mcr.microsoft.com/dotnet/framework/wcf` |
## See also
diff --git a/docs/core/install/includes/package-manager-failed-to-find-deb-new.md b/docs/core/install/includes/package-manager-failed-to-find-deb-new.md
index 591171a38a55e..31ebbdeb409bf 100644
--- a/docs/core/install/includes/package-manager-failed-to-find-deb-new.md
+++ b/docs/core/install/includes/package-manager-failed-to-find-deb-new.md
@@ -7,7 +7,7 @@ ms.custom: linux-related-content
---
```bash
-# Define the OS version, name, and codename
+# Get OS version info which adds the $ID and $VERSION_ID variables
source /etc/os-release
# Download the Microsoft keys
diff --git a/docs/core/install/linux-ubuntu.md b/docs/core/install/linux-ubuntu.md
index 3953e1c4053ba..71c8391eb5a61 100644
--- a/docs/core/install/linux-ubuntu.md
+++ b/docs/core/install/linux-ubuntu.md
@@ -192,7 +192,7 @@ Preview releases are **not** available in the Microsoft package repository. For
[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)]
```bash
-# Get OS version info
+# Get OS version info which adds the $ID and $VERSION_ID variables
source /etc/os-release
# Download Microsoft signing key and repository
diff --git a/docs/core/install/media/install-sdk/windows-install-visual-studio-2019.png b/docs/core/install/media/install-sdk/windows-install-visual-studio-2019.png
deleted file mode 100644
index a9b624ea1445b..0000000000000
Binary files a/docs/core/install/media/install-sdk/windows-install-visual-studio-2019.png and /dev/null differ
diff --git a/docs/core/porting/index.md b/docs/core/porting/index.md
index 4f812db40037c..f677586529c31 100644
--- a/docs/core/porting/index.md
+++ b/docs/core/porting/index.md
@@ -2,13 +2,13 @@
title: Port from .NET Framework to .NET 7
description: Understand the porting process and discover tools you might find helpful when porting a .NET Framework project to .NET 7.
author: adegeo
-ms.date: 02/28/2023
-ms.custom: devdivchpfy22
+ms.date: 07/23/2024
+ms.custom: devdivchpfy22, updateeachrelease
no-loc: ["package.config", PackageReference]
---
# Overview of porting from .NET Framework to .NET
-This article provides an overview of what you should consider when porting your code from .NET Framework to .NET (formerly named .NET Core). Porting to .NET from .NET Framework for many projects is relatively straightforward. The complexity of your projects dictates how much work you'll do after the initial migration of the project files.
+This article provides an overview of what you should consider when porting your code from .NET Framework to .NET (formerly named .NET Core). Porting to .NET from .NET Framework is relatively straightforward for many projects. The complexity of your projects dictates how much work you'll need to do after the initial migration of the project files.
Projects where the app model is available in .NET, such as libraries, console apps, and desktop apps, usually require little change. Projects that require a new app model, such as moving to [ASP.NET Core from ASP.NET](/aspnet/core/migration/proper-to-2x/), require more work. Many patterns from the old app model have equivalents that can be used during the conversion.
@@ -161,9 +161,9 @@ When porting your application to .NET, consider the following suggestions in ord
✔️ DO retarget your .NET Framework project to at least .NET Framework 4.7.2. This ensures the availability of the latest API alternatives for cases where .NET Standard doesn't support existing APIs.
-✔️ CONSIDER targeting .NET 6, which is a long-term support (LTS) release.
+✔️ CONSIDER targeting .NET 8, which is a long-term support (LTS) release.
-✔️ DO target .NET 6+ for **Windows Forms and WPF** projects. .NET 6 contains many improvements for Desktop apps.
+✔️ DO target .NET 6+ for **Windows Forms and WPF** projects. .NET 6 and later versions contain many improvements for Desktop apps.
✔️ CONSIDER targeting .NET Standard 2.0 if you're migrating a library that might also be used with .NET Framework projects. You can also multitarget your library, targeting both .NET Framework and .NET Standard.
diff --git a/docs/csharp/language-reference/xmldoc/recommended-tags.md b/docs/csharp/language-reference/xmldoc/recommended-tags.md
index 7781f76ded0ba..16c166d6a2a4f 100644
--- a/docs/csharp/language-reference/xmldoc/recommended-tags.md
+++ b/docs/csharp/language-reference/xmldoc/recommended-tags.md
@@ -256,7 +256,17 @@ The `` tag is for use inside a tag, such as [\](#summary), [\
```
-The `` block is used to define the heading row of either a table or definition list. When defining a table, you only need to supply an entry for `term` in the heading. Each item in the list is specified with an `- ` block. When creating a definition list, you'll need to specify both `term` and `description`. However, for a table, bulleted list, or numbered list, you only need to supply an entry for `description`. A list or table can have as many `
- ` blocks as needed.
+The `` block is used to define the heading row of either a table or definition list.
+
+When defining a table:
+* You only need to supply an entry for `term` in the heading.
+* Each item in the list is specified with an `
- ` block. For each `item`, you will only need to supply an entry for `description`.
+
+When creating a definition list:
+* You must supply an entry for `term` in the heading.
+* Each item in the list is specified with an `
- ` block. Each `item` must contain both a `term` and `description`.
+
+A list or table can have as many `
- ` blocks as needed.
### \
diff --git a/docs/csharp/linq/standard-query-operators/snippets/standard-query-operators/LeftOuterJoins.cs b/docs/csharp/linq/standard-query-operators/snippets/standard-query-operators/LeftOuterJoins.cs
index f731433a071ab..707b9d43d87a1 100644
--- a/docs/csharp/linq/standard-query-operators/snippets/standard-query-operators/LeftOuterJoins.cs
+++ b/docs/csharp/linq/standard-query-operators/snippets/standard-query-operators/LeftOuterJoins.cs
@@ -38,7 +38,7 @@ private static void LeftOuterJoinMethodSyntax()
//
var query = students.GroupJoin(departments, student => student.DepartmentID, department => department.ID,
(student, departmentList) => new { student, subgroup = departmentList.AsQueryable() })
- .SelectMany(joinedSet => joinedSet.subgroup, (student, department) => new
+ .SelectMany(joinedSet => joinedSet.subgroup.DefaultIfEmpty(), (student, department) => new
{
student.student.FirstName,
student.student.LastName,
diff --git a/docs/navigate/tools-diagnostics/toc.yml b/docs/navigate/tools-diagnostics/toc.yml
index 89d2141dd6b96..2b688ecb761e0 100644
--- a/docs/navigate/tools-diagnostics/toc.yml
+++ b/docs/navigate/tools-diagnostics/toc.yml
@@ -180,6 +180,16 @@ items:
href: ../../core/tools/dotnet-nuget-sign.md
- name: dotnet nuget why
href: ../../core/tools/dotnet-nuget-why.md
+ - name: dotnet nuget config
+ items:
+ - name: dotnet nuget config get
+ href: ../../core/tools/dotnet-nuget-config-get.md
+ - name: dotnet nuget config set
+ href: ../../core/tools/dotnet-nuget-config-set.md
+ - name: dotnet nuget config unset
+ href: ../../core/tools/dotnet-nuget-config-unset.md
+ - name: dotnet nuget config paths
+ href: ../../core/tools/dotnet-nuget-config-paths.md
- name: dotnet pack
href: ../../core/tools/dotnet-pack.md
- name: dotnet package search
diff --git a/docs/standard/serialization/system-text-json/configure-options.md b/docs/standard/serialization/system-text-json/configure-options.md
index b6699ba169f21..2b60ab4255db1 100644
--- a/docs/standard/serialization/system-text-json/configure-options.md
+++ b/docs/standard/serialization/system-text-json/configure-options.md
@@ -59,7 +59,7 @@ The metadata cache of the existing `JsonSerializerOptions` instance isn't copied
The following options have different defaults for web apps:
* = `true`
-* =
+* =
* =
In .NET 9 and later versions, you can use the `JsonSerializerOptions.Web` singleton to serialize with the default options that ASP.NET Core uses for web apps. In earlier versions, call the [JsonSerializerOptions constructor](xref:System.Text.Json.JsonSerializerOptions.%23ctor(System.Text.Json.JsonSerializerDefaults)) to create a new instance with the web defaults, as shown in the following example:
diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs
index 09f816c6a5232..968839a06cea7 100644
--- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs
+++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/csharp/HttpClientExtensionMethods.cs
@@ -39,5 +39,5 @@ public static async Task Main()
//Id: 1
//Name: Tyler King
//Username: Tyler
-//Email: Tyler @contoso.com
+//Email: Tyler@contoso.com
//Success - Created
diff --git a/docs/standard/serialization/system-text-json/snippets/how-to-contd/vb/HttpClientExtensionMethods.vb b/docs/standard/serialization/system-text-json/snippets/how-to-contd/vb/HttpClientExtensionMethods.vb
index 5893fa50eb46e..57fba1071493a 100644
--- a/docs/standard/serialization/system-text-json/snippets/how-to-contd/vb/HttpClientExtensionMethods.vb
+++ b/docs/standard/serialization/system-text-json/snippets/how-to-contd/vb/HttpClientExtensionMethods.vb
@@ -40,5 +40,5 @@ End Namespace
'Id: 1
'Name: Tyler King
'Username: Tyler
-'Email: Tyler @contoso.com
+'Email: Tyler@contoso.com
'Success - Created
diff --git a/quest-config.json b/quest-config.json
index b0feb9ceab52e..fd69e1ef1ae26 100644
--- a/quest-config.json
+++ b/quest-config.json
@@ -20,7 +20,7 @@
"ParentNodeId": 233465
},
{
- "Label": "okr-health",
+ "Label": "okr-quality",
"ParentNodeId": 237266
},
{
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compare1.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compare1.vb
deleted file mode 100644
index 3eb51865c9dc2..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compare1.vb
+++ /dev/null
@@ -1,102 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Diagnostics
-Imports System.IO
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim pattern As String = "\b(\w+((\r?\n)|,?\s))*\w+[.?:;!]"
- Dim sw As Stopwatch
- Dim match As Match
- Dim ctr As Integer
-
- Dim inFile As New StreamReader(".\Dreiser_TheFinancier.txt")
- Dim input As String = inFile.ReadToEnd()
- inFile.Close()
-
- ' Read first ten sentences with interpreted regex.
- Console.WriteLine("10 Sentences with Interpreted Regex:")
- sw = Stopwatch.StartNew()
- Dim int10 As New Regex(pattern, RegexOptions.SingleLine)
- match = int10.Match(input)
- For ctr = 0 To 9
- If match.Success Then
- ' Do nothing with the match except get the next match.
- match = match.NextMatch()
- Else
- Exit For
- End If
- Next
- sw.Stop()
- Console.WriteLine(" {0} matches in {1}", ctr, sw.Elapsed)
-
- ' Read first ten sentences with compiled regex.
- Console.WriteLine("10 Sentences with Compiled Regex:")
- sw = Stopwatch.StartNew()
- Dim comp10 As New Regex(pattern,
- RegexOptions.SingleLine Or RegexOptions.Compiled)
- match = comp10.Match(input)
- For ctr = 0 To 9
- If match.Success Then
- ' Do nothing with the match except get the next match.
- match = match.NextMatch()
- Else
- Exit For
- End If
- Next
- sw.Stop()
- Console.WriteLine(" {0} matches in {1}", ctr, sw.Elapsed)
-
- ' Read all sentences with interpreted regex.
- Console.WriteLine("All Sentences with Interpreted Regex:")
- sw = Stopwatch.StartNew()
- Dim intAll As New Regex(pattern, RegexOptions.SingleLine)
- match = intAll.Match(input)
- Dim matches As Integer = 0
- Do While match.Success
- matches += 1
- ' Do nothing with the match except get the next match.
- match = match.NextMatch()
- Loop
- sw.Stop()
- Console.WriteLine(" {0:N0} matches in {1}", matches, sw.Elapsed)
-
- ' Read all sentences with compiled regex.
- Console.WriteLine("All Sentences with Compiled Regex:")
- sw = Stopwatch.StartNew()
- Dim compAll As New Regex(pattern,
- RegexOptions.SingleLine Or RegexOptions.Compiled)
- match = compAll.Match(input)
- matches = 0
- Do While match.Success
- matches += 1
- ' Do nothing with the match except get the next match.
- match = match.NextMatch()
- Loop
- sw.Stop()
- Console.WriteLine(" {0:N0} matches in {1}", matches, sw.Elapsed)
- End Sub
-End Module
-' The example displays output like the following:
-' 10 Sentences with Interpreted Regex:
-' 10 matches in 00:00:00.0047491
-' 10 Sentences with Compiled Regex:
-' 10 matches in 00:00:00.0141872
-' All Sentences with Interpreted Regex:
-' 13,443 matches in 00:00:01.1929928
-' All Sentences with Compiled Regex:
-' 13,443 matches in 00:00:00.7635869
-'
-' >compare1
-' 10 Sentences with Interpreted Regex:
-' 10 matches in 00:00:00.0046914
-' 10 Sentences with Compiled Regex:
-' 10 matches in 00:00:00.0143727
-' All Sentences with Interpreted Regex:
-' 13,443 matches in 00:00:01.1514100
-' All Sentences with Compiled Regex:
-' 13,443 matches in 00:00:00.7432921
-'
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compile1.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compile1.vb
deleted file mode 100644
index fe943c3dd1995..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compile1.vb
+++ /dev/null
@@ -1,20 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.Reflection
-Imports System.Text.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim SentencePattern As New RegexCompilationInfo("\b(\w+((\r?\n)|,?\s))*\w+[.?:;!]",
- RegexOptions.Multiline,
- "SentencePattern",
- "Utilities.RegularExpressions",
- True)
- Dim regexes() As RegexCompilationInfo = {SentencePattern}
- Dim assemName As New AssemblyName("RegexLib, Version=1.0.0.1001, Culture=neutral, PublicKeyToken=null")
- Regex.CompileToAssembly(regexes, assemName)
- End Sub
-End Module
-'
diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compile2.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compile2.vb
deleted file mode 100644
index dc9a3ace1bcdb..0000000000000
--- a/samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.bestpractices/vb/compile2.vb
+++ /dev/null
@@ -1,31 +0,0 @@
-' Visual Basic .NET Document
-Option Strict On
-
-'
-Imports System.IO
-Imports System.Text.RegularExpressions
-Imports Utilities.RegularExpressions
-
-Module Example
- Public Sub Main()
- Dim pattern As New SentencePattern()
- Dim inFile As New StreamReader(".\Dreiser_TheFinancier.txt")
- Dim input As String = inFile.ReadToEnd()
- inFile.Close()
-
- Dim matches As MatchCollection = pattern.Matches(input)
- Console.WriteLine("Found {0:N0} sentences.", matches.Count)
- End Sub
-End Module
-' The example displays the following output:
-' Found 13,443 sentences.
-'
-
-' This code is here so that Parsnip will compile the example.
-Namespace Utilities.RegularExpressions
- Public Class SentencePattern
- Public Function Matches(input As String) As MatchCollection
- return Nothing
- End Function
- End Class
-End Namespace