# C# 14 / .NET 10 Concept Map ## Platform and Tooling - Modern .NET versus legacy .NET - SDK versus runtime - Project files and solution files - Visual Studio, VS Code, Rider, and command-line workflows - `dotnet` CLI commands - SDK pinning with `global.json` - Build, restore, test, format, pack, publish - Cross-platform deployment and Linux/Windows differences ## C# Language - Grammar, vocabulary, keywords, identifiers, expressions, statements - Variables, constants, type inference, literals - Value types, reference types, nullable types - Operators, conversions, casting, parsing, overflow checking - Selection, iteration, pattern matching - Exception handling and guard clauses - Functions, parameters, return values, tuples, local functions - Classes, structs, records, fields, methods, properties, indexers - Encapsulation, abstraction, composition, inheritance, polymorphism - Interfaces, generics, delegates, events, extension methods - Nullable reference types and null-safety ## .NET Libraries - Numbers, strings, dates, text formatting - Collections and dictionaries - Regular expressions - Filesystem, streams, encodings - JSON and XML serialization - Logging, diagnostics, debugging, testing ## Data and Querying - EF Core models, DbContext, providers - Database First and Code First - LINQ to Objects and LINQ to Entities - Filtering, projection, sorting, grouping, joins, aggregates - Tracking, no-tracking, transactions, migrations, concurrency - Unit of Work and generic repository pattern ## Web - ASP.NET Core pipeline and middleware - Dependency injection and configuration - Static assets - Blazor components, forms, lifecycle, render modes - Minimal API endpoints - OpenAPI documentation - HTTP client consumption - Health checks and security headers ## Packaging and Deployment - Class libraries - NuGet packages - Framework-dependent and self-contained publishing - Single-file publishing - Trimming - Native AOT