..

Appendix

The appendix provides additional resources and references to support the main content of the guide. It includes a glossary of terms, practical checklists, further reading suggestions, and a brief overview of essential .NET libraries for advanced development.

Table of Contents


A.1. Glossary of Terms

A comprehensive list of acronyms and technical terms used throughout this guide, along with brief definitions.

A.2. Practical Checklist

A concise checklist for writing modern, high-performance, and maintainable .NET code.

Code Quality & Design

Performance & Memory

Concurrency & Asynchrony

Testing & Observability

Tooling & Workflow

A.3. Further Reading

No single guide can cover every nuance of C# and .NET. Here are highly recommended resources for continuous learning and deeper dives into specific areas:

Official Documentation

Books

Blogs & Online Resources

Community & Open Source

A.4. Essential .NET Libraries for Advanced Development (Brief Overview)

This section provides a brief overview of critical .NET libraries that advanced developers often encounter or leverage. This is not a deep dive into how to use these libraries, but rather a pointer to areas for further exploration, highlighting their general purpose and why they are important.

Web & API Development

Data Access & ORM

Cloud & Azure

Testing & Benchmarking

Logging & Diagnostics

Performance & Utilities

Concurrency & Parallelism

A.5. Modern C# Features by Version

This table provides a quick reference to key language features introduced in recent C# versions.

C# Version Key Features Introduced Brief Description
C# 7.0 Out variables, Tuples, Pattern Matching (is, switch), Local Functions, Ref locals and returns, Throw expressions Significant improvements for readability, data handling, and control flow.
C# 7.1 Async Main, Default literal, Inferred tuple element names Minor enhancements for asynchronous applications and tuples.
C# 7.2 in parameters, ref readonly structs, readonly structs, ref extension methods, private protected access modifier Focus on performance and memory safety for value types.
C# 7.3 ref reassignment, Stack-allocated arrays, Initializers for stack-allocated arrays Further performance-oriented features for low-level memory management.
C# 8.0 Nullable Reference Types (NRTs), Default Interface Methods (DIM), Pattern Matching enhancements (switch expressions, property patterns, tuple patterns, positional patterns), Using declarations, Async streams, Indices and ranges Major release focusing on null safety, interface evolution, and expressive pattern matching.
C# 9.0 Records, Init-only setters, Top-level statements, Pattern Matching enhancements (type patterns, relational patterns), Target-typed new expressions, Static anonymous functions, Native sized integers (nint, nuint), Function pointers Introduces immutable data types (records), simplified program entry points, and more expressive patterns.
C# 10.0 Record structs, with expressions for structs, Parameterless constructors for struct types, Global using directives, File-scoped namespaces, CallerArgumentExpression attribute, Lambda expression improvements Focus on structs, project-wide using management, and enhanced lambda expressiveness.
C# 11.0 Raw string literals, Generic math support (static abstract members in interfaces), List patterns, File-scoped types (file access modifier), required members, ref fields and scoped ref, UTF-8 string literals Significant features for code readability (raw strings), generic programming, and performance.
C# 12.0 Primary constructors (for classes/structs), Collection expressions, ref readonly parameters, Alias any type (global using alias for any type), Interceptors (experimental) Further syntax simplification, array/collection initialization, and experimental features.
C# 13.0 params ReadOnlySpan<T>, New ref and unsafe features, Collection expression enhancements, Implicit Dispose of ref structs Enhancements for high-performance scenarios with spans, and resource management. (Features are typically in preview at the time of writing and may evolve).
C# 14.0+ (Future features, currently in planning/early preview) Expect continued focus on performance, conciseness, and new paradigms.

Where to Go Next