dotnet / dotnet/docs

[Epic] Everyday C# section

Open
#33,363 0 comments 0 reactions 1 assignee Claimed by @BillWagner View on GitHub
discussion okr-curation
Dominant language
No language data
Stars
4.8k
Forks
6.1k
Avg merge
19h 10m
Merged PRs (30d)
268

Description

Draft task list for ***Everyday C#***

There are three phases to this project. Each will be represented by epics. Under each epic child tasks will keep PRs to a reasonable size. The tree structure of the task list below represents the Project / Epic / Task hierarchy. Note that new tasks will likely be added as gaps are identified.

- [ ] **Rearrange existing content**: This first epic involves moving existing content from other locations in the C# guide into this section. During this phase, content in the *Language reference* section won't be moved. Most of the applicable content is in the *programming guide* or the *concepts* section. Some introductory material for the LINQ and async / await sections will be used here as well. As part of this phase, move content and make small edits to fix open issues on content that's moving.
- [ ] *Intro / Hello world*: This section may stay in the *Get started* section. Many of the first articles come from there now. It would require adding Pattern matching, LINQ, and an intro to async methods.
- [ ] *Code in methods*: Some of this is in *Get started*. Others would include the introductory articles for other constructs.
- [ ] *string and numeric types*
- [ ] *collections and arrays*
- [ ] *branching and control flow*
- [ ] *Pattern matching*
- [ ] *Query expressions and LINQ*
- [ ] *async methods*
- [ ] *Program structure*: In this section, cover how to organize your code as an application or library grows.
- [ ] *Organizing programs*
- [ ] *static classes*: Differentiate from classes for a collection of related methods or algorithms.
- [ ] *Encapsulation, composition, Polymorphism*
- [ ] *Defining types*: This section explains the different kinds of types you can create. It will provide descriptions of each kind of type, and recommendations on when to choose each type. *Anonymous types* are excluded by design. Today,
- [ ] *Defining types*
- [ ] *Tuples and records*
- [ ] *Structs*
- [ ] *Classes*
- [ ] *Interfaces*
- [ ] *Generics*
- [ ] *Namespaces*
- [ ] *lambda expressions for callbacks and events*
- [ ] *Construction and initialization order*
- [ ] *Resilient Code*: This section provides techniques for reporting errors and recovering from some errors, when possible.
- [ ] *throwing exceptions*
- [ ] *catching exceptions*
- [ ] *avoiding corrupt data*.
- [ ] *Coding style*: This section shouldn't be *too* opinionated. Different teams can adopt different styles for good reasons. But this section should encourage good habits.
- [ ] *Compiler errors and warnings*: Warnings are an indication that your code may be wrong. Pay attention, and continue to update your projects to the latest, highest compiler warnings.
- [ ] *Analyzers*: Analyzers can fix both potential errors and enforce a consistent style
- [ ] *Use an editorconfig*: Enforce consistency. You can set a team's style, and enforce it via the editorconfig
- [ ] *XML documentation*: Everything for this section exists in the programming guide, or the language reference. This may be the one area where a section of the language reference should move here.
- [ ] **Catalog gaps**: Concurrently with moving content, known gaps will be identified and issues will be created for each new article.
- [ ] **Update existing content**: Much of the content that will move hasn't been updated in several releases. During this phase, update the content to prefer the recommended constructs available now.
- [ ] **Create new articles**: For each area where gaps are identified, write the new articles.
- [ ] **Identify any new gaps**: As the entire section takes shape, review for any new gaps. Create issues for those.
- [ ] **Fill gaps**: Create the remaining set of articles.

---
[Associated WorkItem - 58441](https://dev.azure.com/msft-skilling/Content/_workitems/edit/58441)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.