- Úvod do programování a C#
- Základní pojmy v C#
- Podmínky a rozhodování
- Smyčky a opakování
- Funkce a metody
- Pole a seznamy
- Objektově orientované programování (OOP)
- Výčtové typy (enum)
- Struktury (struct) a rozdíl oproti třídám
- Záznamy (record) – Immutabilní datové typy
- Anonymní typy a Tuples
- Delegáty a události (delegate, event)
- Výrazy LINQ a zpracování kolekcí
- Generics – generické typy a metody
- Nullable reference types
- Pattern matching
- Extension methods
- Iterátory a yield return
- Async/await – základy
- CLR, sestavení a přehled runtime
- Práce se soubory a adresáři
- Práce s datem a časem
- Základní kolekce a jejich použití
- Řetězce a jejich zpracování
- Výjimky a jejich ošetření
- Logování a diagnostika
- Základy práce se sítí
- Serializace a deserializace
- Dependency Injection a práce se službami
- Konfigurace aplikace (appsettings, IOptions)
- Background services a hosted services
- Windows Forms (WinForms)
- WPF (Windows Presentation Foundation)
- MAUI – multiplatformní desktopové aplikace
- Migrace z Xamarin na .NET MAUI
- Práce s GPS, senzory a notifikacemi
- ASP.NET Core MVC – klasický web
- Razor Pages
- Blazor – moderní webová aplikace v C#
- Minimal APIs – nejjednodušší způsob, jak vytvořit API
- REST API – konvence, HttpClient, verzování
- Middleware a pipeline v ASP.NET Core
- Autentizace a autorizace
- OpenAPI a Swagger
- SignalR – real-time komunikace
- gRPC v .NET
- Docker a Kubernetes v .NET
- Azure App Service
- Azure Functions a Serverless vývoj
- Práce s databázemi v cloudu (SQL, NoSQL)
- Azure Storage – Blob, Queue, Table
- Messaging a fronty (Service Bus, RabbitMQ)
- Správa tajných klíčů (Key Vault, Managed Identity)
- CI/CD pro .NET aplikace
- Observability – logy, metriky, tracing, OpenTelemetry
- Unity a C# – herní engine
- MonoGame – alternativa k Unity
- Práce s fyzikou a kolizemi
- CLI nástroje v .NET
- IoT a embedded s .NET
- AI a ML.NET
- Techniky pro profilování aplikací .NET
- Benchmarking s BenchmarkDotNet
- Minimalizace doby startu aplikací a warm-up
- JIT (Just-In-Time) vs AOT (Ahead-Of-Time) kompilace
- Optimalizace práce s I/O (souborový systém, síťové operace)
- Cache a vyrovnávací paměť (caching strategies)
- Správa paměti a Garbage Collection
- Span<T> a Memory<T> – zero-copy práce s pamětí
- Optimalizace alokace paměti pomocí ArrayPool<T>
- Optimalizace stringů a práce s UTF-8
- ref struct a readonly struct
- Minimalizace přepínání vláken a ThreadPool tuning
- Pokročilé techniky s async a await
- Správné použití Task a ValueTask
- CancellationToken a řízení zrušení úloh
- ConfigureAwait a synchronizační kontext
- Orchestrace úloh: Task.WhenAll, Task.WhenAny a timeouty
- IAsyncEnumerable a asynchronní streamování dat
- TaskCompletionSource – pokročilé použití
- Interakce mezi asynchronním a synchronním kódem
- Parallel.ForEachAsync – asynchronní paralelní zpracování kolekcí
- TPL a PLINQ – paralelní zpracování CPU-bound úloh
- System.Threading.Channels – producent-konzument pipeline
- Paralelní kolekce – BlockingCollection a producent-konzument vzor
- Paralelní kolekce – ConcurrentQueue, ConcurrentDictionary a další