-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Modernize the Get Started content #51565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Phase 2 is now complete.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR modernizes the C# “Get started” experience by adding a new workloads overview article and adding clearer audience signposts plus “next steps” cross-links across the Tour of C# landing pages, overview article, tips-for-X roadmaps, and the interactive tutorial series.
Changes:
- Adds a new “What you can build with C#” article and links it from the C# TOC and hub/landing pages.
- Updates Tour of C# overview, landing page, and tutorials to include audience guidance plus expanded “Learn more”/“Next steps” navigation into Fundamentals.
- Enriches tips-for-Java/JavaScript/Python articles with side-by-side syntax comparisons and adds consistent “Next steps” sections.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/csharp/tour-of-csharp/what-you-can-build.md | New workloads overview article with links into major .NET app types and next steps. |
| docs/csharp/tour-of-csharp/index.yml | Reshapes Tour of C# landing page to guide different audiences and surface the new workloads article. |
| docs/csharp/tour-of-csharp/overview.md | Adds audience guidance, reinforces file-based apps, and adds “Learn more” and “Next steps” links. |
| docs/csharp/tour-of-csharp/strategy.md | Adds audience guidance and links “workloads” mention to the new workloads article. |
| docs/csharp/tour-of-csharp/tips-for-java-developers.md | Adds intro, syntax comparisons, and next steps for Java developers. |
| docs/csharp/tour-of-csharp/tips-for-javascript-developers.md | Adds intro, TypeScript/C# comparisons, and next steps for JS/TS developers. |
| docs/csharp/tour-of-csharp/tips-for-python-developers.md | Adds intro, Python/C# comparisons, and next steps for Python developers. |
| docs/csharp/tour-of-csharp/tutorials/index.md | Adds audience guidance, clarifies file-based apps, and adds a “What’s next?” section. |
| docs/csharp/tour-of-csharp/tutorials/hello-world.md | Adds audience tip plus expanded Fundamentals-oriented “Next steps.” |
| docs/csharp/tour-of-csharp/tutorials/numbers-in-csharp.md | Adds audience tip, “Learn more” callouts, and expanded “Next steps.” |
| docs/csharp/tour-of-csharp/tutorials/tuples-and-types.md | Adds audience tip, “Learn more” callout, and expanded “Next steps.” |
| docs/csharp/tour-of-csharp/tutorials/branches-and-loops.md | Adds audience tip, “Learn more” callout, and expanded “Next steps.” |
| docs/csharp/tour-of-csharp/tutorials/list-collection.md | Adds audience tip, “Learn more” callout, and expanded “Next steps.” |
| docs/csharp/tour-of-csharp/tutorials/pattern-matching.md | Adds audience tip, “Learn more” callout, and expanded “Next steps.” |
| docs/csharp/toc.yml | Adds the new workloads article under “Get started.” |
| docs/csharp/index.yml | Updates the hub “Get started” card to include the new workloads article and a signpost to tips-for-X. |
| - url: ./fundamentals/program-structure/index.md | ||
| text: "Inside a C# program" | ||
| - url: ./tour-of-csharp/tips-for-java-developers.md | ||
| text: "C# for Java, JavaScript, and Python developers" |
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link text says it’s for Java, JavaScript, and Python developers, but it points to the Java-only roadmap article. Either change the text to match the destination, or link to a page/section that actually aggregates the three roadmaps.
| text: "C# for Java, JavaScript, and Python developers" | |
| text: "C# for Java developers" |
| @@ -122,17 +128,24 @@ With each iteration of the loop, you take the last two integers in the list, sum | |||
| </details> | |||
| <!-- markdownlint-disable MD033 --> | |||
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The markdownlint directive is disabled twice; the second one should be an enable (or be removed) so MD033 gets re-enabled after the
Details
block. Leaving it disabled can mask unrelated lint issues later in the file.| <!-- markdownlint-disable MD033 --> | |
| <!-- markdownlint-enable MD033 --> |
| - [The C# type system](../../fundamentals/types/index.md) — Dive deeper into the types you used in this tutorial. | ||
| - [Methods and program structure](../../fundamentals/program-structure/index.md) — Learn more about the methods you created to organize your code. | ||
| - [What you can build with C#](../what-you-can-build.md) — See the kinds of apps you can create with what you're learning. | ||
| - [Numeric types in C# Fundamentals](../../fundamentals/types/index.md) — Understand how C# represents numbers in the type system. |
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this “Next steps” list, “The C# type system” and “Numeric types in C# Fundamentals” both link to the same Fundamentals type-system page. De-duplicate these entries, or update the “Numeric types…” link to a more specific target if one exists.
| - [Numeric types in C# Fundamentals](../../fundamentals/types/index.md) — Understand how C# represents numbers in the type system. |
| ## Match a value | ||
|
|
||
| The preceding tutorials demonstrated built-in types and types you define as tuples or records. You can check instances of these types against a *pattern*. Whether an instance matches a pattern determines the actions your program takes. In the examples below, you see `?` after type names. This symbol allows the value of this type to be null (for example, `bool?` can be `true`, `false`, or `null`). For more information, see [Nullable value types](../../language-reference/builtin-types/nullable-value-types.md). Let's start to explore how you can use patterns. | ||
| The preceding tutorials demonstrated built-in types and types you define as tuples or records. You can check instances of these types against a *pattern*. Whether an instance matches a pattern determines the actions your program takes. In the examples that follow, you see `?` after type names. This symbol allows the value of this type to be null (for example, `bool?` can be `true`, `false`, or `null`). For more information, see [Nullable value types](../../language-reference/builtin-types/nullable-value-types.md). Let's start to explore how you can use patterns. |
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There’s a double space before “Let’s start to explore…” after the Nullable value types link. Remove the extra space to avoid awkward rendering and keep spacing consistent.
| The preceding tutorials demonstrated built-in types and types you define as tuples or records. You can check instances of these types against a *pattern*. Whether an instance matches a pattern determines the actions your program takes. In the examples that follow, you see `?` after type names. This symbol allows the value of this type to be null (for example, `bool?` can be `true`, `false`, or `null`). For more information, see [Nullable value types](../../language-reference/builtin-types/nullable-value-types.md). Let's start to explore how you can use patterns. | |
| The preceding tutorials demonstrated built-in types and types you define as tuples or records. You can check instances of these types against a *pattern*. Whether an instance matches a pattern determines the actions your program takes. In the examples that follow, you see `?` after type names. This symbol allows the value of this type to be null (for example, `bool?` can be `true`, `false`, or `null`). For more information, see [Nullable value types](../../language-reference/builtin-types/nullable-value-types.md). Let's start to explore how you can use patterns. |
| title: Pattern matching | ||
| description: In this tutorial about pattern matching, you learn C#. You're going to write C# code and see the results of compiling and running your code. | ||
| ms.date: 12/10/2025 | ||
| ms.date: 02/09/2026 |
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR description’s Verification section says “Confirm all edited files have ms.date: 02/06/2026,” but several updated files (including this one) use 02/09/2026. Update the PR description (or the dates) so the checklist matches what the PR is actually doing.
| C# supports building desktop applications for Windows and macOS: | ||
|
|
||
| - **[.NET MAUI](/dotnet/maui/)** creates cross-platform desktop apps that run on Windows, macOS, Android, and iOS from a single codebase. | ||
| - **[Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/)** builds rich Windows desktop apps with advanced graphics and data binding. | ||
| - **[Windows Forms](/dotnet/desktop/winforms/)** provides a straightforward way to create Windows desktop apps with a visual designer. |
Copilot
AI
Feb 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Desktop section implies macOS support for all the listed UI stacks, but WPF and Windows Forms are Windows-only. Reword this section to avoid suggesting those frameworks run on macOS (for example, call out MAUI as cross-platform and WPF/WinForms as Windows-only).
| C# supports building desktop applications for Windows and macOS: | |
| - **[.NET MAUI](/dotnet/maui/)** creates cross-platform desktop apps that run on Windows, macOS, Android, and iOS from a single codebase. | |
| - **[Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/)** builds rich Windows desktop apps with advanced graphics and data binding. | |
| - **[Windows Forms](/dotnet/desktop/winforms/)** provides a straightforward way to create Windows desktop apps with a visual designer. | |
| Use C# to build Windows desktop apps, and cross-platform desktop apps that run on Windows and macOS: | |
| - **[.NET MAUI](/dotnet/maui/)** creates cross-platform desktop apps that run on Windows, macOS, Android, and iOS from a single codebase. | |
| - **[Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/)** builds rich Windows-only desktop apps with advanced graphics and data binding. | |
| - **[Windows Forms](/dotnet/desktop/winforms/)** provides a straightforward way to create Windows-only desktop apps with a visual designer. |
TL;DR: Update the C# "Get Started" section to serve four audiences (Learner, Student, Early-in-career, Professional) by: creating a new workloads overview article, reshaping the two index/landing pages, adding audience signposts and Fundamentals cross-links to all Tour of C# articles and tutorials, and enriching the tips-for-X-developers articles with code comparisons. All samples use file-based apps;
Mainis covered only in prose. The file-based-programs.md tutorial stays in Fundamentals but gets prominent "next step" links from Get Started.This should be easier to review commit-by-commit.
Steps
Phase 1 — New content
Create docs/csharp/tour-of-csharp/what-you-can-build.md — A new, short article (target ~150–200 lines) titled "What you can build with C#." Organize it as a brief intro paragraph explaining that C# and .NET support many workloads, followed by subsections with 2–3 sentences + key links for each workload:
docs/iot/index.yml)ms.date: 02/06/2026, addai-usage: ai-assisted.Add what-you-can-build to the TOC — Insert it in docs/csharp/toc.yml under "Get started," after "Tour of C#" and before the tutorials block.
Phase 2 — Reshape landing/hub pages
Reshape the "Get started" card in docs/csharp/index.yml — In the
productDirectory→ "Get started" card, update links to:Remove the "Try C# in your browser" and "Inside a C# program" links (those are reachable from the tutorials and tour). Update
ms.date: 02/06/2026.Reshape docs/csharp/tour-of-csharp/index.yml — Reorganize the landing page to guide four audiences:
ms.date: 02/09/2026.Phase 3 — Update Tour of C# articles
Edit docs/csharp/tour-of-csharp/overview.md — Changes:
dotnet run hello.cs);Maindiscussed in a subsequent "Note" block explaining that older code uses this pattern, linking to fundamentals/program-structure/main-command-line.md.ms.date: 02/09/2026.Edit docs/csharp/tour-of-csharp/strategy.md — Minor changes:
ms.date: 02/09/2026.Edit docs/csharp/tour-of-csharp/tips-for-java-developers.md — Enrichments:
ms.date: 02/09/2026.Edit docs/csharp/tour-of-csharp/tips-for-javascript-developers.md — Same pattern as step 7, but comparing JavaScript/TypeScript with C#. Focus comparisons on: type annotations, async/await, classes, pattern matching.
ms.date: 02/09/2026.Edit docs/csharp/tour-of-csharp/tips-for-python-developers.md — Same pattern as step 7, but comparing Python with C#. Focus comparisons on: type annotations, list comprehensions vs. LINQ, indentation vs. braces, class definition.
ms.date: 02/09/2026.Phase 4 — Update tutorials
Edit docs/csharp/tour-of-csharp/tutorials/index.md — Changes:
ms.date: 02/09/2026.Edit each tutorial (hello-world.md, numbers-in-csharp.md, tuples-and-types.md, branches-and-loops.md, list-collection.md, pattern-matching.md) — For each:
if/else→ general programming structure, loops → program-structure/index.mdSystem.Collections.Genericreferencems.date: 02/09/2026on each file.Phase 5 — TOC updates
what-you-can-build.mdentry after "Tour of C#":Phase 6 — Verify no legacy articles should move
Verification
docfx buildand confirm no broken links or build warnings.[text](path)andurl:in YAML points to an existing file.ms.date: 02/06/2026.ai-usage: ai-assistedis set on any newly created .md files.Mainappears only in explanatory prose with a link to main-command-line.md.Decisions
productDirectoryof index.yml is reshaped; other sections unchanged.Internal previews
Toggle expand/collapse