|
16 | 16 | - Define concepts when they are first introduced. Don't assume readers know what a "type" or "namespace" is before those concepts are covered in the proposed TOC. When defining a concept, link to articles that provide more detail. Definitions are less important for concepts that aren't related to the C# language: Remember the goal for Fundamentals is to teach readers how C# works. While we teach through examples, the libraries and packages used in the examples are less important than the language features being demonstrated. For example, when teaching about collections, it's more important to explain what a collection is and how to use them in C# than to provide an in-depth explanation of `List<T>` vs. `Dictionary<K,V>`. |
17 | 17 | - Similarly, define all terms that may be unfamiliar to the reader when they are first introduced. Link to articles that provide more detail on these terms. Remember that the audience for Fundamentals articles may not be familiar with all C# terminology, or all compputer science terminology. Provide clear definitions and context. |
18 | 18 | - Set the `ms.topic` metadata value in each article's YAML front matter to match the article's content type (`overview`, `tutorial`, `concept`, `how-to`, `troubleshooting`, or `reference`). |
19 | | -- After writing content, verify the article's structure, required metadata, and sections against the template for its content type (see the [Include major topic types](EverydayCSharp-ProjectMap.md#include-major-topic-types) table for template links). |
| 19 | +- After writing content, verify the article's structure, required metadata, and sections against the template for its content type (see the [Include major topic types](EverydayCSharp-ProjectMap.md#include-major-topic-types) table for template links). This is mandatory for every article before it can be merged to ensure consistency and completeness across the Fundamentals section. |
20 | 20 | - Do not add F1 or helpviewer keywords to Fundamentals articles. When pulling content from the Reference section, remove any F1 or helpviewer keywords. |
21 | 21 | - When recommending a modern feature over an older alternative, always include a justification—state *why* the recommended approach is preferred. Never describe older features as obsolete or deprecated (Goal 9). |
22 | 22 | - Do not add links to files that will be created in future PRs until those files are live. For example, if PR 3 creates the `fundamentals/types/enums.md` article, then earlier PRs should not link to that file until PR 3 is merged. This may require some temporary duplication of content or placeholders for links, but it will prevent broken links in merged PRs. Instead, when an article is created, add appropriate links to it in earlier articles as needed to connect the content together. |
|
26 | 26 |
|
27 | 27 | ### PR 1 — Program structure: namespaces + preprocessor directives |
28 | 28 |
|
| 29 | +[#52082](https://github.com/dotnet/docs/pull/52082) *Merged* |
| 30 | + |
29 | 31 | > ~10 files |
30 | 32 |
|
31 | 33 | 1. Revise `fundamentals/program-structure/index.md` — add file-scoped namespaces, global usings as default style |
|
37 | 39 |
|
38 | 40 | ### PR 2 — Tutorial: System.CommandLine |
39 | 41 |
|
| 42 | +[#52592](https://github.com/dotnet/docs/pull/52592) *Merged* |
| 43 | + |
40 | 44 | > ~4 files |
41 | 45 |
|
42 | 46 | 1. New `fundamentals/tutorials/system-commandline.md` — demonstrate `System.CommandLine` for commands, subcommands, arguments, and options |
|
46 | 50 |
|
47 | 51 | ### PR 3 — Type system: overview, built-in types, enums |
48 | 52 |
|
| 53 | +[#52608](https://github.com/dotnet/docs/pull/52608) *Merged* |
| 54 | + |
49 | 55 | > ~10 files |
50 | 56 |
|
51 | 57 | 1. Revise `fundamentals/types/index.md` — value vs. reference, unified type system |
|
55 | 61 |
|
56 | 62 | ### PR 4 — Type system: classes, structs, records |
57 | 63 |
|
58 | | -> ~10 files |
| 64 | +[#52605](https://github.com/dotnet/docs/pull/52605) *Merged* |
59 | 65 |
|
60 | 66 | 1. Revise `fundamentals/types/classes.md` — static classes (C# 2), object/collection initializers (C# 3) |
61 | 67 | 2. New `fundamentals/types/structs.md` — struct design, auto-default (C# 11), parameterless constructors (C# 10), readonly members (C# 8), record structs (C# 10) |
|
64 | 70 |
|
65 | 71 | ### PR 5 — Type system: tuples, interfaces, generics |
66 | 72 |
|
| 73 | +[#52891](https://github.com/dotnet/docs/pull/52891) *Merged* |
| 74 | + |
67 | 75 | > ~10 files |
68 | 76 |
|
69 | 77 | 1. Replace `fundamentals/types/anonymous-types.md` → `fundamentals/types/tuples.md` — merge existing tuples + deconstruct content; add inferred names (C# 7.1), tuple comparison (C# 7.3), `with` on tuples. Redirect old URL |
|
73 | 81 |
|
74 | 82 | ### PR 6 — Type system: conversions, delegates/lambdas, records tutorial |
75 | 83 |
|
| 84 | +[#52973](https://github.com/dotnet/docs/pull/52973) *Merged* |
| 85 | + |
76 | 86 | > ~10 files |
77 | 87 |
|
78 | 88 | 1. New `fundamentals/types/conversions.md` — pull+revise from `programming-guide/types/casting-and-type-conversions.md` and `programming-guide/types/boxing-and-unboxing.md`. Add redirects |
|
82 | 92 |
|
83 | 93 | ### PR 7 — Tutorial: Choosing between tuples, records, structs, and classes |
84 | 94 |
|
| 95 | +[#53160](https://github.com/dotnet/docs/pull/53160) *In review* |
| 96 | + |
85 | 97 | > ~4 files |
86 | 98 |
|
87 | 99 | 1. New `fundamentals/tutorials/choosing-types.md` — teach readers to decide between using tuples, defining records, defining structs or classes, and defining interfaces |
|
0 commit comments