From 1419af783e0b1c05e4ce0b80c4d44bc7712bc034 Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Thu, 6 Nov 2025 14:23:25 -0800 Subject: [PATCH 1/3] Add information about how the clipboard/dataobject changes in .NET 10 (#2129) * Update base copilot instructions * Create project folder with supporting materials * Generate a plan as an instructions file based on the supporting information and the desire to upgrade clipboard code * Phase 1 article: Initial * Phase 1 article: Expand plan in the sections * Phase 1 article: Query LLM about best way to communicate; move to HTML comments * Phase 1 article: Intro/Prereqs first draft * Phase 1 article: Intro/Prereqs final draft (3 iterations) * Add additional resource to instructions * Phase 1 article: Breaking changes section * Move plan file * Phase 1 article: Add summary section * Phase 1 article: Finish 2 more sections * Phase 1 article: Update prereqs * Phase 1 article: Remove sections I think are already covered well enough * Phase 1 article: Finish Enable BinaryFormatter support section * Phase 1 article: Custom types section * Phase 1 article: Make intro better * Phase 1: article: Copilot section * Phase 1 article: Edit pass 1 * Phase 1 article: Edit pass 2 (claude) * Phase 1 complete * Fix build errs * Phase 2.1: Complete * Add xref links * Copy code snippets to local folder * Add instruction files * Update how-to-add-data * Phase 2.2 Completed * Update instructions * Phase 2.3: Brief edit pass * Phase 2.3: Migrate snippets * More copilot updates * Phase 2.3: Final commit before build * Fix snippet ids * More instruction updates * Phase 1: Convert code to snippets * Update instructions * Phase 3.3: Complete * Fix code and move around * Fix the projects and ref * Remove temp project files * Update the RefreshLink prompt * Fix link * Fix project file * Update instructions again * Update snippets per feedback * Remove the ITypedDataObject snippet as it didn't teach anything * Add missing instruction * Inlined all the silly method writelines copilot generated * More prompt updates * Pre-upgrade commit: Save current changes before .NET 10 upgrade * Remove dupe note * temp * Add some info about SetDataObject and copy param * Clarify it applies to WPF too * Change pivot * Fix zone pivot name * try adjust zone pivot * Feedback * Rearrange clipboard subjects * Add opposite net-only include * Clean up how-to articles * Too many headers - Adjust some * Fix highlight attribute * Convert snippet instructions to prompts * Move note * Fix highlight --- .github/copilot-instructions.md | 109 +++-- .../Markdown.WritingStyle.instructions.md | 83 ++++ .../projects/article-templates/doc-guide.yml | 14 + .../projects/article-templates/doc-toc.yml | 14 + .../article-templates/general-troubleshoot.md | 143 +++++++ .../global-demonstration-template | 172 ++++++++ .../guide-deployment-guide.yml | 47 +++ .../article-templates/guide-planning.yml | 25 ++ .../guide-upgrade-and-migration.yml | 47 +++ .../article-templates/guide-waf-workloads.yml | 31 ++ .../article-templates/known-issues.md | 93 +++++ .../article-templates/problem-resolution.md | 160 ++++++++ .../template-best-practices.md | 93 +++++ .../template-bicep-quickstart.md | 249 ++++++++++++ .../article-templates/template-checklist.md | 78 ++++ .../article-templates/template-concept.md | 102 +++++ .../article-templates/template-error-codes.md | 69 ++++ .../template-feature-description.md | 142 +++++++ .../template-get-started-guide.yml | 17 + .../article-templates/template-get-started.md | 131 ++++++ .../article-templates/template-glossary.md | 93 +++++ .../template-how-to-guide.md | 125 ++++++ .../template-install-setup-deploy.md | 128 ++++++ .../template-integration-guide.md | 118 ++++++ .../template-limits-and-quotas.md | 92 +++++ .../template-managed-identities.md | 176 ++++++++ .../template-move-across-regions.md | 178 ++++++++ .../article-templates/template-overview.md | 80 ++++ .../template-partner-tools.md | 96 +++++ .../template-product-comparison.md | 114 ++++++ .../template-quickstart-resource-manager.md | 152 +++++++ .../article-templates/template-quickstart.md | 188 +++++++++ .../template-release-notes.md | 128 ++++++ .../template-sdk-overview.md | 101 +++++ .../template-sdk-quickstart.md | 220 ++++++++++ .../template-solution-guide.yml | 9 + .../template-solution-overview.md | 122 ++++++ .../template-terraform-quickstart.md | 248 ++++++++++++ .../article-templates/template-tutorial.md | 199 +++++++++ .../template-upgrade-migration.md | 209 ++++++++++ .../article-templates/template-whats-new.md | 84 ++++ .github/prompts/Editing.FullPass.prompt.md | 231 +++++++++++ .github/prompts/RefreshLinks.prompt.md | 106 +++++ .github/prompts/Snippets.Migrate.prompt.md | 143 +++++++ .github/prompts/Snippets.Push.prompt.md | 123 ++++++ .github/prompts/Snippets.Upgrade.prompt.md | 110 +++++ .github/prompts/ValidateTemplate.prompt.md | 97 +++++ .gitignore | 1 - AGENTS.md | 4 + dotnet-desktop-guide/docfx.json | 3 +- .../includes/copilot-disclaimer.md | 9 + ...d-drop-operations-and-clipboard-support.md | 35 +- .../how-to-add-data-to-the-clipboard.md | 126 ++++-- ...nable-binaryformatter-clipboard-support.md | 163 ++++++++ ...how-to-retrieve-data-from-the-clipboard.md | 138 +++++-- .../framework/csharp/ClipboardOperations.cs | 169 ++++++++ .../csharp/ClipboardOperations.csproj | 9 + .../framework/vb/ClipboardOperations.vb | 193 +++++++++ .../framework/vb/ClipboardOperations.vbproj | 9 + .../net/csharp/ClipboardImageTest.Designer.cs | 130 ++++++ .../net/csharp/ClipboardImageTest.cs | 125 ++++++ .../net/csharp/ClipboardImageTest.resx | 120 ++++++ .../ClipboardMultipleFormatsTest.Designer.cs | 141 +++++++ .../csharp/ClipboardMultipleFormatsTest.cs | 125 ++++++ .../csharp/ClipboardMultipleFormatsTest.resx | 61 +++ .../net/csharp/ClipboardOperations.csproj | 35 ++ .../net/csharp/ClipboardTextTest.Designer.cs | 282 +++++++++++++ .../net/csharp/ClipboardTextTest.cs | 105 +++++ .../net/csharp/ClipboardTextTest.resx | 120 ++++++ .../csharp/FileDropClipboardTest.Designer.cs | 65 +++ .../net/csharp/FileDropClipboardTest.cs | 82 ++++ .../net/csharp/FileDropClipboardTest.resx | 120 ++++++ .../net/csharp/Form1.Designer.cs | 44 ++ .../net/csharp/Form1.cs | 140 +++++++ .../net/csharp/Form1.resx | 120 ++++++ .../net/csharp/Program.cs | 24 ++ .../csharp/Properties/Resources.Designer.cs | 63 +++ .../net/csharp/Properties/Resources.resx | 120 ++++++ .../net/csharp/image1.png | Bin 0 -> 5872 bytes .../net/csharp/image2.png | Bin 0 -> 4835 bytes .../net/vb/ClipboardOperations.vbproj | 17 + .../net/vb/Form1.Designer.vb | 31 ++ .../net/vb/Form1.vb | 167 ++++++++ .../net/vb/Program.vb | 11 + .../csharp/ClipboardUsage.cs | 42 ++ .../csharp/Form1.Designer.cs | 38 ++ .../csharp/Form1.cs | 9 + .../csharp/Program.cs | 16 + .../csharp/ProjectCS.csproj | 18 + .../csharp/SecureTypeResolver.cs | 48 +++ .../csharp/TestConfiguration.cs | 77 ++++ .../csharp/runtimeconfig.json | 7 + .../vb/ClipboardUsage.vb | 36 ++ .../vb/Form1.Designer.vb | 31 ++ .../vb/Form1.vb | 3 + .../vb/Program.vb | 11 + .../vb/ProjectVB.vbproj | 22 + .../vb/SecureTypeResolver.vb | 43 ++ .../vb/TestConfiguration.vb | 66 +++ .../vb/runtimeconfig.json | 7 + .../framework/csharp/Program.cs | 16 + .../csharp/RetrieveClipboardData.csproj | 9 + .../framework/csharp}/form1.cs | 32 +- .../framework/vb/Program.vb | 11 + .../framework/vb/RetrieveClipboardData.vbproj | 9 + .../framework}/vb/form1.vb | 33 +- .../net/csharp/MainForm.cs | 159 ++++++++ .../net/csharp/Program.cs | 18 + .../net/csharp/RetrieveClipboardData.csproj | 11 + .../net/vb/MainForm.vb | 180 +++++++++ .../net/vb/Program.vb | 14 + .../net/vb/RetrieveClipboardData.vbproj | 9 + .../winforms/advanced/toc.yml | 2 + .../winforms/includes/net-only.md | 10 + .../migration/clipboard-dataobject-net10.md | 379 ++++++++++++++++++ .../net/csharp/BinaryFormatterSupport.cs | 65 +++ .../net/csharp/CustomTypesExamples.cs | 74 ++++ .../net/csharp/Form1.Designer.cs | 58 +++ .../net/csharp/Form1.cs | 16 + .../net/csharp/Form1.resx | 120 ++++++ .../net/csharp/ITypedDataObjectExamples.cs | 35 ++ .../net/csharp/ModernApproach.cs | 35 ++ .../net/csharp/ObsoletePatterns.cs | 43 ++ .../net/csharp/PrimitiveTypesExamples.cs | 56 +++ .../net/csharp/Program.cs | 16 + .../net/csharp/SetDataAsJsonExamples.cs | 46 +++ .../net/csharp/SystemDrawingTypesExamples.cs | 31 ++ .../net/csharp/TypeResolver.cs | 57 +++ .../net/csharp/TypeSafeRetrieval.cs | 69 ++++ .../net/csharp/csharp.csproj | 11 + .../net/vb/BinaryFormatterSupport.vb | 57 +++ .../net/vb/CustomTypesExamples.vb | 64 +++ .../net/vb/Form1.Designer.vb | 31 ++ .../net/vb/Form1.vb | 3 + .../net/vb/ITypedDataObjectExamples.vb | 39 ++ .../net/vb/ModernApproach.vb | 28 ++ .../net/vb/ObsoletePatterns.vb | 37 ++ .../net/vb/PrimitiveTypesExamples.vb | 54 +++ .../net/vb/Program.vb | 11 + .../net/vb/SetDataAsJsonExamples.vb | 40 ++ .../net/vb/SystemDrawingTypesExamples.vb | 28 ++ .../net/vb/TypeResolver.vb | 55 +++ .../net/vb/TypeSafeRetrieval.vb | 78 ++++ .../net/vb/vb.vbproj | 17 + dotnet-desktop-guide/winforms/toc.yml | 4 +- dotnet-desktop-guide/zone-pivot-groups.yml | 11 + 146 files changed, 11102 insertions(+), 149 deletions(-) create mode 100644 .github/instructions/Markdown.WritingStyle.instructions.md create mode 100644 .github/projects/article-templates/doc-guide.yml create mode 100644 .github/projects/article-templates/doc-toc.yml create mode 100644 .github/projects/article-templates/general-troubleshoot.md create mode 100644 .github/projects/article-templates/global-demonstration-template create mode 100644 .github/projects/article-templates/guide-deployment-guide.yml create mode 100644 .github/projects/article-templates/guide-planning.yml create mode 100644 .github/projects/article-templates/guide-upgrade-and-migration.yml create mode 100644 .github/projects/article-templates/guide-waf-workloads.yml create mode 100644 .github/projects/article-templates/known-issues.md create mode 100644 .github/projects/article-templates/problem-resolution.md create mode 100644 .github/projects/article-templates/template-best-practices.md create mode 100644 .github/projects/article-templates/template-bicep-quickstart.md create mode 100644 .github/projects/article-templates/template-checklist.md create mode 100644 .github/projects/article-templates/template-concept.md create mode 100644 .github/projects/article-templates/template-error-codes.md create mode 100644 .github/projects/article-templates/template-feature-description.md create mode 100644 .github/projects/article-templates/template-get-started-guide.yml create mode 100644 .github/projects/article-templates/template-get-started.md create mode 100644 .github/projects/article-templates/template-glossary.md create mode 100644 .github/projects/article-templates/template-how-to-guide.md create mode 100644 .github/projects/article-templates/template-install-setup-deploy.md create mode 100644 .github/projects/article-templates/template-integration-guide.md create mode 100644 .github/projects/article-templates/template-limits-and-quotas.md create mode 100644 .github/projects/article-templates/template-managed-identities.md create mode 100644 .github/projects/article-templates/template-move-across-regions.md create mode 100644 .github/projects/article-templates/template-overview.md create mode 100644 .github/projects/article-templates/template-partner-tools.md create mode 100644 .github/projects/article-templates/template-product-comparison.md create mode 100644 .github/projects/article-templates/template-quickstart-resource-manager.md create mode 100644 .github/projects/article-templates/template-quickstart.md create mode 100644 .github/projects/article-templates/template-release-notes.md create mode 100644 .github/projects/article-templates/template-sdk-overview.md create mode 100644 .github/projects/article-templates/template-sdk-quickstart.md create mode 100644 .github/projects/article-templates/template-solution-guide.yml create mode 100644 .github/projects/article-templates/template-solution-overview.md create mode 100644 .github/projects/article-templates/template-terraform-quickstart.md create mode 100644 .github/projects/article-templates/template-tutorial.md create mode 100644 .github/projects/article-templates/template-upgrade-migration.md create mode 100644 .github/projects/article-templates/template-whats-new.md create mode 100644 .github/prompts/Editing.FullPass.prompt.md create mode 100644 .github/prompts/RefreshLinks.prompt.md create mode 100644 .github/prompts/Snippets.Migrate.prompt.md create mode 100644 .github/prompts/Snippets.Push.prompt.md create mode 100644 .github/prompts/Snippets.Upgrade.prompt.md create mode 100644 .github/prompts/ValidateTemplate.prompt.md create mode 100644 AGENTS.md create mode 100644 dotnet-desktop-guide/includes/copilot-disclaimer.md create mode 100644 dotnet-desktop-guide/winforms/advanced/how-to-enable-binaryformatter-clipboard-support.md create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/framework/csharp/ClipboardOperations.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/framework/csharp/ClipboardOperations.csproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/framework/vb/ClipboardOperations.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/framework/vb/ClipboardOperations.vbproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardImageTest.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardImageTest.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardImageTest.resx create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardMultipleFormatsTest.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardMultipleFormatsTest.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardMultipleFormatsTest.resx create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardOperations.csproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardTextTest.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardTextTest.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/ClipboardTextTest.resx create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/FileDropClipboardTest.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/FileDropClipboardTest.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/FileDropClipboardTest.resx create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/Form1.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/Form1.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/Form1.resx create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/Program.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/Properties/Resources.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/Properties/Resources.resx create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/image1.png create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/csharp/image2.png create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/vb/ClipboardOperations.vbproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/vb/Form1.Designer.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/vb/Form1.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-add-data-to-the-clipboard/net/vb/Program.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/ClipboardUsage.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/Form1.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/Form1.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/Program.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/ProjectCS.csproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/SecureTypeResolver.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/TestConfiguration.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/csharp/runtimeconfig.json create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/ClipboardUsage.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/Form1.Designer.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/Form1.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/Program.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/ProjectVB.vbproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/SecureTypeResolver.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/TestConfiguration.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-enable-binaryformatter-clipboard-support/vb/runtimeconfig.json create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/framework/csharp/Program.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/framework/csharp/RetrieveClipboardData.csproj rename dotnet-desktop-guide/{samples/snippets/csharp/VS_Snippets_Winforms/System.Windows.Forms.Clipboard/CS => winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/framework/csharp}/form1.cs (91%) create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/framework/vb/Program.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/framework/vb/RetrieveClipboardData.vbproj rename dotnet-desktop-guide/{samples/snippets/visualbasic/VS_Snippets_Winforms/System.Windows.Forms.Clipboard => winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/framework}/vb/form1.vb (92%) create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/net/csharp/MainForm.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/net/csharp/Program.cs create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/net/csharp/RetrieveClipboardData.csproj create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/net/vb/MainForm.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/net/vb/Program.vb create mode 100644 dotnet-desktop-guide/winforms/advanced/snippets/how-to-retrieve-data-from-the-clipboard/net/vb/RetrieveClipboardData.vbproj create mode 100644 dotnet-desktop-guide/winforms/includes/net-only.md create mode 100644 dotnet-desktop-guide/winforms/migration/clipboard-dataobject-net10.md create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/BinaryFormatterSupport.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/CustomTypesExamples.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/Form1.Designer.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/Form1.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/Form1.resx create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/ITypedDataObjectExamples.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/ModernApproach.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/ObsoletePatterns.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/PrimitiveTypesExamples.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/Program.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/SetDataAsJsonExamples.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/SystemDrawingTypesExamples.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/TypeResolver.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/TypeSafeRetrieval.cs create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/csharp/csharp.csproj create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/BinaryFormatterSupport.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/CustomTypesExamples.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/Form1.Designer.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/Form1.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/ITypedDataObjectExamples.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/ModernApproach.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/ObsoletePatterns.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/PrimitiveTypesExamples.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/Program.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/SetDataAsJsonExamples.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/SystemDrawingTypesExamples.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/TypeResolver.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/TypeSafeRetrieval.vb create mode 100644 dotnet-desktop-guide/winforms/migration/snippets/clipboard-dataobject-net10/net/vb/vb.vbproj create mode 100644 dotnet-desktop-guide/zone-pivot-groups.yml diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 7b29b75140..f47022d503 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -2,48 +2,34 @@ ## Disclosure -IMPORTANT: For any Markdown files generated by AI, always disclose that they were created with the assistance of AI. Add the following frontmatter key/value pair: +IMPORTANT: For any Markdown files generated by AI, always disclose that they were created with the assistance of AI. If missing, add the `ai-usage` frontmatter key/value pair: -```markdown -ai-usage: ai-generated -``` - -## Terminology +- When reviewing a PR not created by AI: -- Unless otherwise specified, all .NET content refers to modern .NET (not .NET Framework). + ```markdown + ai-usage: ai-assisted + ``` -## Writing Style +- When Copilot generates the article through GitHub without the use of a human: -Follow [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/) with these specifics: + ```markdown + ai-usage: ai-generated + ``` -### Voice and Tone +- When using an IDE with a human guiding AI: -- Active voice, second person addressing reader directly. -- Conversational tone with contractions. -- Present tense for instructions/descriptions. -- Imperative mood for instructions ("Call the method" not "You should call the method"). -- Use "might" instead of "may" for possibility. -- Use "can" instead of "may" for permissible actions. -- Avoid "we"/"our" referring to documentation authors or product teams. + ```markdown + ai-usage: ai-assisted + ``` -### Structure and Format +## New articles -- Sentence case headings (no gerunds in titles). -- Be concise, break up long sentences. -- IMPORTANT: Oxford comma in lists. -- Number all ordered list items as "1." (not sequential numbering like "1.", "2.", "3.", etc.) -- IMPORTANT: Use bullets for unordered lists. -- VERY IMPORTANT: Ordered and unordered lists should use complete sentences with proper punctuation, ending with a period if it's more than three words. -- Avoid "etc." or "and so on" - provide complete lists or use "for example". -- No consecutive headings without content between them. +- New articles must follow a template in the /.github/projects/article-templates/ folder. +- If you don't know which template to use, ask. -### Formatting Conventions +## Terminology -- **Bold** for UI elements. -- `Code style` for file names, folders, custom types, non-localizable text. -- Raw URLs in angle brackets. -- Use relative links for files in this repo. -- Remove `https://learn.microsoft.com/en-us` from learn.microsoft.com links. +- Unless otherwise specified, all .NET content refers to modern .NET (not .NET Framework). ## API References @@ -66,11 +52,66 @@ For snippets >6 lines: 1. Create examples in both C# and Visual Basic unless the article referencing the snippet resides in the in the `csharp`, `fsharp`, and `visual-basic` language folders. 1. When you add code, use code comments sparingly because they don't get localized. You can use them to briefly clarify code-specific details (such as logic, parameters, or edge cases). Put any critical information and context in the markdown text of the referencing article. +## .NET Framework vs .NET differences + +When documenting differences between .NET Framework and .NET (like .NET 6 and newer), choose the appropriate system: + +### Use Tabs +Use tabbed content when the differences are code-based: + +```markdown +# [.NET](#tab/dotnet) + + + +# [.NET Framework](#tab/dotnetframework) + + + +--- +``` + +### Use Pivots +Use zone pivots when there are conceptual differences that can't easily be explained with tabs and a note. Pivots allow for more comprehensive explanations of different approaches or methodologies. + +To use zone pivots: + +1. Add `zone_pivot_groups: desktop-version` to the article's frontmatter +2. Use zone pivot syntax in content: + +```markdown +::: zone pivot="dotnet" + +Your .NET content here + +::: zone-end + +::: zone pivot="dotnetframework" + +Your .NET Framework content here + +::: zone-end +``` + ## File Naming New Markdown files: lowercase with hyphens, omit filler words (the, a, etc.). +Examples: +- ✅ Good: `getting-started-with-entity-framework.md` +- ✅ Good: `configure-logging.md` +- ✅ Good: `dependency-injection-guidelines.md` +- ❌ Bad: `Getting-Started-With-The-Entity-Framework.md` +- ❌ Bad: `configure_logging.md` +- ❌ Bad: `DependencyInjectionGuidelines.md` + ## Special Cases -- Breaking changes: Include directions from `.github/prompts/breaking-change.md`. -- When you (Copilot) are assigned an issue in GitHub, after you've completed your work and the workflows (status checks) have run, check to make sure there are no build warnings under the OpenPublishing.Build status check. If there are, open the build report (under View Details) and resolve any build warnings you introduced. +### GitHub Issue Assignment (AI Workflow) +When assigned an issue in GitHub: +1. Complete your work +2. Wait for workflows (status checks) to run +3. Check for build warnings in the OpenPublishing.Build status check +4. If warnings exist: + - Click "View Details" to open the build report + - Resolve any build warnings you introduced diff --git a/.github/instructions/Markdown.WritingStyle.instructions.md b/.github/instructions/Markdown.WritingStyle.instructions.md new file mode 100644 index 0000000000..eb72f1e320 --- /dev/null +++ b/.github/instructions/Markdown.WritingStyle.instructions.md @@ -0,0 +1,83 @@ +--- +applyTo: 'dotnet-desktop-guide/**/*.md' +description: 'Follow these comprehensive writing style guidelines when creating or editing Markdown documentation. Apply active voice, conversational tone, Oxford commas, and specific formatting rules to ensure consistency and readability across all documentation.' +--- + +# Markdown Writing Style Instructions + +When writing or editing Markdown documentation, follow these style guidelines: + +## Voice and Tone Requirements + +ALWAYS write using: +- Active voice with second person ("you") +- Conversational tone with contractions +- Present tense for instructions and descriptions +- Imperative mood for instructions (write "Call the method" NOT "You should call the method") +- "might" for possibility (NOT "may") +- "can" for permissible actions (NOT "may") + +NEVER use: +- "we" or "our" when referring to documentation authors or product teams +- Jargon or overly complex technical language +- Weak phrases like "you can" or "there is/are/were" unless they add value + +ALWAYS: +- Write like you speak using everyday words +- Create a friendly, informal tone +- Start statements with verbs when possible + +## Structure and Format Rules + +### Headings and Content +- Use sentence case headings (capitalize only first word and proper nouns) +- Never use gerunds in titles +- Never place consecutive headings without content between them +- Lead with the most important information first +- Front-load keywords for scanning + +### Lists and Punctuation +- **CRITICAL: Use Oxford comma in ALL lists (item1, item2, and item3) - NO EXCEPTIONS** +- **MANDATORY: Number ordered lists using "1." for every item (NOT 1., 2., 3.) - ALWAYS USE "1."** +- **REQUIRED: Use bullets for unordered lists - NEVER use numbers for unordered content** +- **ESSENTIAL: Write complete sentences in lists with proper punctuation** +- **MUST: End list items with periods if more than three words - THIS IS NON-NEGOTIABLE** +- Skip end punctuation on titles, headings, and UI elements (3 words or fewer) + +### Spacing and Layout +- Add blank lines around Markdown elements (but don't add extra if they exist) +- Use only one space after periods, question marks, and colons +- Use no spaces around dashes (word—word) +- Break up long sentences for clarity + +### Prohibited Terms +- Never write "etc." or "and so on" - provide complete lists or use "for example" +- Use "for example" instead of "e.g." +- Use "that is" instead of "i.e." + +## Formatting Conventions + +Apply these formatting rules: +- **Bold text** for UI elements +- `Code style` for file names, folders, custom types, and non-localizable text +- Raw URLs in angle brackets +- Relative links for files in this repository +- Remove `https://learn.microsoft.com/en-us` from Microsoft Learn links + +## Word Choice Requirements + +### Verb Selection +- Choose simple verbs without modifiers +- Avoid weak verbs: "be," "have," "make," "do" +- Use precise verbs (write "tell" NOT "inform") + +### Conciseness Rules +- Use one word instead of multiple when possible (write "to" NOT "in order to") +- Choose words with one clear meaning (write "because" NOT "since" for causation) +- Omit unnecessary adverbs unless critical to meaning +- Use one term consistently for each concept + +### Contraction Guidelines +- Use common contractions: "it's," "you're," "that's," "don't" +- Avoid ambiguous contractions: "there'd," "it'll," "they'd" +- Never form contractions from noun + verb (avoid "Microsoft's developing") \ No newline at end of file diff --git a/.github/projects/article-templates/doc-guide.yml b/.github/projects/article-templates/doc-guide.yml new file mode 100644 index 0000000000..b50351bfc0 --- /dev/null +++ b/.github/projects/article-templates/doc-guide.yml @@ -0,0 +1,14 @@ +# ms.topic: version 1.0.0 +items: +- name: + href: + required: yes + limit: 1 +- name: + href: + required: yes + limit: 1 +- name: + href: + required: No + limit: none \ No newline at end of file diff --git a/.github/projects/article-templates/doc-toc.yml b/.github/projects/article-templates/doc-toc.yml new file mode 100644 index 0000000000..6b3f387f43 --- /dev/null +++ b/.github/projects/article-templates/doc-toc.yml @@ -0,0 +1,14 @@ +# ms.topic: version 1.0.0 +items: +- name: + href: //toc.yml + required: yes + limit: 1 +- name: + href: //toc.yml + required: yes + limit: 1 +- name: + href: //toc.yml + required: yes + limit: none \ No newline at end of file diff --git a/.github/projects/article-templates/general-troubleshoot.md b/.github/projects/article-templates/general-troubleshoot.md new file mode 100644 index 0000000000..df11fb27d6 --- /dev/null +++ b/.github/projects/article-templates/general-troubleshoot.md @@ -0,0 +1,143 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: troubleshooting-general #Don't change. +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Troubleshoot [issues with a product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## [Potential quick workarounds] + +1. Procedure step +1. Procedure step + + + +## [Troubleshooting checklist] + +### [Troubleshooting step] + + + +## [Causes and/or solutions] + +### [Solution] + +1. Procedure step +1. Procedure step + + + +## [Advanced troubleshooting and data collection] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/global-demonstration-template b/.github/projects/article-templates/global-demonstration-template new file mode 100644 index 0000000000..d28bae7a9a --- /dev/null +++ b/.github/projects/article-templates/global-demonstration-template @@ -0,0 +1,172 @@ +--- +title: "How [product or service] [solves a problem]" +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: get-started #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Demonstration: [verb] * [capability] * [product or service] * [scenario] + + + +[Introduce and explain the purpose of the article.] + + + +If you don't have a service subscription, create a free +trial account . . . + + + +## Prerequisites + + + +## Open [Cloud Shell, Azure CLI, or PowerShell] + + + +## [Demonstrate a solution to a problem] + + + +## What problem will we solve? + + + +## [Demonstration] + +[Introduce the demonstration.] + + + +## Clean up resources + + + +## Next step -or- Related content + +> [!div class="nextstepaction"] +> [Next sequential article title](link.md) + +-or- + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + \ No newline at end of file diff --git a/.github/projects/article-templates/guide-deployment-guide.yml b/.github/projects/article-templates/guide-deployment-guide.yml new file mode 100644 index 0000000000..b1945e5ce7 --- /dev/null +++ b/.github/projects/article-templates/guide-deployment-guide.yml @@ -0,0 +1,47 @@ +# guide: deployment-guide +name: Deployment guide +items: +- name: Deployment overview + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-overview-template" + required: yes + limit: 1 +- name: Prepare for deployment + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: yes + limit: 1 +- name: Deployment overview + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: yes + limit: 1 +- name: Deployment step 1...n + href: "/link-to: ms.topic: How-to" + required: yes + limit: none +- name: After deployment + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: no + limit: 1 +- name: Checklist + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-checklist-template" + required: no + limit: 1 +- name: Integration + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-integration-guide-template" + required: no + limit: 1 +- name: Troubleshooting + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-general-troubleshoot-template" + required: no + limit: 1 +- name: Best practices + href: "https:/review.learn.microsoft.com/help/patterns/level4/global-best-practices-template" + required: no + limit: 1 +- name: FAQ + href: "https:/review.learn.microsoft.com/help/patterns/level4/article-structured-faq" + required: no + limit: 1 +- name: Reference + href: "https:/review.learn.microsoft.com/help/contribute/reference-overview?branch=main" + required: no + limit: 1 \ No newline at end of file diff --git a/.github/projects/article-templates/guide-planning.yml b/.github/projects/article-templates/guide-planning.yml new file mode 100644 index 0000000000..e5dfec0abc --- /dev/null +++ b/.github/projects/article-templates/guide-planning.yml @@ -0,0 +1,25 @@ +# guide: planning +name: Plan __ +items: +- name: Plan __ + items: + - name: Plan __ + href: "https://review.learn.microsoft.com/en-us/help/patterns/level4/global-overview-template" + required: yes + limit: 1 + - name: Prerequisites + href: "https://review.learn.microsoft.com/en-us/help/patterns/level4/global-concept-template" # alternately, can use ms.topic: checklist + required: yes + limit: 0 + - name: Prerequisites + href: "https://review.learn.microsoft.com/en-us/help/patterns/level4/global-checklist-template" # alternately, can use ms.topic: concept-article + required: no + limit: 1 + - name: Considerations + href: "https://review.learn.microsoft.com/en-us/help/patterns/level4/global-concept-template" # alternately, can use ms.topic: checklist + required: yes + limit: 1 + - name: Considerations + href: "https://review.learn.microsoft.com/en-us/help/patterns/level4/global-checklist-template" # alternately, can use ms.topic: concept-article + required: no + limit: 1 \ No newline at end of file diff --git a/.github/projects/article-templates/guide-upgrade-and-migration.yml b/.github/projects/article-templates/guide-upgrade-and-migration.yml new file mode 100644 index 0000000000..6ec0c0caf4 --- /dev/null +++ b/.github/projects/article-templates/guide-upgrade-and-migration.yml @@ -0,0 +1,47 @@ +# guide: upgrade-and-migration +name: Upgrade or Migration guide +items: +- name: Overview + href: "https://review.learn.microsoft.com/help/patterns/level4/global-overview-template" + required: yes + limit: 1 +- name: Prerequisites + href: "https://review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: no + limit: 1 +- name: Methods + href: "https://review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: no + limit: 1 +- name: Resources + href: "https://review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: no + limit: 1 +- name: Assessment + href: "https://review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: no + limit: 1 +- name: Preupgrade or premigration tasks + href: "https://review.learn.microsoft.com/help/patterns/level4/global-how-to-template" + required: no + limit: 1 +- name: Migration step 1...n + href: "https://review.learn.microsoft.com/help/patterns/level4/global-how-to-template" + required: yes + limit: none +- name: Validation + href: "https://review.learn.microsoft.com/help/patterns/level4/global-how-to-template" + required: no + limit: 1 +- name: Post-upgrade or post-migration tasks + href: "https://review.learn.microsoft.com/help/patterns/level4/global-how-to-template" + required: no + limit: 1 +- name: What to expect after upgrade or migration + href: "https://review.learn.microsoft.com/help/patterns/level4/global-concept-template" + required: no + limit: 1 +- name: Troubleshooting + href: "https://review.learn.microsoft.com/help/patterns/level4/global-general-troubleshoot-template" + required: no + limit: 1 \ No newline at end of file diff --git a/.github/projects/article-templates/guide-waf-workloads.yml b/.github/projects/article-templates/guide-waf-workloads.yml new file mode 100644 index 0000000000..01cbeecd8b --- /dev/null +++ b/.github/projects/article-templates/guide-waf-workloads.yml @@ -0,0 +1,31 @@ +# guide: waf-workload +name: Workload name documentation +items: +- name: Quick links + href: index.yml #landing page template + required: yes + limit: 1 +- name: Get started + href: "help-content/patterns/level4/waf-get-started-template.md" + required: yes + limit: 1 +- name: Design methodology + href: "help-content/patterns/level4/waf-design-methodology-template.md" + required: yes + limit: 1 +- name: Design principles + href: "help-content/patterns/level4/waf-design-principles-template.md" + required: yes + limit: none +- name: Cross-cutting concerns + href: "help-content/patterns/level4/waf-cross-cutting-concerns-template.md" + required: yes + limit: 1 +- name: Architecture pattern + href: "help-content/patterns/level4/waf-architecture-pattern-template.md" + required: yes + limit: 1 +- name: Design areas + href: "help-content/patterns/level4/waf-design-areas-template.md" + required: yes + limit: 1 \ No newline at end of file diff --git a/.github/projects/article-templates/known-issues.md b/.github/projects/article-templates/known-issues.md new file mode 100644 index 0000000000..b0cdf0eb2d --- /dev/null +++ b/.github/projects/article-templates/known-issues.md @@ -0,0 +1,93 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: troubleshooting-known-issue #Don't change. +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Known issues: [product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## [Issue] + + + +[Describe the issue.] + + + +### Prerequisites + + + +### Troubleshooting steps + + + +### Possible causes + + diff --git a/.github/projects/article-templates/problem-resolution.md b/.github/projects/article-templates/problem-resolution.md new file mode 100644 index 0000000000..66a307783d --- /dev/null +++ b/.github/projects/article-templates/problem-resolution.md @@ -0,0 +1,160 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: troubleshooting-problem-resolution #Don't change. +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# [Error message or key words that describe the problem] + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## Symptoms + + + + + +## Cause + + + +## Solution [number, if there are more than one] + +1. Procedure step +1. Procedure step + + + + + +## Determine the cause of the problem + + + +## Cause [number] + + + +### Solution [number, if there are more than one] + +1. Procedure step +1. Procedure step + + + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-best-practices.md b/.github/projects/article-templates/template-best-practices.md new file mode 100644 index 0000000000..e290966906 --- /dev/null +++ b/.github/projects/article-templates/template-best-practices.md @@ -0,0 +1,93 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: best-practice #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Best practices for [service or product] + + + +[Introduce and explain the purpose of the article.] + + + +## [Best practices section] + +[Introduce a best practices section.] + + + +## [Best practice] + +[Describe a best practice.] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-bicep-quickstart.md b/.github/projects/article-templates/template-bicep-quickstart.md new file mode 100644 index 0000000000..012a63eeac --- /dev/null +++ b/.github/projects/article-templates/template-bicep-quickstart.md @@ -0,0 +1,249 @@ +--- +title: #Required. The page title that's displayed in search results. Start with "Quickstart" and include "Bicep." +description: #Required. The article description that's displayed in search results. Include "quickstart." +author: #Required. Your GitHub user alias. Use correct capitalization. +ms.author: #Required. The Microsoft alias of the author. Optionally, a team alias. +ms.service: #Required. The approved service name. The service slug assigned by ACOM. +ms.topic: quickstart-bicep #Required; leave this attribute/value as-is. +ms.custom: #Required. Use "subject-bicepqs." +ms.date: #Required. The publish date in mm/dd/yyyy format. +--- + + + + + +# Quickstart: with Bicep +TODO: Add your heading + + + +[Introductory sentence] +TODO: Add your introductory sentence + +[!INCLUDE [About Bicep](/includes/resource-manager-quickstart-bicep-introduction.md)] +TODO: Update the path to the include file + + + +## Prerequisites + +- If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin. +- [Your prerequisites] + TODO: Add your prerequisites +- [Azure CLI prerequisites] + TODO: Add the Azure CLI prerequisites +- [Azure PowerShell prerequisites] + TODO: Add the Azure PowerShell prerequisites + + + +## Review the Bicep file + +The Bicep file used in this quickstart is from +[Azure Quickstart Templates](https://azure.microsoft.com/resources/templates/). + +[code-block-or-link-to-code] +TODO: Add your code or link + +The following Azure resources are defined in the Bicep file: + +- [Link to resource definition] +- [Link to resource definition] +- ... + +TODO: Add your resource definition links + +For more [product or service] Bicep samples, see +[Azure Quickstart Templates by resource types](https://azure.microsoft.com/resources/templates/?resourceType=Microsoft.&pageNumber=1&sort=Popular). +TODO: Add your link to samples + + + +## Deploy the Bicep file + +1. Save the Bicep file as `main.bicep` to your local computer. + +1. Deploy the Bicep file by using either Azure CLI or Azure PowerShell. + + [Azure CLI commands] + [Azure PowerShell commands] + +TODO: Add your commands + + + +## Review deployed resources + +[Azure CLI commands] +[Azure PowerShell commands] +TODO: Add your commands + + + +## Clean up resources + +[Instructions for cleaning up resources] +[Azure CLI commands] +[Azure PowerShell commands] +TODO: Add your instructions and commands + + + +## Next steps + +> [!div class="nextstepaction"] +> [Quickstart: ]() + +- [Links to related information] +TODO: Add your quickstart or related information links + + \ No newline at end of file diff --git a/.github/projects/article-templates/template-checklist.md b/.github/projects/article-templates/template-checklist.md new file mode 100644 index 0000000000..584c51624b --- /dev/null +++ b/.github/projects/article-templates/template-checklist.md @@ -0,0 +1,78 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: checklist #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Checklist for [product, service, or feature] + + + +[Introduce and explain the purpose of the article.] + + + +## [Checklist] + +[Insert a checklist.] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-concept.md b/.github/projects/article-templates/template-concept.md new file mode 100644 index 0000000000..a3258fa13d --- /dev/null +++ b/.github/projects/article-templates/template-concept.md @@ -0,0 +1,102 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: concept-article #Don't change. +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# [noun phrase] concept(s) + +or + +# [noun] overview + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## [Main idea] + +[Describe a main idea.] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-error-codes.md b/.github/projects/article-templates/template-error-codes.md new file mode 100644 index 0000000000..cb5996b0ca --- /dev/null +++ b/.github/projects/article-templates/template-error-codes.md @@ -0,0 +1,69 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: error-reference #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Error codes: [product, service, or feature] + + + +[Introduce a table that lists the error codes.] + + + +| Code | Error message | Details | +| --- | --- | --- | +| `code` | `message` | `details` | +| `code` | `message` | `details` | +| `code` | `message` | `details` | + + + + diff --git a/.github/projects/article-templates/template-feature-description.md b/.github/projects/article-templates/template-feature-description.md new file mode 100644 index 0000000000..e98ef1bf05 --- /dev/null +++ b/.github/projects/article-templates/template-feature-description.md @@ -0,0 +1,142 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: conceptual #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# [Feature] in [product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## Use cases + +- [Use case] +- [Use case] + + + +## [Feature description] + + + +### Requirements + + + +### Considerations + + + +### Examples + + + +## Availability and pricing + +- [Link to regions where the feature is available] +- [Link to pricing information] + + + +## Limitations + +- [Limitation] +- [Limitation] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-get-started-guide.yml b/.github/projects/article-templates/template-get-started-guide.yml new file mode 100644 index 0000000000..484af048f4 --- /dev/null +++ b/.github/projects/article-templates/template-get-started-guide.yml @@ -0,0 +1,17 @@ +items: +- name: What is / + href: ../templates/template-overview.md +- name: Similar / comparison +- href: ../templates/template-product-comparison.md +- name: When to use / +- href: ../templates/template-concept.md +- name: / Set up +- href: ../templates/template-quickstart.md +- name: How to guide + href: ../templates/template-how-to-guide.md +- name: How to guide + href: ../templates/template-how-to-guide.md +- name: How to guide + href: ../templates/template-how-to-guide.md +- name: How to get support + href: ../templates/template-concept.md \ No newline at end of file diff --git a/.github/projects/article-templates/template-get-started.md b/.github/projects/article-templates/template-get-started.md new file mode 100644 index 0000000000..7e38002e2c --- /dev/null +++ b/.github/projects/article-templates/template-get-started.md @@ -0,0 +1,131 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: get-started #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Get started with [product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## [Table of stages] + + + +## [Stages] + + + +## [Who or what information] + + + +## Get help + + + +## Next step -or- Related content + +> [!div class="nextstepaction"] +> [Next sequential article title](link.md) + +-or- + +* [Related article title](link.md) +* [Related article title](link.md) +* [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-glossary.md b/.github/projects/article-templates/template-glossary.md new file mode 100644 index 0000000000..883e06c310 --- /dev/null +++ b/.github/projects/article-templates/template-glossary.md @@ -0,0 +1,93 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: glossary #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Glossary for [product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## A -or- [range of letters] + + + +### [A term] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-how-to-guide.md b/.github/projects/article-templates/template-how-to-guide.md new file mode 100644 index 0000000000..7185b3434d --- /dev/null +++ b/.github/projects/article-templates/template-how-to-guide.md @@ -0,0 +1,125 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: how-to #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# "[verb] * [noun]" + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## "[verb] * [noun]" + +[Introduce the procedure.] + +1. Procedure step +1. Procedure step +1. Procedure step + + + +## Clean up resources + + + +## Next step -or- Related content + +> [!div class="nextstepaction"] +> [Next sequential article title](link.md) + +-or- + +* [Related article title](link.md) +* [Related article title](link.md) +* [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-install-setup-deploy.md b/.github/projects/article-templates/template-install-setup-deploy.md new file mode 100644 index 0000000000..8c6471a954 --- /dev/null +++ b/.github/projects/article-templates/template-install-setup-deploy.md @@ -0,0 +1,128 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: install-set-up-deploy #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Install/Set up/Deploy [product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## Methods + + + +## [Process steps] + + + +[Introduce a procedure and its role in completing the step.] + +1. Procedure step +1. Procedure step +1. Procedure step + +## Troubleshooting, validation, and/or FAQ + + + +## Next step -or- Related content + +> [!div class="nextstepaction"] +> [Next sequential article title](link.md) + +-or- + +* [Related article title](link.md) +* [Related article title](link.md) +* [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-integration-guide.md b/.github/projects/article-templates/template-integration-guide.md new file mode 100644 index 0000000000..0205d9b6ad --- /dev/null +++ b/.github/projects/article-templates/template-integration-guide.md @@ -0,0 +1,118 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: integration #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Integrate [product or service] with [product or service] + + + +[Introduce and explain the purpose of the article.] + + + +## Prerequisites + + + +## [Integration steps] + + + +## Test the integration + + + +## Next step -or- Related content + +> [!div class="nextstepaction"] +> [Next sequential article title](link.md) + +-or- + +* [Related article title](link.md) +* [Related article title](link.md) +* [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-limits-and-quotas.md b/.github/projects/article-templates/template-limits-and-quotas.md new file mode 100644 index 0000000000..138e7c1918 --- /dev/null +++ b/.github/projects/article-templates/template-limits-and-quotas.md @@ -0,0 +1,92 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: limits-and-quotas #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# [product or service] limits and quotas + + + +[Introduce and explain the purpose of the article.] + + + +## [General information about limits and quotas] + + + +## [Limits and quotas table] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-managed-identities.md b/.github/projects/article-templates/template-managed-identities.md new file mode 100644 index 0000000000..6ad6b94761 --- /dev/null +++ b/.github/projects/article-templates/template-managed-identities.md @@ -0,0 +1,176 @@ +--- +title: Use managed identities in [Service name] | Microsoft Docs #Required; page title is displayed in search results. +description: Learn how to use managed identities with [Service name] using the Azure portal, CLI, PowerShell, and ARM template. #Required; article description that is displayed in search results. Update depending on which options you use. +author: #Required; your GitHub user alias, with correct capitalization. +ms.author: #Required; microsoft alias of author; optional team alias. +ms.service: #Required; Select service from approved list. +ms.topic: how-to #Required. +ms.date: #Required; mm/dd/yyyy format. +--- + + +# How to use managed identities with [Service name] +TODO: Add H1 headline. + + + +This article shows you how to use managed identities with a [Service name] instance. +TODO: Add introduction. + + + +## Prerequisites + +- [Prerequisite 1] +- [Prerequisite 2] +- [Prerequisite n] + +TODO: Add prerequisites section, if needed. + + + +## Create an instance of [service name] with a system assigned managed identity + +# [Portal](#tab/azure-portal) + +# [Azure PowerShell](#tab/azure-powershell) + +# [Azure CLI](#tab/azure-cli) + +# [ARM template](#tab/azure-resource-manager) + +--- + +TODO: Add Create an instance section with tabbed conceptual options. + + + +## Assign a user-assigned managed identity to a service instance + +# [Portal](#tab/azure-portal) + +# [Azure PowerShell](#tab/azure-powershell) + +# [Azure CLI](#tab/azure-cli) + +# [ARM template](#tab/azure-resource-manager) + +--- + +TODO: Add Assign identity section with tabbed conceptual options. + + + +## Supported scenarios using managed identities + +### User assigned managed identities + +### System assigned managed identities + +TODO: Describe supported scenarios. + + + +### Grant access to a managed identity +TODO: Add grant access section. + + + + + +## Clean up steps +TODO: Add clean up steps. + + + +## Next steps + +Learn more about managed identities for Azure resources: + +- [What are managed identities for Azure resources?](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview) + +TODO: Add Next steps. + + diff --git a/.github/projects/article-templates/template-move-across-regions.md b/.github/projects/article-templates/template-move-across-regions.md new file mode 100644 index 0000000000..e8132454e0 --- /dev/null +++ b/.github/projects/article-templates/template-move-across-regions.md @@ -0,0 +1,178 @@ +--- +title: #Required; page title is displayed in search results. Format is: Relocation guidance for [service-name] +description: #Required; article description that is displayed in search results. Include the words "relocate", and "region" in the description. +author: #Required; your GitHub user alias, with correct capitalization. +ms.author: #Required; microsoft alias of author; optional team alias. +ms.service: #Required; service per approved list. slug assigned by ACOM. +ms.topic: how-to #Required; leave this attribute/value as-is. +ms.date: #Required; mm/dd/yyyy format. +ms.custom: + - subject-moving-resources + - subject-relocation #Required; leave this attribute/value as-is. + +--- + + + +#Customer intent: As a < type of user >, I want < what? > so that < why? >. +TODO: Add customer intent statement. + + + +# [H1 heading] +TODO: Add your heading. + + + +[Add your introductory paragraph] +TODO: Add your introductory paragraph + + + +## Prerequisites +TODO: Add the Prerequisites section. + + + + +## Considerations for Service Endpoints +TODO: Add the Considerations for Service Endpoints section + + + +## Consideration for Private Endpoints +TODO: Add the Consideration for Private Endpoints + + + +## Prepare +TODO: Add the Prepare section. + + + +## Modify the template +TODO: Add the Modify the template section. + + + + +## Redeploy +TODO: Add the Redeploy section. + + + +## Redeploy with data +TODO: Add the Redeploy section. + + + +## Verify +TODO: Add the Verify section. + + + +## Commit +TODO: Add this section, if necessary. + + + +## Discard target resources +TODO: Add this section, if desired. + + + +## Clean up source resources +TODO: Add the Clean up resources section. + + + +## Next steps +TODO: Add your next steps. + + diff --git a/.github/projects/article-templates/template-overview.md b/.github/projects/article-templates/template-overview.md new file mode 100644 index 0000000000..670f773e76 --- /dev/null +++ b/.github/projects/article-templates/template-overview.md @@ -0,0 +1,80 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: overview #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# What is [product or service]? + + + +[Introduce and explain the purpose of the article.] + + + +## [Feature section] + +[Introduce a section that describes a feature.] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-partner-tools.md b/.github/projects/article-templates/template-partner-tools.md new file mode 100644 index 0000000000..1856044dc7 --- /dev/null +++ b/.github/projects/article-templates/template-partner-tools.md @@ -0,0 +1,96 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: partner-tools #Don't change +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# [product] [feature] partners + +-or- + +# [product] partners for [feature] + + + +[Introduce and explain the purpose of the article.] + + + +## [category of tools] + +[Introduce table as needed.] + +| Partner | Description | Links | Regions (as needed) | +| ------- | ----------- | ----- | ------------------- | + +-or- + +## [partner name] + +[Describe partner tools.] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-product-comparison.md b/.github/projects/article-templates/template-product-comparison.md new file mode 100644 index 0000000000..83feb1ca60 --- /dev/null +++ b/.github/projects/article-templates/template-product-comparison.md @@ -0,0 +1,114 @@ +--- +title: [Follow SEO guidance at +https://review.learn.microsoft.com/en-us/help/platform/seo-meta-title] + -or- Choose between [service 1] and [service 2]" +description: "[Article description]." +author: [your GitHub alias] +ms.author: [your Microsoft alias or a team alias] +ms.service: [the approved service name] +ms.topic: product-comparison #Don't change in the template. +ms.date: [mm/dd/yyyy] + +#customer intent: As a , I want so that . + +--- + + + +# Choose a(n) [service category] + +-or- + +# Choose between [service 1] and [service 2] + + + +[Introduce and explain the purpose of the article.] + + + +## Choose a candidate service + + + +## [Criterion] + + + +## Related content + +- [Related article title](link.md) +- [Related article title](link.md) +- [Related article title](link.md) + + + + diff --git a/.github/projects/article-templates/template-quickstart-resource-manager.md b/.github/projects/article-templates/template-quickstart-resource-manager.md new file mode 100644 index 0000000000..1be6fd9897 --- /dev/null +++ b/.github/projects/article-templates/template-quickstart-resource-manager.md @@ -0,0 +1,152 @@ +--- +title: Create a {service name} by using Azure Resource Manager template (ARM template) +description: Learn how to create an Azure {service name} by using Azure Resource Manager template (ARM template). +services: azure-resource-manager +ms.service: azure-resource-manager +author: your-github-account-name +ms.author: your-microsoft-alias +ms.topic: quickstart-arm #Required; leave this attribute/value as-is. +ms.custom: subject-armqs +ms.date: MM/DD/YYYY + +# Customer intent: As a cloud administrator, I want a quick method to deploy an Azure resource for production environments or to evaluate the service's functionality. +--- + + + +# Quickstart: The H1 heading must include the words ARM template + + + +This quickstart describes how to use an Azure Resource Manager template (ARM template) to create +{service name}. + + + +[!INCLUDE [About Azure Resource Manager](../../includes/resource-manager-quickstart-introduction.md)] + + + +If your environment meets the prerequisites and you're familiar with using ARM templates, select the +**Deploy to Azure** button. The template will open in the Azure portal. + +:::image type="content" source="~/articles/reusable-content/ce-skilling/azure/media/template-deployments/deploy-to-azure-button.svg" alt-text="Button to deploy the Resource Manager template to Azure." border="false" link="https://portal.azure.com/#create/Microsoft.Template/uri/"::: + +## Prerequisites + + + +If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin. + +## Review the template + + + +The template used in this quickstart is from [Azure Quickstart Templates](https://azure.microsoft.com/resources/templates/). + + + +:::code language="json" source="~/quickstart-templates/